from testcases.base_case import BaseCase
from common.basic_data import DoRegex, Context
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
from common.do_mysql_tool import MysqlTool
import json
from common.read_config import ReadConfig
from ddt import ddt, data
from common.mylogger1 import MyLog

# 取现

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('withdraw')
my_logger = MyLog()


@ddt
class TestWithDraw(BaseCase):
    def setUp(self):
        self.mysql = MysqlTool()
        # 取现前用户可用余额
        self.seek_leaveamount_sql = 'SELECT LeaveAmount FROM future.member where MobilePhone={0};'.format(
            Context.normal_phone)
        self.before_amount = self.mysql.fetch_one(
            self.seek_leaveamount_sql)['LeaveAmount']  # 取现前用户可用余额

    @data(*cases)
    def test_withdraw(self, case):
# 获取用户所有投资记录

from testcases.base_case import BaseCase
from common.basic_data import DoRegex,Context
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
from common.do_mysql_tool import MysqlTool
import json
from common.read_config import ReadConfig
from ddt import ddt,data
from common.mylogger1 import MyLog


do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('getInvestrecord')
my_logger = MyLog()


@ddt
class GetInvestRecord(BaseCase):

    @classmethod
    def setUpClass(cls):
        global mysql
        mysql = MysqlTool()


    @data(*cases)
    def test_get_invest_record(self, case):
        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
Beispiel #3
0

# 完成投资人登录,把cookies放到上下文中,为后面其他接口做准备

import unittest
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
import json
from ddt import ddt,data
from common.read_config import ReadConfig
from common.basic_data import DoRegex,Context
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('normal')
my_logger = MyLog()

@ddt
class BaseCase(unittest.TestCase):


    @data(*cases)
    def test_base(self,case):

        url = ReadConfig().get('test_api','url_pre') + case.url
        my_logger.info('请求地址:{0}'.format(url))
        data = DoRegex.replace(case.data)
        data = json.loads(data)
        my_logger.info('请求参数:{0}'.format(data))
        if hasattr(Context,'cookies'):
Beispiel #4
0
# @Author   : yuxuan
# #file     : test_invest.py

import unittest
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
import json
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from common.basic_data import DoRegex, Context
from ddt import ddt, data
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('invest')
my_logger = MyLog()
Cookies = None


@ddt
class TestInvest(unittest.TestCase):
    def setUp(self):

        self.mysql = MysqlTool()
        # 投资前用户余额
        self.seek_mount = ReadConfig().get('SQL', 'LeaveAmount')
        self.leaveamount1 = self.mysql.fetch_one(
            self.seek_mount)['LeaveAmount']  # 投资前余额
        my_logger.info('投资前用户账户余额:{0}'.format(self.leaveamount1))
Beispiel #5
0
# #file     : test_list.py

# 获取用户列表

from testcases.base_case import BaseCase
from common.basic_data import DoRegex, Context
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from ddt import ddt, data
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('list')
my_logger = MyLog()


@ddt
class TestList(BaseCase):
    @classmethod
    def setUpClass(cls):
        global mysql
        mysql = MysqlTool()

    @data(*cases)
    def test_list(self, case):
        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
        url = ReadConfig().get('test_api', 'url_pre') + case.url
        my_logger.info('检查url接口地址:{0}'.format(url))
Beispiel #6
0
# #file     : test_login.py

import unittest
from common.do_excel import DoExcel
from common.http_requests_api import HttpRequest
from common import contants
import json
from common.basic_data import DoRegex
from common.read_config import ReadConfig
from common.mylogger1 import MyLog
from ddt import ddt,data      #data 可以控制读取单个数据/多个数据,fiel_data读取文件数据
# 如其中一个用例失败,后面的用例不执行,可采用ddt数据驱动
#编写登录请求测试类

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('login')  #列表外包字符串

my_logger = MyLog()
@ddt
class TestLogin(unittest.TestCase):

    def setUp(self):
        print('测试开始,环境准备')

    @data(*cases)   # *为去列表外字符串
    def test_login(self,case):
            my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id,case.title))
            my_logger.info('------开始检查url接口地址--------------')
            url = ReadConfig().get('test_api','url_pre')+case.url
            my_logger.info('url地址:{0}'.format(url))
            my_logger.info('------------开始检查请求参数-----------')
# #file     : test_recharge.py
import unittest
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
import json
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from common.basic_data import DoRegex, Context
from ddt import ddt, data
from common.mylogger1 import MyLog
# 读取配置文件基础数据--->放在context--->regex正则匹配替换---->request---拿到cookie放context cookie
# recharge接口---调用context数据--->充值完数据库校验

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('recharge')
mylogger = MyLog()


@ddt
class TestRecharge(unittest.TestCase):
    def setUp(self):  #获取期望结果放在setUp,充值前先取出leavemount
        sql = ReadConfig().get('SQL', 'LeaveAmount')
        global leavemount1
        global mysql
        mysql = MysqlTool()
        leavemount1 = mysql.fetch_one(sql)['LeaveAmount']
        mylogger.info('充值前账户余额:{0}'.format(leavemount1))
        return leavemount1

    @data(*cases)
Beispiel #8
0
# @Author   : yuxuan
# #file     : test_add.py

import unittest
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
import json
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from common.basic_data import DoRegex, Context
from ddt import ddt, data
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('addLoan')
my_logger = MyLog()

Cookies = None


@ddt
class TestAddLoan(unittest.TestCase):
    def setUp(self):
        self.mysql = MysqlTool()

    @data(*cases)
    def test_add(self, case):
        global Cookies
        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
        url = ReadConfig().get('test_api', 'url_pre') + case.url
Beispiel #9
0
# 1,设计一个run_test 模块完成收集用例--执行用例--回写测试结果
# 2,封装配置文件读取类,根据环境设计配置文件,实现多套环境灵活切换,url修改成配置文件拼接

from common.do_excel import DoExcel
from common.http_requests_api import HttpRequest
from common.read_config import ReadConfig
from common import contants
import json

do_excel = DoExcel(contants.data_dir)
sheet_names = do_excel.get_sheet_names()
print('sheet 名称列表:', sheet_names)
case_list = ['register', 'login']  # 定义一个执行测试用例的列表
for sheet_name in sheet_names:
    if sheet_name in case_list:  # 如果sheet_name不在case_list列表里,就不执行
        cases = do_excel.get_case(sheet_name)
        print(sheet_name + '测试用例个数:', len(cases))
        for case in cases:
            # print('case信息:',case.__dict__)   # 使用__dict__方法,把每一个case元素放在字典里,打印case信息
            data = eval(case.data)
            url = ReadConfig().get('test_api',
                                   'url_pre') + case.url  # url接口地址拼接
            # print('url接口地址:', url)
            req = HttpRequest(method=case.method, url=url, data=data)
            resp_dict = req.get_json()  # 获取请求响应,字典
            # 通过json.dumps函数将字典转换成字符串
            resp_text = json.dumps(req.get_json(),
                                   ensure_ascii=False,
                                   indent=4)
            print(resp_text)
            # 判断接口响应是否和excel里面的expected的值是否一致
Beispiel #10
0
# @Author   : yuxuan
# #file     : test_loanlist.py

# 获取标的列表
from testcases.base_case import BaseCase
from common.basic_data import DoRegex, Context
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from ddt import ddt, data
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('getLoanList')
my_logger = MyLog()


@ddt
class TestGetLoanList(BaseCase):
    @classmethod
    def setUpClass(cls):
        global mysql
        mysql = MysqlTool()

    @data(*cases)
    def test_get_loan_list(self, case):

        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
        url = ReadConfig().get('test_api', 'url_pre') + case.url
Beispiel #11
0
# #file     : test_register.py
import unittest
from common.do_excel import DoExcel
from common.http_requests_api import HttpRequest
from common import contants
import json
from common.mylogger1 import MyLog
from common.seek_replace import SeekReplace
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from ddt import ddt, data  #data 可以控制读取单个数据/多个数据,fiel_data读取文件数据
# 如其中一个用例失败,后面的用例不执行,可采用ddt数据驱动
#编写登录请求测试类

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('register')  #列表外包字符串

my_logger = MyLog()


@ddt
class TestRegister(unittest.TestCase):
    def setUp(self):
        self.sql = ReadConfig().get('SQL', 'mobile_sql')
        self.mysql_tool = MysqlTool()

    @data(*cases)
    def test_login(self, case):

        max_mobilephone = str(
            int(self.mysql_tool.fetch_one(self.sql)['MobilePhone']) +
Beispiel #12
0
from testcases.base_case import BaseCase
from common.basic_data import DoRegex,Context
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
from common.do_mysql_tool import MysqlTool
import json
from common.read_config import ReadConfig
from ddt import ddt,data
from common.mylogger1 import MyLog


# 获取标的所有投资记录

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('get_loan_invest_record')
my_logger = MyLog()

@ddt
class TestGetLoanInvestRecord(BaseCase):

    @classmethod
    def setUpClass(cls):
        global mysql
        mysql = MysqlTool()

    @data(*cases)
    def test_get_Loan_invest_record(self, case):
        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
        url = ReadConfig().get('test_api', 'url_pre') + case.url
        my_logger.info('检查url接口地址:{0}'.format(url))
Beispiel #13
0
import unittest
from common.request import Request
from common.do_excel import DoExcel
from common import constants
import json
from ddt import ddt, data, unpack

do_excel = DoExcel(constants.testfile_path)
cases = do_excel.get_case("login")


@ddt
class TestLogin(unittest.TestCase):
    def setUp(self):
        print("测试准备")

    @data(*cases)
    def test_login(self, case):
        data = json.loads(case.data)
        resq = Request(method=case.method, url=case.url, data=data)
        print(resq.get_json())
        if case.expected == "null":
            expected = json.loads(case.expected)
        else:
            expected = case.expected
            #断言
        self.assertEqual(expected, resq.get_json()["message"])
        print("操作成功")

    def tearDown(self):
        print("测试清除")
Beispiel #14
0
# @Author   : yuxuan
# #file     : test_audit.py

import unittest
from common.http_requests_api import HttpRequest
from common import contants
from common.do_excel import DoExcel
import json
from common.do_mysql_tool import MysqlTool
from common.read_config import ReadConfig
from common.basic_data import DoRegex, Context
from ddt import ddt, data
from common.mylogger1 import MyLog

do_excel = DoExcel(contants.data_dir)
cases = do_excel.get_case('audit')
my_logger = MyLog()
Cookies = None


@ddt
class TestAudit(unittest.TestCase):
    def setUp(self):
        self.mysql = MysqlTool()

    @data(*cases)
    def test_audit(self, case):
        global Cookies
        my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
        url = ReadConfig().get('test_api', 'url_pre') + case.url
        my_logger.info('检查url接口地址:{0}'.format(url))