# -*- coding: UTF-8 -*- import requests """ Http 工具类封装 """ class RequestUtil: def __init__(self): pass def request(self, url, method, headers=None, param=None, content_type=None): """ 通用请求工具类 :param url: :param method: :param heasers: :param param: :param content_type: :return: """ try: if method == "get": result = requests.get(url=url, params=param, headers=headers).json() return result elif method == "post": if content_type == "application/json": result = requests.post(url=url, json=param, headers=headers).json() return result else: result = requests.post(url=url, data=param, headers=headers).content return result except Exception as e: print("http请求报错{0}".format(e)) if __name__ == '__main__': r = RequestUtil() # url = "https://i.cnblogs.com/api/user" # headers = {"cookie":"__gads=ID=d19a3f1f03f32f53:T=1681988164:S=ALNI_MZYgZ1D0JmOpNwg-M2V-0aD8SS9wQ; SyntaxHighlighter=python; __gpi=UID=00000544d3fc84c0:T=1652274704:RT=1683370435:S=ALNI_Ma-LkdkFEThw4kklsGymaxW1nuN0A; .AspNetCore.Antiforgery.b8-pDmTq1XM=CfDJ8M-opqJn5c1MsCC_BxLIULlv2AWo3YOcVEnIKuvUMpuDjx5vj6aeAfXOgWPYudXU0fqMFSzgwlv5iU-RhWiRfdZLQpTNGg3TKU-BUko1mmSIRaSvkPJbljx-eFeWvMNfYmYwkF__rs-Z2wCdRNp3EPM; .Cnblogs.AspNetCore.Cookies=CfDJ8M-opqJn5c1MsCC_BxLIULm6CqIacq3472P0NGh2WEOEkVKukxaYDYqJVQ4mAClRmbAx7L6OQNaX-1d4rtSqyy9AN1-QImCX8qOq99upCI3tDAHR1O802ev8_JiPwzYLJ-0zLHWS089CzPGCpAoM5GAgTY6uGETefsSuziMCiASMpjiE-fUs8y3oBSog6FP14_aPEYU-idf3FFmM8A1hnc8uiO7i4RDLinFON9tgh7k0kMqImNhCTWPLBswa2O924e3_u1-9QCJMXj36VAANJL8qWheiQhXOsu2yhJ8Kux0slKqutLi1Qg_src_Qi1P1umRsQk_Vwo_sRILoAfVe1kAsIh5FTLXovt4YPjfGCviJPHPiiuJvzbn3B75x901M58bo6veP7lYpt6deSo4yhHX3lW3Qo3J6_0A1si5S99tQfGL-_hGH3Q07punjz3VIAlDIqJA9tQ9h0BvvXrgo0S-dIsG5yrfedIxOn3tZuJTzFYN8uR0s7Zf99sSAuxap4xvSS1NO6442yCN7lGTsni6vf9iVarJFvQjt0mOVymrAVKf109E7aSoajEzAH1BrhIQ3ItChHgKwcCRTw-Jd8pcawQ-ZC7FZa8j6e-EuLHca; .CNBlogsCookie=821A4F3E266A7841F55775B4A984EA8A357755E45E33B90D6EFA49EBF865704FC92D154D76725AEF07827DDC92B8CA12E1098EE01AFD36A2EF069D493786766B36F9636E90D4A11A8046E85B711E383D433F0A0F; _ga_3Q0DVSGN10=GS1.1.1683959055.10.1.1683959059.56.0.0; Hm_lvt_866c9be12d4a814454792b1fd0fed295=1683288176,1683367897,1683377706,1683959097; Hm_lpvt_866c9be12d4a814454792b1fd0fed295=1683959097; _ga=GA1.2.420515007.1646791376; _gid=GA1.2.938394120.1683959097; _gat_gtag_UA_476124_1=1; XSRF-TOKEN=CfDJ8M-opqJn5c1MsCC_BxLIULlYxWD92UJKXZzzZeXs3ONEmkJAN--1C66J5S7_BJBRewiHE9DAj-oRnuALgV4Q-SsKDpRIQQOVtfUb82B-j2BSccE5EoQB40hPomPGPMJEAK3_F4ixG-GKm9se0rXuUpQVTv9Y-UZe7RJwbhh8K4EG2s5r7Ar0gTHlr-SjwxA8uw; _ga_C2LFP3RFGH=GS1.1.1683957983.19.1.1683959100.0.0.0"} # result = r.request(url,"get",headers) # print(result) url = "https://api-v2.xdclass.net/api/order/v1/page" headers = { "token": "dcloud-clienteyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ4ZGNsYXNzIiwiaGVhZF9pbWciOiJodHRwczovL3RoaXJkd3gucWxvZ28uY24vbW1vcGVuL3ZpXzMyL1EwajRUd0dUZlRLcjNua3Q1YTdKR21SNERWdzkxQ0cwUDRMQzBpYmttQTl6a09WUldhS2h3eGFZOHRFa0hQSHAzeUpuaWJqdVdkVFhRc3kyZUN2NzdIOEEvMTMyIiwiYWNjb3VudF9pZCI6NjgwODMzNCwidXNlcm5hbWUiOiJNcnN-44COQXBwbGXjgI8iLCJyb2xlIjoiQ09NTU9OIiwibWVkYWwiOiIiLCJpYXQiOjE2ODQxNDY4NzMsImV4cCI6MTY4NDc1MTY3M30.w4EEMU8c0wMrhkjnIc9r0LR8ReCuYTZ2GTdF9VGDN-U"} content_type = "application/json" data = {"page": "1", "size": "5"} result = r.request(url, "post", param=data, headers=headers,content_type=content_type) print(result) # url = "https://aegis.qq.com/collect?id=QVPbQSJEKeD8GaVVXj&uin=&version=1.36.16&aid=cb8632b4-139a-461f-bf37-6c7b14f2a535&env=production&platform=3&netType=4&vp=1536%20*%20214&sr=1536%20*%20864&sessionId=session-1683973150868&from=https%3A%2F%2Fke.qq.com%2F&referer=https%3A%2F%2Fke.qq.com%2F&ext1=prod&ext3=%7B%7D" # headers = {"content_type": "application/x-www-form-urlencoded"} # result = r.request(url, "post", headers=headers) # print(result) # url = "https://api-v2.xdclass.net/api/account/v1/login" # content_type = "application/json" # data = {"identifier": "13113777555", "credential": "1234567890"} # result = r.request(url, "post", param=data, content_type=content_type) # print(result)
# -*- coding: UTF-8 -*- import unittest import requests from util.RequestUtil import RequestUtil host = "https://i.cnblogs.com" class IndexTestCase(unittest.TestCase): def testIndexCategoryList(self): """ 首页分类列表 """ request = RequestUtil() url = host + "/ngsw.json?ngsw-cache-bust=0.7913836232857812" data = {"ngsw-cache-bust": 0.7913836232857812} response = request.request(url, "get", param=data) self.assertEqual(response["configVersion"], 1, "首页分类列表业务状态码异常") print("1") def testLogin(self): request = RequestUtil() url = "https://api-v2.xdclass.net/api/account/v1/login" data = {"identifier": "13113777555", "credential": "1234567890"} content_type = "application/json" response = request.request(url, "post", param=data, content_type=content_type) self.assertEqual(response["code"], 0, "登录接口业务状态码异常") self.assertTrue(len(response["data"]) > 0, "返回data为空") print("2") print(response) if __name__ == "__main__": unittest.main()
# -*- coding: UTF-8 -*- import unittest import requests from util.RequestUtil import RequestUtil host = "https://aegis.qq.com" class PostTestCase(unittest.TestCase): def testPost(self): request = RequestUtil() url = host + "/collect?id=QVPbQSJEKeD8GaVVXj&uin=&version=1.36.16&aid=cb8632b4-139a-461f-bf37-6c7b14f2a535&env=production&platform=3&netType=4&vp=1536%20*%20214&sr=1536%20*%20864&sessionId=session-1683973150868&from=https%3A%2F%2Fke.qq.com%2F&referer=https%3A%2F%2Fke.qq.com%2F&ext1=prod&ext3=%7B%7D" headers = {"content_type": "application/x-www-form-urlencoded"} response = request.request(url, "post", headers=headers) self.assertTrue(len(str(response))>0, "首页分类列表业务状态码异常") print(response) print(len(str(response))) if __name__ == "__main__": unittest.main()
# -*- coding: UTF-8 -*- import unittest import os def load_all_test(): """ 加载全部测试用例 :return: """ # 用例路径 # case_path = "D:/xdclassProject/xd_api_test/case" case_path = os.path.join(os.getcwd(), "../case") print(case_path) print(os.getcwd()) discover = unittest.defaultTestLoader.discover(case_path, pattern="*Case.py", top_level_dir=None) return discover if __name__ == "__main__": runner = unittest.TextTestRunner(verbosity=2) runner.run(load_all_test())