예제 #1
0
    def test_add(self, add):
        print("测试的用例是:{}".format(add['description']))
        login_data = Parameter.add_parameter(login_success[0]['param'])
        self.session_request.request(login_success[0]['method'], login_success[0]['url'],
                                     eval(login_data))

        add_param = eval(Parameter.add_parameter(add['param']))
        print("测试的数据是:{}".format(add_param))

        res = self.session_request.request(add['method'], add['url'], data=add_param)

        test_result = None
        write_res = DoExcel(project_path.CASE_FILE_PATH, 'add')

        try:
            # self.assertEqual(str(res.json()['code']), str(add['except_code']))
            self.assertIn(str(add['except_code']), res.text)
            my_logger.info(res.text)
            test_result = succeed
        except AssertionError as e:
            my_logger.error(e)
            test_result = failed
            raise e
        finally:
            print("测试结果是:", res.text)
            write_res.write_result(add['id'] + 1, res.json()['code'], test_result)
예제 #2
0
    def test_register(self, register):
        print("测试的用例是:{}".format(register['description']))

        param = Parameter.register_parameter(register['param'])

        print("测试的数据是:{}".format(param))

        res = self.request.http_request(register['url'],
                                        register['method'],
                                        datas=param)
        test_result = None

        write_res = DoExcel(project_path.CASE_FILE_PATH, 'register')

        try:
            # self.assertEqual(str(res.json()['code']), str(register['except_code']))
            self.assertIn(str(register['except_code']), res.text)
            my_logger.info(res.text)
            test_result = succeed
        except AssertionError as e:
            my_logger.error(e)
            test_result = failed
            raise e
        finally:
            print("测试结果是:", res.text)
            write_res.write_result(register['id'] + 1,
                                   res.json()['code'], test_result)
예제 #3
0
    def test_recharge(self, recharge):
        # 在测试报告中显示测试用例名称
        print("测试的用例是:{}".format(recharge['description']))
        login_data = eval(
            Parameter.recharge_parameter(login_success[0]['param']))
        self.session_request.request(login_success[0]['method'],
                                     login_success[0]['url'], login_data)

        param = eval(Parameter.recharge_parameter(recharge['param']))
        print("测试的数据是:{}".format(param))

        # 查询数据库余额数据进行数据校验
        seek_sql = recharge['seek_sql']

        if seek_sql:
            seek_sql = Parameter.recharge_parameter(seek_sql)
            before_seek_res = self.check_sql.run_sql(seek_sql, site=1)
            # seek_res = json.loads(seek_res)
            # 将返回数据进行数据转换,数据库查询出数据为decimal.Decimal类型,并保留两位小数
            before_amount = round(float(before_seek_res['LeaveAmount']), 2)

        # 调用充值接口
        res = self.session_request.request(recharge['method'],
                                           recharge['url'],
                                           data=param)

        test_result = None
        write_res = DoExcel(project_path.CASE_FILE_PATH, 'recharge')

        try:
            # self.assertEqual(str(res.json()['code']), str(recharge['except_code']))
            self.assertIn(str(recharge['except_code']), res.text)
            if seek_sql:
                # 前一个sql已经完成参数化
                # seek_sql = Parameter.recharge_parameter(seek_sql)
                after_seek_res = self.check_sql.run_sql(seek_sql, site=1)
                after_amount = round(float(after_seek_res['LeaveAmount']), 2)

                # 判断充值前后账户金额的变化是否正确
                self.assertEqual(after_amount, before_amount + param['amount'])

            my_logger.info(res.text)
            test_result = succeed
        except AssertionError as e:
            my_logger.error(e)
            test_result = failed
            raise e
        finally:
            print("测试结果是:", res.text)
            write_res.write_result(recharge['id'] + 1,
                                   res.json()['code'], test_result)
예제 #4
0
    def test_bidloan(self, bidloan):
        print("测试的用例是:{}".format(bidloan['description']))

        # login_data = eval(Parameter.lodn_parameter(login_success[0]['param']))
        # self.session_request.request(login_success[0]['method'], login_success[0]['url'],
        #                              login_data)

        loan_param = eval(Parameter.loan_parameter(bidloan['param']))
        # self.session_request.request(bidloan['method'], bidloan['url'],bidloan)

        print("测试的数据是:{}".format(loan_param))
        res = self.session_request.request(bidloan['method'], bidloan['url'], loan_param)

        # 获取成功加标的id
        if "加标成功" in res.text:
            check_sql = bidloan['seek_sql']
            if check_sql:
                check_sql = Parameter.loan_parameter(check_sql)
                check_data = self.do_mysql.run_sql(check_sql, site=1)
                loan_id = check_data['Id']  # 取出加标ID
                print(loan_id)
                # 动态创建属性
                setattr(Parameter, "loan_id", loan_id)

        test_result = None
        write_res = DoExcel(project_path.CASE_FILE_PATH, 'bidLoan')

        try:
            # self.assertEqual(str(res.json()['code']), str(bidloan['except_code']))
            self.assertIn(str(bidloan['except_code']), res.text)
            my_logger.info(res.text)
            test_result = succeed
        except AssertionError as e:
            my_logger.error(e)
            test_result = failed
            raise e
        finally:
            print("测试结果是:", res.text)
            write_res.write_result(bidloan['id'] + 1, res.json()['code'], test_result)
예제 #5
0
    def http_request(self, url, method, datas=None, is_json=False, **kwargs):
        """
        根据传入的参数完成请求
        :param is_json: 传参的类型是否是json
        :param url:请求地址
        :param datas:请求参数
        :param method:请求方法
        :param kwargs:其余参数,headers等
        :return:
        """
        # 将传入的请求方法字符串强制转换为大写,方便方法判断
        method = method.upper()
        result = None

        # 根据不同形式的参数字典进行判断转换,excel中存储的可能是非json形式的字典
        if isinstance(datas, str):
            try:
                datas = json.loads(datas)
            except Exception as e:
                datas = eval(datas)
                # my_logger.error("数据转换异常:", e)

        # 判断请求方法,按照设置的请求方法进行请求
        if method == 'POST':
            # 判断存储参数的形势,是否是json,如果是,则以json的形式进行传参,否则以form表单的形式传参
            if is_json:
                result = self.request_session.request(method=method, url=url, json=datas, **kwargs)
                my_logger.info("post请求成功")
            else:
                result = self.request_session.request(method=method, url=url, data=datas, **kwargs)
                my_logger.info("post请求成功")
        elif method == 'GET':
            result = self.request_session.request(method=method, url=url, params=datas, **kwargs)
            my_logger.info("get请求成功")
        else:
            my_logger.error("【{}】请求方法不允许".format(method))

        return result