Esempio n. 1
0
class RunCase(unittest.TestCase):
    def setUp(self):
        self.do_exl = DoExcel(project_path.case_path, 'Recharge')  # 准备测试数据
        self.my_log = MyLog()

    @data(*recharge_data)
    def test_case2(self, case_2):
        global result1  #定义为全局变量
        global cookies
        url = case_2['Url']
        param = eval(case_2['Params'])
        method = case_2['Method']
        # print(case_2['ExpectedResult'])
        expected = eval(case_2['ExpectedResult'])
        if case_2['Params'].find('normal_phone') != -1:
            param['mobilephone'] = getattr(GetData, 'normal_phone')

        self.my_log.info('正在执行{}模块第{}条用例:{}'.format(case_2['Module'],
                                                    case_2['CaseId'],
                                                    case_2['Title']))
        self.my_log.info('参数是:{}'.format(param))
        # 拿到请求之前的账户余额
        if case_2['Sql'] != None:
            sql = eval(case_2['Sql'])['sql']
            before_LeaveAmount = DoSql().do_sql(sql)[0]

        resp = HttpRequest().http_request(method, url, param,
                                          cookies=cookies)  #执行请求
        print('实际结果是:{}'.format(resp.json()))  #发起请求的实际结果
        if resp.cookies:  # 为真,即存在cookies继续执行 --- 判断请求的cookies是否为空  ---- 其实就是判断第一个登陆用例的cookies(resp的cookies)
            cookies = resp.cookies  #将默认的cookies替换为 登陆的cookies
            # 对比结果
        try:
            # 拿到充值之后的账户余额
            if case_2['Sql'] != None:
                after_LeaveAmount = DoSql().do_sql(eval(
                    case_2['Sql'])['sql'])[0]
                recharge_amount = param['amount']
                expected_amount = before_LeaveAmount + recharge_amount
                self.assertEqual(expected_amount, after_LeaveAmount)
            if case_2['ExpectedResult'].find(
                    'expect_amount') > -1:  #判断是否替换leaveamount,存在就替换
                case_2['ExpectedResult'] = case_2['ExpectedResult'].replace(
                    'expect_amount', str(expected_amount))  #要接收替换的字符串
                # print(case_2['ExpectedResult'])

            self.assertEqual(eval(case_2['ExpectedResult']), resp.json())  #对比
            result1 = 'pass'
            self.my_log.info('该条测试用例通过')
        except AssertionError as e:
            self.my_log.error('该条测试用例不通过:{}'.format(e))
            result1 = 'failed'
        finally:
            final_result = result1
            self.my_log.info('******开始写入数据******')
            self.do_exl.write_back(case_2['CaseId'] + 1, 9, resp.text)
            self.do_exl.write_back(case_2['CaseId'] + 1, 10, final_result)
            self.my_log.info('******写入数据完毕******')
Esempio n. 2
0
 def setUp(self):
     self.do_exl = DoExcel(project_path.case_path, 'Register')  # 准备测试数据
     self.my_log = MyLog()
Esempio n. 3
0
# 1:引入单元测试
# 2:引入ddt
# 3:测试用例里面引入引入try...except..finally,并写回测试结果
# 4:引入日志
# 5:完成用例的可配置化:想跑哪条用例,就在配置文件里面写好
# 6:搞定全局变量(path变量,数据与文件分离)
import unittest
from ddt import ddt, data
import json
from API_Program.API_05.common.do_excel import DoExcel
from API_Program.API_05.common.http_request import HttpRequest
from API_Program.API_05.common import project_path
from API_Program.API_05.common.log_test import MyLog

#读取到测试数据
register_data = DoExcel(project_path.case_path,
                        'Register').read_data('RegisterCase')


@ddt  #修饰测试类
class RunCase(unittest.TestCase):
    def setUp(self):
        self.do_exl = DoExcel(project_path.case_path, 'Register')  # 准备测试数据
        self.my_log = MyLog()

    # 登录注册
    @data(
        *register_data
    )  # 加*解包,相当于遍历test_data传入函数,与加unpack的区别是:加入了unpack后,date里有几个参数,下面的函数就要传入几个变量
    def test_case(self, case):
        global result  #声明全局变量
        method = case['Method']
Esempio n. 4
0
# 3:测试用例里面引入引入try...except..finally,并写回测试结果
# 4:引入日志
# 5:完成用例的可配置化:想跑哪条用例,就在配置文件里面写好
# 6:搞定全局变量(path变量,数据与文件分离)
import unittest
from ddt import ddt, data
import json
from API_Program.API_05.common.do_excel import DoExcel
from API_Program.API_05.common.http_request import HttpRequest
from API_Program.API_05.common import project_path
from API_Program.API_05.common.log_test import MyLog
from API_Program.API_05.common.do_sql import DoSql
from API_Program.API_05.common.get_data import GetData

#读取到测试数据
recharge_data = DoExcel(project_path.case_path,
                        'Recharge').read_data('RechargeCase')
cookies = None  #先定义cookies=None
'''定义全局变量cookies解决'''


@ddt  #修饰测试类
class RunCase(unittest.TestCase):
    def setUp(self):
        self.do_exl = DoExcel(project_path.case_path, 'Recharge')  # 准备测试数据
        self.my_log = MyLog()

    @data(*recharge_data)
    def test_case2(self, case_2):
        global result1  #定义为全局变量
        global cookies
        url = case_2['Url']
Esempio n. 5
0
 def setUp(self):
     '''准备测试数据,测试前的准备工作'''
     self.do_exl = DoExcel(project_path.case_path, 'Invest')
     self.my_log = MyLog()
     self.http = HttpRequest()
Esempio n. 6
0
# 3:测试用例里面引入引入try...except..finally,并写回测试结果
# 4:引入日志
# 5:完成用例的可配置化:想跑哪条用例,就在配置文件里面写好
# 6:搞定全局变量(path变量,数据与文件分离)

# 投资 增加数据库的校验,可以写断言也可以写会数据库检查的结果到Excel
import unittest
from ddt import ddt, data
from API_Program.API_05.common.do_excel import DoExcel
from API_Program.API_05.common.log_test import MyLog
from API_Program.API_05.common.http_request import HttpRequest
from API_Program.API_05.common import project_path
from API_Program.API_05.common.get_data import GetData
from API_Program.API_05.common.do_sql import DoSql
# 测试数据
invest_data = DoExcel(project_path.case_path, 'Invest').read_data('InvestCase')


@ddt
class RunCase(unittest.TestCase):
    def setUp(self):
        '''准备测试数据,测试前的准备工作'''
        self.do_exl = DoExcel(project_path.case_path, 'Invest')
        self.my_log = MyLog()
        self.http = HttpRequest()

    @data(*invest_data)
    def test_case(self, case):
        global result
        # 取到request里需要的参数
        url = case['Url']
Esempio n. 7
0
# 2:引入ddt
# 3:测试用例里面引入引入try...except..finally,并写回测试结果
# 4:引入日志
# 5:完成用例的可配置化:想跑哪条用例,就在配置文件里面写好
# 6:搞定全局变量(path变量,数据与文件分离)
import unittest
from ddt import ddt, data
import json
from API_Program.API_05.common.do_excel import DoExcel
from API_Program.API_05.common.http_request import HttpRequest
from API_Program.API_05.common import project_path
from API_Program.API_05.common.log_test import MyLog
from API_Program.API_05.common.get_data import GetData

#读取到测试数据
login_data = DoExcel(project_path.case_path, 'Login').read_data('LoginCase')


@ddt  #修饰测试类
class RunCase(unittest.TestCase):
    def setUp(self):
        self.do_exl = DoExcel(project_path.case_path, 'Login')  # 准备测试数据
        self.my_log = MyLog()

    # 登录注册
    @data(
        *login_data
    )  # 加*解包,相当于遍历test_data传入函数,与加unpack的区别是:加入了unpack后,date里有几个参数,下面的函数就要传入几个变量
    def test_case(self, case):
        global result  #声明全局变量
        method = case['Method']
Esempio n. 8
0
# 3:测试用例里面引入引入try...except..finally,并写回测试结果
# 4:引入日志
# 5:完成用例的可配置化:想跑哪条用例,就在配置文件里面写好
# 6:搞定全局变量(path变量,数据与文件分离)

# 投资 增加数据库的校验,可以写断言也可以写会数据库检查的结果到Excel
import unittest
from ddt import ddt,data
from API_Program.API_05.common.do_excel import DoExcel
from API_Program.API_05.common.log_test import MyLog
from API_Program.API_05.common.http_request import HttpRequest
from API_Program.API_05.common import project_path
from API_Program.API_05.common.get_data import GetData
from API_Program.API_05.common.do_sql import DoSql
# 测试数据
addloan_data=DoExcel(project_path.case_path,'Addloan').read_data('AddloanCase')
# print(addloan_data)

@ddt
class RunCase(unittest.TestCase):
    def setUp(self):
        '''准备测试数据,测试前的准备工作'''
        self.do_exl=DoExcel(project_path.case_path,'Addloan')
        self.my_log=MyLog()
        self.http=HttpRequest()
    @data(*addloan_data)
    def test_case(self,case):
        global result
        # 取到request里需要的参数
        url=case['Url']
        method=case['Method']