示例#1
0
 def test_login(self, case):
     # 准备测试数据
     url = conf.get('env', 'url') + case['url']
     method = case['method']
     if '#phone#' in case['data']:
         case['data'] = case['data'].replace('#phone#',
                                             conf.get('env', 'phone'))
     data = eval(case['data'])
     expected = eval(case['expected'])
     headers = eval(conf.get('env', 'headers'))
     row = case['case_id'] + 1
     # 发送请求
     response = self.http.send(url=url,
                               method=method,
                               json=data,
                               headers=headers)
     res = response.json()
     # 比对预期结果与实际结果
     try:
         self.assertEqual(expected['code'], res['code'])
         self.assertEqual(expected['msg'], res['msg'])
     except AssertionError as e:
         self.excel.write_excel(row=row, column=8, value='未通过')
         mylog.info('用例:{}---->执行未通过'.format(case['title']))
         mylog.error(e)
         print('预期结果:{}'.format(expected))
         print('实际结果:{}'.format(res))
         raise e
     else:
         self.excel.write_excel(row=row, column=8, value='通过')
         mylog.info('用例:{}---->执行已通过'.format(case['title']))
示例#2
0
    def test_audit(self, case):
        pass
        # 准备用例数据
        url = conf.get('env', 'url') + case['url']
        method = case['method']
        case['data'] = replace_data(case['data'])
        data = eval(case['data'])
        expected = eval(case['expected'])
        headers = eval(conf.get('env', 'header'))
        headers['Authorization'] = getattr(TestData, 'token_data')
        row = case['case_id'] + 1
        # 发送请求
        response = self.http.send(url=url, method=method, json=data, headers=headers)
        res = response.json()

        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql=replace_data(case['check_sql'])
                result_status=self.db.get_one(sql)[0]
                self.assertEqual(expected['status'],result_status)

        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info('用例--->{}:执行未通过'.format(case['title']))
            my_logger.error(e)
            print("预期结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info('用例--->{}:执行已通过'.format(case['title']))
示例#3
0
 def __init__(self):
     self.con = pymysql.connect(host=conf.get('mysql', 'host'),
                                user=conf.get('mysql', 'user'),
                                password=conf.get('mysql', 'password'),
                                port=conf.getint('mysql', 'port'),
                                charset='utf8')
     self.cur = self.con.cursor()
示例#4
0
    def test_withdraw(self, case):
        # 准备用例数据
        # 拼接url
        url = conf.get('env', 'url') + case['url']
        method = case['method']
        case['data'] = replace_data(case['data'])
        data = eval(case['data'])
        expected = eval(case['expected'])
        row = case['case_id'] + 1
        header = eval(conf.get('env', 'header'))
        if case['interface'] != '登录':
            header['Authorization'] = TestData.token_data

        # 判断是否需要校验
        if case['check_sql']:
            sql = case['check_sql'].format(getattr(TestData, 'phone'))
            # 获取充值前的余额
            before_amount = self.db.get_one(sql)[0]

        response = self.rest.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=header)
        res = response.json()

        if case['interface'] == '登录':
            # 获取member_id
            member_id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'member_id', str(member_id))
            # 获取token类型
            token_type = jsonpath.jsonpath(res, '$..token_type')[0]
            # 获取token值
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data = token_type + ' ' + token
            setattr(TestData, 'token_data', token_data)

        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql = case['check_sql'].format(getattr(TestData, 'phone'))
                after_amount = self.db.get_one(sql)[0]
                expected_amount = decimal.Decimal(str(data['amount']))
                my_logger.info('提现前余额:{}\n,提现余额:{}\n,提现后余额:{}'.format(
                    before_amount, expected_amount, after_amount))
                self.assertEqual(expected_amount,
                                 (before_amount - after_amount))

        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info('用例-->{}:执行未通过'.format(case['title']))
            my_logger.error(e)
            print("预期结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info('用例-->{}:执行已通过'.format(case['title']))
示例#5
0
    def test_add(self,case):
        # 准备测试数据
        url=conf.get('env','url')+case['url']
        case['data']=replace_data(case['data'])
        data=eval(case['data'])
        headers=eval(conf.get('env','headers'))
        if case['interface'] !='登录':
            headers['Authorization']=getattr(CaseData,'token_data')
        method=case['method']
        expected=eval(case['expected'])
        row=case['case_id']+1

        # 请求前查看该用户有几条标记录
        if case['check_sql']:
            sql=case['check_sql'].format(getattr(CaseData,'admin_member_id'))
            before_count=self.db.count(sql)



        # 发送请求
        response=self.http.send(url=url,method=method,json=data,headers=headers)
        res=response.json()
        # 如果是登录接口,提取出id和token值
        if case['interface']=='登录':
            id=jsonpath.jsonpath(res,'$..id')[0]
            setattr(CaseData,'admin_member_id',str(id))
            token_type=jsonpath.jsonpath(res,'$..token_type')[0]
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data=token_type+' '+token
            setattr(CaseData,'token_data',token_data)


        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])

            if case['check_sql']:
                sql =case['check_sql'].format(getattr(CaseData,'admin_member_id'))
                after_count = self.db.count(sql)
                self.assertEqual((after_count-before_count),1)


        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->测试未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            mylog.error(e)
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            mylog.info('用例:{}---->测试已通过'.format(case['title']))
示例#6
0
    def test_invest(self,case):
        pass
        # 准备用例数据
        url=conf.get('env','url')+case['url']
        # 测试数据
        case['data']=replace_data(case['data'])
        data=eval(case['data'])
        # 请求方法
        method=case['method']
        # 请求头
        headers = eval(conf.get('env', 'headers'))
        if case['interface']!='login':
            headers['Authorization']=getattr(CaseData,'token_data')
        # 预期结果
        expected=eval(case['expected'])
        # 行号
        row=case['case_id']+1

        # 发送请求
        response=self.http.send(url=url,method=method,json=data,headers=headers)
        res=response.json()

        #提取member_id和token
        if case['interface']=='login' and res['msg']=='OK':
            member_id=jsonpath.jsonpath(res,'$..id')[0]
            setattr(CaseData,'member_id',str(member_id))
            token_type=jsonpath.jsonpath(res,'$..token_type')[0]
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data=token_type+' '+token
            setattr(CaseData,'token_data',token_data)
            #提取项目id
        elif case['interface']=='add'and res['msg']:
            loan_id=jsonpath.jsonpath(res,'$..id')[0]
            setattr(CaseData,'loan_id',str(loan_id))

        # 断言
        try:
            self.assertEqual(expected['code'],res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql=replace_data(case['check_sql'])
                status=self.db.get_one(sql)[0]
                self.assertEqual(expected['status'],status)
        except AssertionError as e:
            self.excel.write_excel(row=row,column=8,value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            mylog.error(e)
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            raise e
        else:
            self.excel.write_excel(row=row,column=8,value='通过')
            mylog.info('用例:{}---->执行已通过'.format(case['title']))
示例#7
0
    def test_withdraw(self, case):
        # 准备测试数据
        withdraw_url = conf.get('env', 'url') + case['url']
        case['data']=replace_data(case['data'])
        withdraw_data = eval(case['data'])
        method = case['method']
        headers = eval(conf.get('env', 'headers'))
        if case['interface'] !='登录':
            headers['Authorization'] =CaseData.token_data
        row = case['case_id'] + 1
        expected=eval(case['expected'])
        # 发送请求前查询账号余额
        if case['check_sql']:
            sql =case['check_sql'].format(conf.get('env','phone'))
            before_amount = self.db.get_one(sql)[0]

        # 发送请求,获取响应结果
        response = self.http.send(url=withdraw_url, method=method, json=withdraw_data, headers=headers)
        res = response.json()

        # 判断是登录接口还是提现接口
        if case['interface'] == '登录':
            member_id = jsonpath.jsonpath(res, '$..id')[0]

            token_type = jsonpath.jsonpath(res, '$..token_type')[0]
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data = token_type + ' ' + token
            setattr(CaseData, 'member_id', str(member_id))
            setattr(CaseData,'token_data',token_data)

        # 比对预期结果与实际结果
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])

            if case['check_sql']:
                sql =case['check_sql'].format(conf.get('env','phone'))
                after_amount = self.db.get_one(sql)[0]
                self.assertEqual((before_amount-after_amount),Decimal(str(withdraw_data['amount'])))


        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->测试未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            mylog.error(e)
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            mylog.info('用例:{}---->测试已通过'.format(case['title']))
示例#8
0
    def test_addloan(self, case):
        # 准备用例数据
        # 拼接完整的接口地址
        url = conf.get('env', 'url') + case['url']
        case['data']=replace_data(case['data'])
        data = eval(case['data'])
        expected = eval(case['expected'])
        row = case['case_id']+1
        header = eval(conf.get('env', 'header'))
        if case['interface'] != '登录':
            header['Authorization'] = getattr(TestData,'token_data')
        method = case['method']

        if case['check_sql']:
            sql = case['check_sql'].format(getattr(TestData, 'member_id'))
            before_count = self.db.get_count(sql)
        # 发送请求
        response = self.http.send(url=url, method=method, json=data, headers=header)
        res = response.json()

        if case['interface']=='登录':
            # 获取用户id
            member_id=jsonpath.jsonpath(res,'$..id')[0]
            setattr(TestData,'member_id',str(member_id))
            # 获取token类型
            token_type=jsonpath.jsonpath(res,'$..token_type')[0]
            # 获取token值
            token=jsonpath.jsonpath(res,'$..token')[0]
            token_data=token_type+' '+token
            setattr(TestData,'token_data',token_data)

        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql = case['check_sql'].format(getattr(TestData,'member_id'))
                after_count = self.db.get_count(sql)
                self.assertEqual(1,after_count-before_count)

        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info("用例:{}--->执行未通过".format(case["title"]))
            my_logger.error(e)
            print("预取结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info("用例:{}--->执行已通过".format(case["title"]))
示例#9
0
    def test_addloan(self, case):
        # 准备用例数据
        # 拼接完整的接口地址
        url = conf.get('env', 'url') + case['url']
        if '#member_id#' in case['data']:
            case['data'] = case['data'].replace('#member_id#', str(self.member_id))
        if '#admin_phone#' in case['data']:
            case['data'] = case['data'].replace('#admin_phone#', str(self.admin_phone))
        if '#admin_pwd#' in case['data']:
            case['data'] = case['data'].replace('#admin_pwd#', str(self.admin_pwd))
        data = eval(case['data'])
        expected = eval(case['expected'])
        row = case['case_id']+1
        header = eval(conf.get('env', 'header'))
        if case['interface'] != '登录':
            header['Authorization'] = self.token_data
        method = case['method']
        # 发送请求
        response = self.http.send(url=url, method=method, json=data, headers=header)
        res = response.json()

        if case['interface']=='登录':
            # 获取用户id
            TestAddLoan.member_id=jsonpath.jsonpath(res,'$..id')[0]
            # 获取token类型
            token_type=jsonpath.jsonpath(res,'$..token_type')[0]
            # 获取token值
            token=jsonpath.jsonpath(res,'$..token')[0]
            TestAddLoan.token_data=token_type+' '+token

        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if res['msg'] == 'ok':
                sql = 'select * from futureloan.loan WHERE member_id={}'.format(self.member_id)
                count = self.db.get_count(sql)
                self.assertEqual(count, 1)
        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info("用例:{}--->执行未通过".format(case["title"]))
            my_logger.error(e)
            print("预取结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info("用例:{}--->执行已通过".format(case["title"]))
示例#10
0
    def setUpClass(cls):
        url = conf.get('env', 'url') + '/member/login'
        data = {"mobile_phone": conf.get('env', 'admin_phone'),
                "pwd": conf.get('env', 'admin_pwd')
        }
        headers = eval(conf.get('env', 'headers'))
        response = cls.http.send(url=url, method='post', json=data, headers=headers)
        res = response.json()

        # 提取token值和member_id
        id = jsonpath.jsonpath(res, '$..id')[0]
        setattr(CaseData, 'member_id', str(id))
        token_type = jsonpath.jsonpath(res, '$..token_type')[0]
        token = jsonpath.jsonpath(res, '$..token')[0]
        token_data = token_type +' ' + token
        setattr(CaseData, 'token_data', token_data)
示例#11
0
    def test_invest(self, case):
        # 1、准备用例数据
        url = conf.get('env', 'url') + case['url']
        method = case['method']
        case['data'] = replace_data(case['data'])
        data = eval(case['data'])
        headers = eval(conf.get('env', 'header'))
        if case['interface'] != 'login':
            headers['Authorization'] = getattr(TestData, 'token_data')
        expected = eval(case['expected'])
        row = case['case_id'] + 1

        # 2、发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        res = response.json()

        if case['interface'] == 'login':
            # 提取member_id和token
            member_id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'member_id', str(member_id))

            token_type = jsonpath.jsonpath(res, '$..token_type')[0]
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data = token_type + ' ' + token
            setattr(TestData, 'token_data', token_data)

        elif case['interface'] == 'add':
            loan_id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'loan_id', str(loan_id))

        # 3、断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info('用例:{}--->执行未通过'.format(case['title']))
            my_logger.error(e)
            print("预取结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info('用例:{}--->执行已通过'.format(case['title']))
示例#12
0
    def test_audit(self,case):
        # 准备测试数据
        # 准备url地址
        url=conf.get('env','url')+case['url']
        # 请求方法
        method=case['method']
        # 请求数据
        case['data']=replace_data(case['data'])
        data=eval(case['data'])
        print('data:',data)
        #配置文件获取headers
        headers=eval(conf.get('env','headers'))
        headers['Authorization']=getattr(CaseData,'token_data')

        # 预期结果
        expected=eval(case['expected'])

        row=case['case_id']+1
        # 发送请求
        response=self.http.send(url=url,method=method,json=data,headers=headers)
        res=response.json()
        print('audit_res:',res)

        if case['title']=='审核通过' and res['msg']=='OK':
            pass_loan_id=getattr(CaseData,'loan_id')
            setattr(CaseData,'pass_loan_id',pass_loan_id)

        # 断言
        try:
            self.assertEqual(expected['code'],res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql=replace_data(case['check_sql'])
                status=self.db.get_one(sql)[0]
                self.assertEqual(expected['status'],status)

        except AssertionError as e:
            self.excel.write_excel(row=row,column=8,value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            mylog.error(e)
            print("预期结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row,column=8,value='已通过')
            mylog.info('用例:{}---->执行已通过'.format(case['title']))
示例#13
0
    def test_recharge(self, case):
        case['data'] = replace_data(case['data'])
        data = eval(case['data'])
        expected = eval(case['expected'])
        row = case['case_id'] + 1
        url = case['url']
        recharge_url = base_url + url
        method = case['method']
        header = eval(conf.get('env', 'header'))
        header['Authorization'] = getattr(TestData, 'token_data')

        # 请求之前数据库看一下当前用户有多少钱
        # 请求后数据库看一下当前用户有多少钱
        # 然后比对增加的钱和用例中的钱
        if case['check_sql']:
            sql = case['check_sql'].format(conf.get('login_data', 'phone'))
            before_amount = self.db.get_one(sql)[0]

        response = self.rest.send(url=recharge_url,
                                  method=method,
                                  json=data,
                                  headers=header)
        res = response.json()
        leave_amount = jsonpath.jsonpath(res, '$..leave_amount')
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql = case['check_sql'].format(conf.get('login_data', 'phone'))
                after_amount = self.db.get_one(sql)[0]
                expected_amount = eval(case['data'])['amount']
                self.assertEqual(decimal.Decimal(str(expected_amount)),
                                 (after_amount - before_amount))
                my_logger.info('充值之前金额为:{}\n,充值金额为:{}\n,充值后金额为:{}'.format(
                    before_amount, expected_amount, after_amount))
        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            my_logger.info('用例-->{}:执行未通过'.format(case['title']))
            my_logger.error(e)
            print("预期结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            my_logger.info('用例-->{}:执行已通过'.format(case['title']))
示例#14
0
 def setUp(self):
     url = conf.get('env', 'url') + '/loan/add'
     data = {
         "member_id": getattr(TestData, 'admin_member_id'),
         "title": "借钱实现财富自由",
         "amount": 2000,
         "loan_rate": 12.0,
         "loan_term": 3,
         "loan_date_type": 1,
         "bidding_days": 5
     }
     headers = eval(conf.get('env', 'header'))
     headers['Authorization'] = getattr(TestData, 'token_data')
     response = self.http.send(url=url, method='post', json=data, headers=headers)
     res = response.json()
     # 获取项目id
     loan_id = jsonpath.jsonpath(res, '$..id')[0]
     setattr(TestData, 'loan_id', str(loan_id))
示例#15
0
    def setUp(self):
        url = conf.get('env', 'url') + '/loan/add'
        data= {
            "member_id":getattr(CaseData,'member_id'),
            "title":"升职加薪",
            "amount":5000,
            "loan_rate":18,
            "loan_term":12,
            "loan_date_type":1,
            "bidding_days":6
        }
        headers=eval(conf.get('env','headers'))
        headers['Authorization']=getattr(CaseData,'token_data')

        response=self.http.send(url=url,method='post',json=data,headers=headers)
        res=response.json()
        # 提取id
        loan_id=jsonpath.jsonpath(res,'$..id')[0]
        setattr(CaseData,'loan_id',str(loan_id))
示例#16
0
    def test_recharge(self, case):
        # 准备测试数据
        recharge_url = conf.get('env', 'url') + case['url']
        case['data'] = replace_data(case['data'])
        recharge_data = eval(case['data'])
        method = case['method']
        headers = eval(conf.get('env', 'headers'))
        headers['Authorization'] = getattr(CaseData, 'token_data')
        expected = eval(case['expected'])
        row = case['case_id'] + 1

        # 发送请求前查询一下账号余额
        if case['check_sql']:
            sql = case['check_sql'].format(conf.get('env', 'phone'))
            before_amount = self.db.get_one(sql)[0]

        # 发送请求,获取响应结果
        response = self.http.send(url=recharge_url,
                                  method=method,
                                  json=recharge_data,
                                  headers=headers)
        res = response.json()
        #比对预期结果与实际结果
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                sql = case['check_sql'].format(conf.get('env', 'phone'))
                after_amount = self.db.get_one(sql)[0]
                self.assertEqual((after_amount - before_amount),
                                 Decimal(str(recharge_data['amount'])))

        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->测试未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            mylog.error(e)
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            mylog.info('用例:{}---->测试已通过'.format(case['title']))
示例#17
0
 def setUpClass(cls):
     # 准备测试数据
     login_url = conf.get('env', 'url') + '/member/login'
     data = {
         'mobile_phone': conf.get('env', 'phone'),
         'pwd': conf.get('env', 'pwd')
     }
     headers = eval(conf.get('env', 'headers'))
     # 发送请求
     response = cls.http.send(url=login_url,
                              method='post',
                              json=data,
                              headers=headers)
     res = response.json()
     #保存member_id
     member_id = jsonpath.jsonpath(res, '$..id')[0]
     setattr(CaseData, 'member_id', str(member_id))
     token_type = jsonpath.jsonpath(res, '$..token_type')[0]
     token = jsonpath.jsonpath(res, '$..token')[0]
     # 拼接token认证数据
     token_data = token_type + ' ' + token
     setattr(CaseData, 'token_data', token_data)
示例#18
0
    def test_register(self, case):
        # 准备测试数据
        # 拼接完整的接口地址
        url = conf.get('env', 'url') + '/member/register'
        # 请求方法
        method = case['method']
        if '#phone#' in case['data']:
            phone = self.random_phone()
            case['data'] = case['data'].replace('#phone#', phone)
        data = eval(case['data'])

        expected = eval(case['expected'])
        headers = eval(conf.get('env', 'headers'))
        row = case['case_id'] + 1
        # 2、发送请求
        response = self.http.send(url=url, method=method, json=data, headers=headers)
        res = response.json()

        # 3、比对预期结果与实际结果
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
            if case['check_sql']:
                print(case['check_sql'],type(case['check_sql']))
                sql=case['check_sql'].format(conf.get('env','phone'))
                count=self.db.count(sql)
                self.assertEqual(count,1)
        except AssertionError as e:
            self.excel.write_excel(row=row, column=8, value='未通过')
            mylog.info('用例:{}----->执行未通过'.format(case['title']))
            mylog.error(e)
            print("预期结果:{}".format(expected))
            print("实际结果:{}".format(res))
            raise e
        else:
            self.excel.write_excel(row=row, column=8, value='已通过')
            mylog.info('用例:{}----->执行已通过'.format(case['title']))
示例#19
0
 def setUpClass(cls):
     # 创建数据库对象
     cls.db = HandDB()
     # 登录,获取用户的id以及鉴权需要用到的token
     login_url = base_url + '/member/login'
     login_data = {
         "mobile_phone": conf.get('login_data', 'phone'),
         "pwd": conf.get('login_data', 'pwd')
     }
     expected = {'code': 0, 'msg': 'OK'}
     header = eval(conf.get('env', 'header'))
     response = requests.post(url=login_url,
                              json=login_data,
                              headers=header)
     res = response.json()
     # 获取用户id
     member_id = jsonpath.jsonpath(res, '$..id')[0]
     setattr(TestData, "member_id", str(member_id))
     # 获取token类型
     token_type = jsonpath.jsonpath(res, '$..token_type')[0]
     # 获取token值
     token = jsonpath.jsonpath(res, '$..token')[0]
     token_data = token_type + ' ' + token
     setattr(TestData, 'token_data', token_data)
示例#20
0
def replace_data(data):
    r = r'#(.+?)#'
    # 判断是否有需要替换的数据
    while re.search(r, data):
        # 匹配第一个要替换的数据
        res = re.search(r, data)
        # 提取待替换的内容
        item = res.group()
        # 获取替换内容的数据项
        key = res.group(1)
        try:
            # 根据替换内容中的数据项去配置文件中找到对应的内容,进行替换
            data = data.replace(item, conf.get('login_data', key))
        except:
            data = data.replace(item, getattr(TestData, key))

    # 返回替换好的数据
    return data
示例#21
0
def replace_data(data):
    r = r = '#(.+?)#'
    # 判断是否有要替换的数据
    while re.search(r, data):
        # 匹配出第一个要替换的数据
        res = re.search(r, data)
        #提取待替换的内容
        item = res.group()
        #提取替换内容中的数据项
        key = res.group(1)
        try:
            # 根据替换内容中的数据项去配置文件中找到对应的的内容,进行替换
            data = data.replace(item, conf.get('env', key))
        except:

            data = data.replace(item, getattr(CaseData, str(key)))
    # 返回替换好的数据
    return data
示例#22
0
 def setUpClass(cls):
     phone = conf.get('login_data', 'phone')
     setattr(TestData, 'phone', phone)
     pwd = conf.get('login_data', 'pwd')
     setattr(TestData, 'pwd', pwd)
示例#23
0
 def setUpClass(cls):
     cls.db = HandDB()
     cls.admin_phone=conf.get('login_data','admin_phone')
     cls.admin_pwd=conf.get('login_data','admin_pwd')
示例#24
0
"""
============================
Author  : XiaoLei.Du
Time    : 2019/11/23 17:53
E-mail  : [email protected]
File    : log_func.py
============================
"""
import os
import logging
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
from common.contans import LogDir
from common.read_conf import conf
level = conf.get('logging', 'level')
f_level = conf.get('logging', 'f_level')
s_level = conf.get('logging', 's_level')
filename = conf.get('logging', 'filename')


class MyLogger(object):
    @staticmethod
    def create_logger():
        # 一、自定义一个名为python24的日志收集器
        test_log = logging.getLogger(filename)
        # 二、定义日志收集器等级
        test_log.setLevel(level)
        # 三、添加输出渠道
        # 1、创建一个输出到控制台的输出渠道
        sh = logging.StreamHandler()
        # 2、设置输出等级(输出到控制台)
        sh.setLevel(s_level)
示例#25
0
============================
Author  : XiaoLei.Du
Time    : 2020/4/6 17:55
E-mail  : [email protected]
File    : run.py
============================
"""
import os
import unittest
from library.HTMLTestRunnerNew import HTMLTestRunner
from common.contants import REPORT_DIR, CASE_DIR
from common.read_conf import conf
from testcases import test_login, test_recharge, test_withdraw, test_register, test_add, test_audit, test_invest

#第一步:创建测试套件
suite = unittest.TestSuite()

#第二步:加载测试用例到测试套件中
loader = unittest.TestLoader()
suite.addTest(loader.discover(CASE_DIR))
# suite.addTest(loader.loadTestsFromModule(test_invest))
# 第三步:创建启动程序
report_path = os.path.join(REPORT_DIR, conf.get('report', 'filename'))
with open(report_path, 'wb') as f:
    runner = HTMLTestRunner(stream=f,
                            title=conf.get('report', 'title'),
                            description=conf.get('report', 'description'),
                            tester=conf.get('report', 'tester'))
    # 运行程序
    runner.run(suite)
示例#26
0
"""
import os
import unittest
import requests
import jsonpath
from common.read_conf import conf
from common.read_excel import ReadExcel
from common.contans import DataDir
from common.hander_request import HanderRequest
from library.ddt import ddt, data
from common.my_logger import my_logger
from common.hande_db import HandDB
import decimal
from common.hander_data import TestData, replace_data

base_url = conf.get('env', 'url')
header = eval(conf.get('env', 'header'))


@ddt
class TestRecharge(unittest.TestCase):
    datapath = os.path.join(DataDir, 'cases.xlsx')
    excel = ReadExcel(datapath, 'recharge')
    recharge_data = excel.read_excel()
    rest = HanderRequest()

    @classmethod
    def setUpClass(cls):
        # 创建数据库对象
        cls.db = HandDB()
        # 登录,获取用户的id以及鉴权需要用到的token
示例#27
0
"""
============================
Author  : XiaoLei.Du
Time    : 2019/11/23 17:22
E-mail  : [email protected]
File    : run_suite.py
============================
"""
import os
import unittest
from library.HTMLTestRunnerNew import HTMLTestRunner
from common.contans import CaseDir, ReportDir
from common.read_conf import conf
from testcases import test_login, test_recharge, test_withdraw, test_addloan, test_audit, test_invest
title = conf.get('report', 'title')
description = conf.get('report', 'description')
tester = conf.get('report', 'tester')

# 第一步:新建测试套件
suite = unittest.TestSuite()
# 第二步:加载测试用例到测试套件
loader = unittest.TestLoader()
case_path = os.path.join(CaseDir)
suite.addTest(loader.discover(case_path))
# suite.addTest(loader.loadTestsFromModule(test_invest))
# 第三步:新建测试用例启动器
report_path = os.path.join(ReportDir, 'report.html')
with open(report_path, 'wb') as f:
    runner = HTMLTestRunner(stream=f,
                            title=title,
                            description=description,