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
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()
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
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()
def setUp(self): setattr(env_data, "loan_id", env_data.get_loan_id()) self.db = Handler.db_class()
def setUp(self): logger.info('连接数据库>>>') self.db = Handler.db_class()