将接口请求响应结果写回excel的2种方式

1.添加case_id标识

 1 from openpyxl import load_workbook
 2 
 3 
 4 class Do_Excel:
 5     def get_data(self,file_name,sheet_name):
 6         '''
 7         读取excel中的测试数据
 8         :param file_name: 测试数据所在地址
 9         :param sheet_name: sheet名
10         :return:测试数据
11         '''
12         wb=load_workbook(file_name)
13         sheet=wb[sheet_name]
14         test_data=[]
15         sheet.max_row
16         for i in range(2,sheet.max_row+1):
17             row_data = {}
18             row_data["case_id"] = sheet.cell(i, 1).value
19             row_data["title"]=sheet.cell(i, 2).value
20             row_data["url"] = sheet.cell(i, 3).value
21             row_data["method"] = sheet.cell(i, 4).value
22             row_data["data"] = sheet.cell(i, 5).value
23             row_data["header"] = sheet.cell(i, 6).value
24             test_data.append(row_data)
25         return test_data
26 
27     def write_back(self,file_name,sheet_name,i,value):
28 
29         wb = load_workbook(file_name)
30         sheet = wb[sheet_name]
31         sheet.cell(i,7).value=value
32         wb.save(file_name)
33 
34 
35 if __name__ == "__main__":
36     print(Do_Excel().get_data(r"C:UsersUSERPycharmProjectslc_api_auto	estdata	estdata.xlsx","login"))
 1 from utils.http_request import HttpRequest
 2 from utils.do_excel import Do_Excel
 3 
 4 
 5 test_data=Do_Excel().get_data(r"C:UsersUSERPycharmProjectslc_api_auto	estdata	estdata.xlsx","login")
 6 
 7 
 8 def  run(data):
 9     for item in data:
10         print("正在测试的用例是:{0}".format(item["title"]))
11         res=HttpRequest().http_request(item["url"],eval(item["data"]),item["method"],eval(item["header"]))
12         print("请求的结果是:{0}".format(res.text))
13         Do_Excel().write_back(r"C:UsersUSERPycharmProjectslc_api_auto	estdata	estdata.xlsx","login",item["case_id"]+1,res.text)
14 
15 
16 run(test_data)

2.嵌套

 1 from utils.http_request import HttpRequest
 2 from utils.do_excel import Do_Excel
 3 
 4 
 5 test_data=Do_Excel().get_data(r"C:UsersUSERPycharmProjectslc_api_auto	estdata	estdata.xlsx","login")
 6 
 7 
 8 def  run(data):
 9     for i in range(len(test_data)):#0,1
10         print("正在测试的用例是:{0}".format(test_data[i]["title"]))
11         res=HttpRequest().http_request(test_data[i]["url"],eval(test_data[i]["data"]),test_data[i]["method"],eval(test_data[i]["header"]))
12         print("请求的结果是:{0}".format(res.text))
13         Do_Excel().write_back(r"C:UsersUSERPycharmProjectslc_api_auto	estdata	estdata.xlsx","login",i+2,res.text)
14 
15 
16 run(test_data)

附excel格式:

原文地址:https://www.cnblogs.com/heyuling/p/12526406.html