예제 #1
0
    def test_register(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备测试数据,替换动态参数
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)

        # 第二步:发送请求到接口,获取实际结果
        res_code = self.request.http_request(method=case.method,
                                             url=self.url + case.url,
                                             data=eval(case.data)).json()

        # 第三步:比对预期结果和实际结果,断言用例是否通过
        try:
            if case.check_sql:
                case.check_sql = case.check_sql.replace("*phone*", phone)
                count = self.mysql.find_count(case.check_sql)
                log.info(f"注册后数据库期望数据条数:1,注册后数据库实际数据条数:{count}")
                self.assertEqual(1, count)
            log.info(f"请求期望返回码:{eval(case.expected)},请求实际返回码:{res_code}")
            self.assertEqual(eval(case.expected), res_code)
예제 #2
0
    def test_bidloan(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备用例数据
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)
        if "*memberId*" in case.data:
            # 想要用户id不存在,先找到最大用户id,加1即可
            member_id = self.mysql.find_one(
                "select max(id) as memberId from member")[0]
            case.data = case.data.replace("*memberId*", str(member_id + 1))
        if "*loanId*" in case.data:
            # 想要项目id不存在,先找到最大项目id,加1即可
            loan_id = self.mysql.find_one(
                "select max(id) as loanId from loan")[0]
            case.data = case.data.replace("*loanId*", str(loan_id + 1))
        if "*amount*" in case.data:
            # 想要可投金额不足,先找到可投金额的最大值,加大值即可
            sql = f"select Amount from loan where Id = {eval(case.data)['loanId']}"
            case.data = case.data.replace(
                "*amount*", str(self.mysql.find_one(sql)[0] + 1000))

        # 未登录时投资竞标,没有返回码
        if case.expected_code:
            case.expected_code = str(case.expected_code)
예제 #3
0
    def test_recharge(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备测试数据,替换动态参数
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)
        if "*amount*" in case.data:
            # 充值金额不足时,需要先获取库中的值
            sql = f"select LeaveAmount from member where MobilePhone = '{eval(case.data)['mobilephone']}'"
            money = float(self.mysql.find_one(sql)[0])
            case.data = case.data.replace("*amount*", str(money + 1000))

        # 未登录时取现/充值,没有返回码
        if case.expected_code:
            expected_code = str(case.expected_code)
        else:
            expected_code = None

        # 数据库校验
        if case.check_sql:
            case.check_sql = sub_conf(case.check_sql)
            old_money = float(self.mysql.find_one(case.check_sql)[0])
예제 #4
0
    def test_add(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备用例数据
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)
        if "*memberId*" in case.data:
            # 想要用户id不存在,先找到最大用户id,加1即可
            member_id = self.mysql.find_one(
                "select max(id) as memberId from member")[0]
            case.data = case.data.replace("*memberId*", str(member_id + 1))

        # 未登录时新增项目,没有返回码
        if case.expected_code:
            case.expected_code = str(case.expected_code)
예제 #5
0
    def test_audit(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备用例数据
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)
        if "*loanId*" in case.data:
            # 想要项目id不存在,先找到最大项目id,加1即可
            loan_id = self.mysql.find_one(
                "select max(id) as loanId from loan")[0]
            case.data = case.data.replace("*loanId*", str(loan_id + 1))

        # 未登录时审核,没有返回码
        if case.expected_code:
            case.expected_code = str(case.expected_code)
예제 #6
0
    def test_getList(self, case):
        log.info(f"验证接口:{case.interface},接口url:{case.url}")
        # 第一步:准备测试数据,替换动态参数
        # 替换配置文件中的固定参数
        case.data = sub_conf(case.data)
        # 替换动态生成的参数
        if "*phone*" in case.data:
            # 注册时,手机号码为动态注册的号码
            phone = random_phone()
            case.data = case.data.replace("*phone*", phone)
        if "*memberId*" in case.data:
            # 想要用户id不存在,先找到最大用户id,加1即可
            member_id = self.mysql.find_one("select max(id) from member")[0]
            case.data = case.data.replace("*memberId*", str(member_id + 100))
        if "*loanId*" in case.data:
            # 想要项目id不存在,先找到最大项目id,加1即可
            loan_id = self.mysql.find_one("select max(id) from loan")[0]
            case.data = case.data.replace("*loanId*", str(loan_id + 100))

        if case.check_sql:
            # 生成回款计划前查找数据条数
            case.check_sql = sub_conf(case.check_sql)
            old_conut = self.mysql.find_count(case.check_sql)