class QueryBrokerOrderPageList(unittest.TestCase): def setUp(self): self.filename = Request().dirname() + "/Document/Wechat_Applet/queryBrokerOrderPageList.json" self.filecontent = FileContent(self.filename) self.apiname = self.filecontent.get_apiname() # 获取apiname用于获得url self.api = self.filecontent.get_api() # 获取api用于校验 self.caselist = self.filecontent.get_caselist() # 获取caselist列表,包括"reqParams"和"expectResult" # self.casenumber = self.filecontent.get_casenumber() # 获取case数量 self.verify = Verify() self.verificationErrors = [] def get_response(self, serial): """ :param serial: :return: 获取接口返回 """ url = Request().get_url(serial=serial, filename=self.filename, apiname=self.apiname) session = requests.session() response = session.post(url) if response.status_code == 200: return response else: raise ConnectionRefusedError() def verify_datalist_number(self, serial, result): """ 校验dataList列表长度,小于等于pagesize,即每次请求最多为pagesize规定的数值,默认为15 :return: """ pagesize_parama = self.filecontent.get_reqparams(serial)['queryRequest']['pagesize'] datalist = result['data']['dataList'] len_datalist = len(datalist) self.assertTrue(len_datalist <= pagesize_parama, msg="len_datalist: {}, pagesize: {}".format(len_datalist, pagesize_parama)) def verify_status(self, serial, result): """ 校验status为当前查询列表的status :param serial: :param result: :return: """ expect_status = self.filecontent.get_datalist(serial)[0]['status'] result_datalist = result['data']['dataList'] for i in range(len(result_datalist)): self.assertEqual(expect_status, result_datalist[i]['status']) def test_to_pay(self): """ 待车商支付订单列表 校验点:1、校验datalist列表长度<=pagesize的值 2、校验datalist所有订单的status=0 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {1: "待车商支付订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key-1)) if operator.eq(value, self.filecontent.get_instruction(serial=key-1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key-1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key-1)) sql_data = self.filecontent.get_sqldata(serial=key-1) if SqlOperation().select_data(sql_data['select']) != 0: SqlOperation().delete_data(sql_data['delete']) SqlOperation().insert_data(sql_data['insert']) response = self.get_response(serial=key-1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key-1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key - 1, result=json_result) self.verify_status(serial=key-1, result=json_result) print("ALL END!!") def test_broker_to_confirm(self): """ 待经纪人确认订单列表 校验点:1、校验datalist列表长度<=pagesize的值 2、校验datalist所有订单的status=1 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {2: "待经纪人确认订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1)) sql_data = self.filecontent.get_sqldata(serial=key - 1) if SqlOperation().select_data(sql_data['select']) != 0: SqlOperation().delete_data(sql_data['delete']) SqlOperation().insert_data(sql_data['insert']) response = self.get_response(serial=key - 1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key - 1, result=json_result) self.verify_status(serial=key - 1, result=json_result) print("ALL END!!") def test_customer_to_confirm(self): """ 待车商确认订单列表 校验点:1、校验datalist列表长度<=pagesize的值 2、校验datalist所有订单的status=2 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {3: "待车商确认订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1)) sql_data = self.filecontent.get_sqldata(serial=key - 1) if SqlOperation().select_data(sql_data['select']) is not None: SqlOperation().delete_data(sql_data['delete']) SqlOperation().insert_data(sql_data['insert']) response = self.get_response(serial=key - 1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key - 1, result=json_result) self.verify_status(serial=key - 1, result=json_result) print("ALL END!!") def test_paid_success(self): """ 交易成功订单列表 校验点:1、校验datalist列表长度<=pagesize的值; 2、校验datalist所有订单的status=3 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {4: "交易成功订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key-1)) if operator.eq(value, self.filecontent.get_instruction(serial=key-1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key-1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key-1)) response = self.get_response(serial=key-1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key-1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key - 1, result=json_result) self.verify_status(serial=key-1, result=json_result) print("ALL END!!") def test_paid_fail(self): """ 交易失败订单列表 校验点:1、校验datalist列表长度<=pagesize的值 2、校验datalist所有订单的status=3 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {5: "交易失败订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1)) response = self.get_response(serial=key - 1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key - 1, result=json_result) self.verify_status(serial=key - 1, result=json_result) print("ALL END!!") def test_all_list(self): """ 全部订单列表 校验点:1、校验datalist列表长度<=pagesize的值 2、datalist不为空 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {6: "全部订单列表"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("TestCase {}'s instruction is not Equal to CaseNum.".format(key - 1)) response = self.get_response(serial=key - 1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") self.verify_datalist_number(serial=key-1, result=json_result) self.verify.verify_data_isNotNull(result=json_result) print("ALL END!!") def tearDown(self): SqlOperation().close()
class GetQuoteDetail(unittest.TestCase): def setUp(self): self.filename = Request().dirname() + "/Document/B_Client/getQuoteDetail.json" self.filecontent = FileContent(filename=self.filename) self.apiname = self.filecontent.get_apiname() self.caselist = self.filecontent.get_caselist() self.verify = Verify() # self.casenumber = self.filecontent.get_casenumber() def get_response(self, serial): url = Request().get_url(serial=serial, filename=self.filename, apiname=self.apiname) response = requests.post(url=url) if response.status_code == 200: return response else: raise ConnectionRefusedError() def verify_status(self, serial, result): """ 校验返回结果的status == auto.company_quote.status :param result :return: """ expect_status = self.filecontent.get_expectresult(serial)['status'] result_status = result['data']['status'] self.assertEqual(expect_status, result_status, msg="expect_status != result_status.") def test_offering(self): """ 报价中状态查询成功 校验点:1、message:返回值 查询成功 2、data不为空 3、status=1 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {1: "报价中状态查询成功"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key)) # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态 sql = self.filecontent.get_sqldata(serial=key - 1) for sql_update in sql['update']: SqlOperation().update_data(sql_update) response = self.get_response(serial=key - 1) self.verify.verify_code_200(response=response) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) self.verify.verify_data_isNotNull(result=json_result) self.verify_status(serial=key - 1, result=json_result) print("ALL END!!") def test_offer_expired(self): """ 报价已过期状态查询成功 校验点:1、message:返回值 查询成功 2、data不为空 3、status=2 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {2: "报价已过期状态查询成功"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key)) # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态 sql = self.filecontent.get_sqldata(serial=key - 1) for sql_update in sql['update']: SqlOperation().update_data(sql_update) response = self.get_response(serial=key - 1) self.verify.verify_code_200(response=response) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) self.verify.verify_data_isNotNull(result=json_result) self.verify_status(serial=key-1, result=json_result) print("ALL END!!") def test_offer_withdraw(self): """ 报价已撤回状态查询成功 校验点:1、message:返回值 查询成功 2、data不为空 3、status=3 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {3: "报价已撤回状态查询成功"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key)) # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态 sql = self.filecontent.get_sqldata(serial=key - 1) for sql_update in sql['update']: SqlOperation().update_data(sql_update) response = self.get_response(serial=key - 1) self.verify.verify_code_200(response=response) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) self.verify.verify_data_isNotNull(result=json_result) self.verify_status(serial=key-1, result=json_result) print("ALL END!!") def test_offer_failure(self): """ 报价已失效 状态查询成功 校验点:1、message:返回值 查询成功 2、data不为空 3、status=4 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {4: "报价已失效状态查询成功"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format(key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError("用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum.".format(key)) # 更新数据库auto.company_search_car的search_status、is_valid和auto.company_quote的status、is_valid状态 sql = self.filecontent.get_sqldata(serial=key - 1) for sql_update in sql['update']: SqlOperation().update_data(sql_update) response = self.get_response(serial=key - 1) self.verify.verify_code_200(response=response) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) self.verify.verify_data_isNotNull(result=json_result) self.verify_status(serial=key-1, result=json_result) print("ALL END!!") def tearDown(self): SqlOperation().close()
class GetCarSourceAllByEs(unittest.TestCase): def setUp(self): self.filename = Request().dirname( ) + "/Document/Wechat_Applet/getCarSourceAllByEs.json" self.filecontent = FileContent(self.filename) self.apiname = self.filecontent.get_apiname() # 获取apiname用于获得url self.api = self.filecontent.get_api() # 获取api用于校验 self.caselist = self.filecontent.get_caselist( ) # 获取caselist列表,包括"reqParams"和"expectResult" self.verify = Verify() # self.result = GlobalVar().global_dic self.verificationErrors = [] def get_response(self, serial): """ :param serial: :return: 获取接口返回 """ url = Request().get_url(serial=serial, filename=self.filename, apiname=self.apiname) session = requests.session() response = session.post(url, timeout=1) if response.status_code == 200: return response else: raise ConnectionRefusedError("request is refused.") def verify_data_number(self, serial, result): """ 校验data列表长度,小于等于pagesize,即每次请求最多为pagesize规定的数值,默认为15 :return: """ pagesize_parama = self.filecontent.get_reqparams(serial)['pageSize'] data = result['data'] len_data = len(data) self.assertTrue(len_data <= pagesize_parama, msg="len_datalist: {}, pagesize: {}".format( len_data, pagesize_parama)) def test_get_success(self): """ 查询车源列表成功 校验点:1、message:返回值 查询车源列表成功 2、data列表不为空 3、data长度<=pageSize,pageSize为请求参数传入的值 :return: """ # casenum = {serial: instruction}, 如果与json文档不一致的话就会报错 casenum = {1: "查询车源列表成功"} for key, value in casenum.items(): print(value, self.filecontent.get_instruction(serial=key - 1)) if operator.eq(value, self.filecontent.get_instruction(serial=key - 1)): print("TestCase {}: {}".format( key, self.filecontent.get_instruction(serial=key - 1))) else: raise ValueError( "用例匹配失败:TestCase {}'s instruction is not Equal to CaseNum." .format(key)) response = self.get_response(serial=key - 1) json_result = response.json() print("response content: ", json_result) expectresult = self.filecontent.get_expectresult(serial=key - 1) print("code verify is beginning...") self.verify.verify_code(expectresult=expectresult, result=json_result) print("code verify is success.") print("message verify is beginning...") self.verify.verify_message(expectresult=expectresult, result=json_result) print("message verify is success.") print("data verify is beginning...") self.verify.verify_data_isNotNull(result=json_result) print("data verify is success.") self.verify_data_number(serial=key - 1, result=json_result) print("ALL END!!") def tearDown(self): pass