示例#1
0
    def test_recharge(self, data_item):
        logger.info('正在执行{}用例第{}条>>>'.format(data_item["interface"],
                                             data_item["case_id"]))
        data_item["headers"] = even_data.data_replace(data_item["headers"])

        data_item["data"] = even_data.data_replace(data_item["data"])
        db = Handler.db_class()
        sql = "select leave_amount from futureloan.member where id={};".format(
            even_data.member_id)

        # 访问接口前获取充值前的余额
        before_amount = db.query(sql)["leave_amount"]
        db.close()
        # print(type(before_amount),before_amount)

        # print(type(amount),amount)
        exp_res = json.loads(data_item['expected_result'])
        act_res = Response(url_header + data_item["url"],
                           data_item["method"]).get_response(
                               headers=json.loads(data_item["headers"]),
                               json=json.loads(data_item["data"]))
        # print(act_res)
        try:
            for k, v in exp_res.items():
                self.assertTrue(act_res[k] == v)
            if act_res['code'] == 0:
                logger.info('充值成功!')
                amount = json.loads(data_item['data'])["amount"]
                # 校验响应中的数据和期望数据一致
                self.assertTrue(
                    Decimal(str(jsonpath(act_res, "$..leave_amount")[0])) ==
                    Decimal(str(amount)) + before_amount)
                logger.info('响应数据中余额与期望金额一致。')
                db = Handler.db_class()
                leave_amount = db.query(sql)["leave_amount"]
                db.close()
                # print(type(leave_amount),leave_amount)
                # 校验数据库的数据与期望一致
                self.assertTrue(leave_amount == Decimal(str(amount)) +
                                before_amount)
                logger.info('数据库会员{}余额与期望金额一致'.format(even_data.member_id))
            logger.info('用例{}通过。'.format(data_item["case_id"]))
            # 测试结果回写到excel
            Handler.excel.data_write('recharge', data_item["case_id"] + 1, 9,
                                     "pass")
        except AssertionError as e:
            logger.error('用例{}不通过!!'.format(data_item["case_id"]))
            Handler.excel.data_write('recharge', data_item["case_id"] + 1, 9,
                                     "fail")
            raise e
示例#2
0
    def random_phone(self):
        """随机生成一个动态的手机号码。
        注册成功的用例当中,需要一个没有被注册过的手机号。需要查询数据库。
        """
        # 第一步,随机生成手机号
        # 前面 2 位  13
        import random
        while True:
            phone = "13"
            for i in range(9):
                num = random.randint(0, 9)
                phone += str(num)
            print(phone)

            # 查询数据库,如果数据库当中有这个手机号,再次生成,while,
            # from middleware.handler import MysqlHandlerMid
            # db = MysqlHandlerMid()
            db = Handler.db_class()

            sql_code = "SELECT * FROM futureloan.member WHERE mobile_phone={};".format(phone)
            phone_record = db.query(sql_code)

            if not phone_record:
                db.close()
                return phone
            db.close()
示例#3
0
    def test_add(self, data_item):
        logger.info('正在执行{}用例第{}条>>>'.format(data_item["interface"],
                                             data_item["case_id"]))
        data_item['headers'] = even_data.data_replace(data_item['headers'])
        data_item['data'] = even_data.data_replace(data_item['data'])

        sql = "SELECT * FROM futureloan.loan WHERE member_id={};".format(
            even_data.member_id)

        # 访问接口前获取loan的记录条数
        db = Handler.db_class()
        before_loan_num = len(db.query(sql, one=False))
        db.close()
        # print(type(before_amount),before_amount)

        # print(type(amount),amount)
        exp_res = json.loads(data_item['expected_result'])
        act_res = Response(url_header + data_item["url"],
                           data_item["method"]).get_response(
                               headers=json.loads(data_item["headers"]),
                               json=json.loads(data_item["data"]))
        # print(act_res)
        try:
            for k, v in exp_res.items():
                self.assertTrue(act_res[k] == v)
            if act_res['code'] == 0:
                logger.info('项目添加成功!')
                # 访问接口后获取loan的记录条数
                db = Handler.db_class()
                after_loan_num = len(db.query(sql, one=False))
                db.close()
                # print(type(leave_amount),leave_amount)
                # 校验数据库的数据与期望一致
                self.assertTrue(after_loan_num == before_loan_num + 1)
                logger.info('数据库新增一条记录')
            logger.info('用例{}通过。'.format(data_item["case_id"]))
            # 测试结果回写到excel
            Handler.excel.data_write('add', data_item["case_id"] + 1, 9,
                                     "pass")
        except AssertionError as e:
            logger.error('用例{}不通过!!'.format(data_item["case_id"]))
            # print(act_res, exp_res)
            Handler.excel.data_write('add', data_item["case_id"] + 1, 9,
                                     "fail")
            raise e
示例#4
0
 def get_random_phone():
     while True:
         phone = '1' + random.choice(['3', '8'])
         for i in range(0, 9):
             phone += str(random.randint(0, 9))
         db = Handler.db_class()
         sql = "SELECT * FROM futureloan.member WHERE mobile_phone={};".format(
             phone)
         sql_res = db.query(sql)
         if not sql_res:
             db.close()
             return phone
         db.close()
示例#5
0
 def setUp(self):
     setattr(env_data, "loan_id", env_data.get_loan_id())
     self.db = Handler.db_class()
示例#6
0
 def setUp(self):
     logger.info('连接数据库>>>')
     self.db = Handler.db_class()