import requests import json import pytest url = "http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk" chaochang = '543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132' headers = { 'Content-Type': 'application/json' } global data data = [ { "application_info": { "appkey": "74b81be2432c029040e0b2bc375ce7fb", "bundleid": "3423232", "app_version": "1.9.0", "channel_name": "default" }, "timestamp_info": { "time_zone": "GMT+08", "install_time": "1637823377000", "current_event_time": "1637823377000", "report_time": "1637823377000" }, "collector_info": { "integration_type": "sdk", "collector_version": "1.8.4", "retried_times": "" }, "device_info": { "ryid": "8e4888e488a40a17aed2f6752f51382a4eafc", "device_id":"c3381276ae145b3663c8e0f6dd9f628a", "device_id_type": "idfa_md5", "device_id_md5": "c3381276ae145b3663c8e0f6dd9f628a", "device_id_md5_type": "idfa_md5", "os": "ios", "os_version": "19", "manufacturer": "HUAWEI", "model": "Mate 40", "ipv4": "", "ipv6": "1.1.1", "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36", "att_status": "unknown", "lat_status": "disable", "idfa": "3DEA635F-B24F-434B-833F-4ED028FEAEEF", "idfa_md5": "c3381276ae145b3663c8e0f6dd9f628a", "idfv": "3DEA635F-B24F-434B-833F-4ED028FEAEEF", "idfv_md5": "c3381276ae145b3663c8e0f6dd9f628a", }, "event_info": { "event_name": "install", "event_type": "preset", "event_data": { "user_id": "guest123", "register_type": "WeChat", "login_type": "Wechat", "order_id": "2341242342676398724", "order_amount": "343432", "currency_type": "CNY", "purchase_type": "Alipay", "ad_platform": "csj", "placement_type": "interstitial", "placement_id": "23425334", "ad_price": "4.34", "ad_price_currency_type": "CNY", "is_rendered": "1" }, "custom_params": { # "add_cart": "234234", # "sku": "234234", # "level_up": "234234", # "refund": "234234", # "refund_amount": "234234" } } } ] data_temp = json.dumps(data) def send_request(): global data url = "http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk" # print(data) response = requests.request("POST", url, headers=headers, data=json.dumps(data)) print(response.text) # 全局data data = json.loads(data_temp) response = json.loads(response.text) s = str(response["status"]) response["status"] = s return response # os为ios,channel_name不等于default def test_os_ios(): data[0]["device_info"]["os"] = 'ios' data[0]['application_info']['channel_name'] = 'xiaomi' response = send_request() assert response["status"] == "104" # os为大写iOS def test_os_ios(): data[0]["device_info"]["os"] = 'iOS' response = send_request() assert response["status"] == "115" # ATT框架启用状态,为固定值 def test_att_status1(): lis = ['denied', 'restricted', 'authorized', 'unknown'] for astatus in lis: data[0]['device_info']['att_status'] = astatus response = send_request() assert response["status"] == "0" # ATT框架启用状态,为其他值 def test_att_status2(): data[0]['device_info']['att_status'] = "aaa" response = send_request() assert response["status"] == "122" # ATT框架启用状态,为空 def test_att_status3(): data[0]['device_info']['att_status'] = "" response = send_request() assert response["status"] == "0" # LAT启用状态,固定值 def test_lat_status1(): lis = ['enable', 'disable', 'unknown'] for astatus in lis: data[0]['device_info']['lat_status'] = astatus response = send_request() assert response["status"] == "0" # LAT启用状态,其他值 def test_lat_status2(): data[0]['device_info']['lat_status'] = "aaa" response = send_request() assert response["status"] == "123" # LAT启用状态,空 def test_lat_status3(): data[0]['device_info']['lat_status'] = "" response = send_request() assert response["status"] == "0" # idfa为空,idfa_md5不为空 def test_idfa1(): data[0]['device_info']['idfa'] = '' response = send_request() assert response["status"] == "0" # idfa超长 def test_idfa2(): data[0]['device_info']['idfa'] = chaochang response = send_request() assert response["status"] == "124" # idfa为空,idfa_md5也为空 def test_idfa3(): data[0]['device_info']['idfa'] = '' data[0]['device_info']['idfa_md5'] = '' response = send_request() assert response["status"] == "124" # idfa不为空,idfa_md5为空 def test_idfa_md51(): data[0]['device_info']['idfa_md5'] = '' response = send_request() assert response["status"] == "0" # idfa_md5超长 def test_idfa_md52(): data[0]['device_info']['idfa_md5'] = chaochang response = send_request() assert response["status"] == "124" # device_id与device_id_type不一致 def test_device_id(): data[0]['device_info']['device_id_type'] = "idfa" data[0]['device_info']['device_id'] = "c3381276ae145b3663c8e0f6dd9f628a" data[0]['device_info']['idfa_md5'] = "c3381276ae145b3663c8e0f6dd9f628a" response = send_request() assert response["status"] == "0" # idfv为空,idfv_md5不为空 def test_idfv1(): data[0]['device_info']['idfv'] = '' response = send_request() assert response["status"] == "0" # idfv超长 def test_idfv2(): data[0]['device_info']['idfv'] = chaochang response = send_request() assert response["status"] == "125" # idfv为空,idfv_md5也为空 def test_idfv3(): data[0]['device_info']['idfv'] = '' data[0]['device_info']['idfv_md5'] = '' response = send_request() assert response["status"] == "125" # idfv不为空,idfv_md5为空 def test_idfv_md51(): data[0]['device_info']['idfv_md5'] = '' response = send_request() assert response["status"] == "0" # idfv_md5超长 def test_idfv_md52(): data[0]['device_info']['idfv_md5'] = chaochang response = send_request() assert response["status"] == "125" if __name__ == '__main__': pytest.main()