diff --git a/data/JekunAuto_WeChat/user_login/user_info.yaml b/data/JekunAuto_WeChat/user_login/user_info.yaml index 462328b..1aab587 100644 --- a/data/JekunAuto_WeChat/user_login/user_info.yaml +++ b/data/JekunAuto_WeChat/user_login/user_info.yaml @@ -10,17 +10,17 @@ user_info_01: method: POST detail: 登录接口 headers: - # 这里cookie的值,写的是存入缓存的名称 + # 这里cookie的值,写的是存入缓存的名称 # 请求的数据,是 params 还是 json、或者file、data requestType: json # 是否执行,空或者 true 都会执行 is_run: data: - mobile: '12345678912' - sms: '55555' - openid: 'oKOmX5KQ-DAXRlfIpTl6-iGrM_eE' - distributionUserId: '' - thirdPartySource: 'JEKUNAUTO' + mobile: '12345678912' + sms: '55555' + openid: 'oKOmX5KQ-DAXRlfIpTl6-iGrM_eE' + distributionUserId: '' + thirdPartySource: 'JEKUNAUTO' dependence_case: False @@ -58,7 +58,7 @@ user_info_02: Connection: 'keep-alive' areaCode: '440105' Entity-Date: ${get_GMT()} - Authorization: ${get_Authorization(v1/users/)} + Authorization: ${get_Authorization(v1/users/,get)} content-type: 'application/json' User-Agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2208010 MicroMessenger/8.0.5 webview/' accessKey: ${get_accessKey()} @@ -69,7 +69,7 @@ user_info_02: Sec-Fetch-Mode: 'cors' Sec-Fetch-Dest: 'empty' Cookie: '_csrf-frontend=4a51c35ee2fbcec594206a4a3d3acff5e16f505e6640d083fe573cdb67f8d099a%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22lOhNgJ_F7YEqCMAZ7poRxVh_c3ALOQTp%22%3B%7D; advanced-frontend=v984ed6kd1cd0ldob9tke47kf3' - # 这里cookie的值,写的是存入缓存的名称 + # 这里cookie的值,写的是存入缓存的名称 # 请求的数据,是 params 还是 json、或者file、data requestType: params # 是否执行,空或者 true 都会执行 @@ -81,15 +81,15 @@ user_info_02: dependence_case_data: - case_id: user_info_01 dependent_data: - - dependent_type: response - jsonpath: $.data[userId] - set_cache: userId - - dependent_type: response - jsonpath: $.data[accessId] - set_cache: accessId - - dependent_type: response - jsonpath: $.data[accessKey] - set_cache: accessKey + - dependent_type: response + jsonpath: $.data[userId] + set_cache: userId + - dependent_type: response + jsonpath: $.data[accessId] + set_cache: accessId + - dependent_type: response + jsonpath: $.data[accessKey] + set_cache: accessKey assert: # 断言接口状态码 @@ -107,7 +107,7 @@ user_info_order_stauts_01: Connection: 'keep-alive' areaCode: '440105' Entity-Date: ${get_GMT()} - Authorization: ${get_Authorization(v1/order/order/my-order-status-config)} + Authorization: ${get_Authorization(v1/order/order/my-order-status-config,get)} content-type: 'application/json' User-Agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 wechatdevtools/1.06.2208010 MicroMessenger/8.0.5 webview/' accessKey: ${get_accessKey()} @@ -118,7 +118,7 @@ user_info_order_stauts_01: Sec-Fetch-Mode: 'cors' Sec-Fetch-Dest: 'empty' Cookie: '_csrf-frontend=4a51c35ee2fbcec594206a4a3d3acff5e16f505e6640d083fe573cdb67f8d099a%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22lOhNgJ_F7YEqCMAZ7poRxVh_c3ALOQTp%22%3B%7D; advanced-frontend=v984ed6kd1cd0ldob9tke47kf3' - # 这里cookie的值,写的是存入缓存的名称 + # 这里cookie的值,写的是存入缓存的名称 # 请求的数据,是 params 还是 json、或者file、data requestType: params # 是否执行,空或者 true 都会执行 @@ -134,7 +134,7 @@ user_info_order_stauts_01: - case_id: user_info_01 dependent_data: - dependent_type: response - jsonpath : $.data[userId]] + jsonpath: $.data[userId]] replace_key: $.data.id assert: @@ -143,3 +143,41 @@ user_info_order_stauts_01: sql: +user_info_car_01: + host: ${{host()}} + url: /v1/cars + method: GET + detail: 用户车俩列表 + headers: + Connection: 'keep-alive' + clientSource: '0' + areaCode: '440105' + Entity-Date: ${get_GMT()} + Authorization: ${get_Authorization(/v1/cars,GET)} + content-type: 'application/json' + accessKey: ${get_accessKey()} + Cookie: '_csrf-frontend=eb88b5154efc627dc7b2ad8d9046c40ba0bd409a807f9743089c2af6d75add9da%3A2%3A%7Bi%3A0%3Bs%3A14%3A%22_csrf-frontend%22%3Bi%3A1%3Bs%3A32%3A%22NJLa42Exc9vVQSnMCpEHWcXOvk2DmalJ%22%3B%7D; advanced-frontend=9cho9he6uul8c93epuntgi9tlg' + # 这里cookie的值,写的是存入缓存的名称 + # 请求的数据,是 params 还是 json、或者file、data + requestType: params + # 是否执行,空或者 true 都会执行 + is_run: + data: + fields: "modelPicUrl,carLicense,carModelLabel,id,isDefault,isCertified,isNewEnergy,licenseProvince,licenseLetter,licenseNumber,jekunModelCode,seriesId,seriesName,modelId,modelName,brandId,brandName,brandLogoUrl,carImageUrl" + thirdPartySource: JEKUNAUTO + query: "%257B%2522perPage%2522%253A1000%252C%2522page%2522%253A1%252C%2522sort%2522%253A%2522-isDefault%252C-isCertified%252C-id%2522%257D" + clientSource: "0" + dependence_case: False + # 依赖的数据 + dependence_case_data: + - case_id: + dependent_data: + - dependent_type: + jsonpath: + replace_key: + + assert: + # 断言接口状态码 + status_code: 200 + + sql: \ No newline at end of file diff --git a/test_case/JekunAuto_WeChat/user_login/test_login.py b/test_case/JekunAuto_WeChat/user_login/test_login.py index ee4469c..46d90a7 100644 --- a/test_case/JekunAuto_WeChat/user_login/test_login.py +++ b/test_case/JekunAuto_WeChat/user_login/test_login.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# @Time : 2023-02-14 17:16:25 +# @Time : 2023-02-15 17:45:07 import allure diff --git a/test_case/JekunAuto_WeChat/user_login/test_user_info.py b/test_case/JekunAuto_WeChat/user_login/test_user_info.py index 9328971..c95287e 100644 --- a/test_case/JekunAuto_WeChat/user_login/test_user_info.py +++ b/test_case/JekunAuto_WeChat/user_login/test_user_info.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# @Time : 2023-02-14 17:16:25 +# @Time : 2023-02-15 17:45:07 import allure @@ -12,7 +12,7 @@ from utils.read_files_tools.regular_control import regular from utils.requests_tool.teardown_control import TearDownHandler -case_id = ['user_info_01', 'user_info_02', 'user_info_order_stauts_01'] +case_id = ['user_info_01', 'user_info_02', 'user_info_order_stauts_01', 'user_info_car_01'] TestData = GetTestCase.case_data(case_id) re_data = regular(str(TestData)) @@ -21,7 +21,7 @@ re_data = regular(str(TestData)) @allure.feature("登录模块") class TestUserInfo: - @allure.story("用户信息接口") + @allure.story("用户信息") @pytest.mark.parametrize('in_data', eval(re_data), ids=[i['detail'] for i in TestData]) def test_user_info(self, in_data, case_skip): """ diff --git a/utils/read_files_tools/regular_control.py b/utils/read_files_tools/regular_control.py index 188c177..2c21a04 100644 --- a/utils/read_files_tools/regular_control.py +++ b/utils/read_files_tools/regular_control.py @@ -20,6 +20,7 @@ from utils.logging_tool.log_control import ERROR from utils.times_tool.time_control import get_GMT + class Context: """ 正则替换 """ # 主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据 @@ -29,10 +30,11 @@ class Context: @classmethod def get_GMT(cls): gmt_format = '%a, %d %b %Y %H:%M:%S GMT' - return datetime.utcnow().strftime(gmt_format) + time = datetime.utcnow().strftime(gmt_format) + return time - #todo 设计登录Authorization\ + #todo 还需判断method类型进行加密 \ @classmethod def get_Authorization(cls, *args): """ @@ -40,7 +42,7 @@ class Context: """ from test_case.conftest import login_aceess # login_aceess() - url =args[0] + url, method = args userId = CacheHandler.get_cache('userId') userId = str(userId) accessId = CacheHandler.get_cache('accessId') @@ -50,7 +52,7 @@ class Context: # url = re.search('v.*', url).group()+userId if url == "v1/users/": url = url + userId - string= 'GET' + '\\n' + url + '\\n' + '0' + '\\n' + clientTime + string= method.upper() + '\\n' + url + '\\n' + '0' + '\\n' + clientTime # 哈希加密处理 message = string.encode() key = accessKey.encode() diff --git a/utils/requests_tool/dependent_case.py b/utils/requests_tool/dependent_case.py index c0ca58d..4939a23 100644 --- a/utils/requests_tool/dependent_case.py +++ b/utils/requests_tool/dependent_case.py @@ -185,7 +185,6 @@ class DependentCase: re_data = ast.literal_eval(cache_regular(str(re_data))) # 调用依赖请求 res = RequestControl(re_data).http_request() - ERROR.logger.error("依赖后调用{}".format(res.response_data)) if dependence_case_data.dependent_data is not None: dependent_data = dependence_case_data.dependent_data for i in dependent_data: diff --git a/utils/requests_tool/request_control.py b/utils/requests_tool/request_control.py index 275bec1..379ded6 100644 --- a/utils/requests_tool/request_control.py +++ b/utils/requests_tool/request_control.py @@ -416,7 +416,6 @@ class RequestControl: # 处理多业务逻辑 if dependent_switch is True: DependentCase(self.__yaml_case).get_dependent_data() - # self.init1() res = requests_type_mapping.get(self.__yaml_case.requestType)( headers=self.__yaml_case.headers, method=self.__yaml_case.method, @@ -445,6 +444,5 @@ class RequestControl: request_data=self.__yaml_case.data, response_data=res ).set_caches_main() - ERROR.logger.error("依赖前{}".format(_res_data.response_data)) return _res_data