In get_data defined by taking all the examples and embodiment modes take part with
# 1. http_request.py import requests class HttpRequest: def http_request(self, url, method, data=None, cookie=None): try: if method.upper() == "GET": res = requests.get(url, data, cookies=cookie) elif method.upper() == "POST": res = requests.post(url, data, cookies=cookie) else: print("请输入正确的参数") The except Exception AS E: Print ( " request being given: {} " .format (E)) The raise E return RES
# 2. get_data6.py from openpyxl import load_workbook class DoExcel: def __init__(self, file, sheet): self.file = file self.sheet = sheet def get_data(self, mode="all"): wb = load_workbook(self.file) sheet = wb[self.sheet] case_data = [] for i in range(2, sheet.max_row+1): sub_data = {} sub_data["case_id"] = sheet.cell(i, 1).value sub_data["url"] = sheet.cell(i, 2).value sub_data["method"] = sheet.cell(i, 3).value sub_data["data"] = eval(sheet.cell(i, 4).value) sub_data["expected"] = sheet.cell(i, 5).value case_data.append(sub_data) if mode == "all": final_data = case_data the else : # [. 1, 2,. 5] final_data = [] for TEST_DATA in case_data: # traversing each of the test data, if the data in the incoming test id list, put this data to final_data IF TEST_DATA [ " the case_id " ] in MODE: final_data.append (TEST_DATA) return final_data IF the __name__ == " __main__ " : case_data = DoExcel ( " data_7.xlsx " , " SH2 ").get_data([1, 2, 3]) print(case_data)
# 3.test_login.py import unittest from API_AUTO.tools.http_request import HttpRequest from ddt import ddt, data, unpack from day_20191202.config_case_data.get_data6 import DoExcel # 自定义取某几条数据执行用例 test_data = DoExcel("data_7.xlsx", "sh2").get_data([1, 2, 4]) # print(test_data) @ddt class TestLogin(unittest.TestCase): def setUp(self): print("Testing ... Start " ) DEF tearDown (Self): Print ( " Case DONE. " ) @data ( * TEST_DATA) @unpack # Note that the new data table more than id, use the parameters to receive case_id DEF test_api (Self, the case_id, URL, Method, Data, expected): # Print ( "URL:", URL) # Print ( "Method", Method) # Print ( "DATA_C", Data) RES = the HttpRequest () Http_Request (URL, Method. , Data) R & lt = res.json () [ " info " ] the try : self.assertEqual(r, expected) except AssertionError as e: print("there is an error in the case {}".format(e)) raise e if __name__ == '__main__': TestLogin().test_api()
# 4. run.py import unittest from day_20191202.config_case_data.test_login import TestLogin import HTMLTestRunner suite = unittest.TestSuite() loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromTestCase(TestLogin)) with open("login6.html", "wb") as file: runner = HTMLTestRunner.HTMLTestRunner(stream=file, verbosity=2, title="登录6测试报告", description="管住心情,就是胜利") runner.run(suite) # runner = unittest.TextTestRunner(verbosity=2) # runner.run(suite)
FIG test data: