python之測試結果寫回excel005
阿新 • • 發佈:2020-12-05
接004隨筆,已經從excel獲取測試資料並且成功執行測試用例的前提下,我們如何將測試結果寫回excel指定列呢?
思路:1. 在do_excel類中專門寫一個write_back()函式 2.在主程式中呼叫該方法
from openpyxl import load_workbook class DoExcel: def get_data(self,file_name,sheet_name): ...... #寫回測試結果的靜態方法:result為測試結果 @staticmethod def write_back(file_name,sheet_name,row,result):#依次傳入引數:檔名、sheet頁名稱、行數、測試結果 wb= load_workbook(file_name) sheet = wb[sheet_name] sheet.cell(row,10).value = result #儲存測試結果到指定列row wb.save(file_name)#必須儲存檔案
主程式呼叫寫回方法:
from tools.http_request import HttpRequest from tools.do_excel import DoExcel #引用DoExcel模組 def run(test_data):#傳入列表巢狀字典的資料格式 for item intest_data:#迴圈執行用例 print("正在測試的用例標題:{0}".format(item["title"])) res = HttpRequest().http_request(item["method"], item["url"],eval(item["header"]), item["data"]) print("測試結果是:{0}".format(res.json())) DoExcel().write_back("\\test_data\\test_case.xlsx","login_case",item["case_id"]+1,str(res.json()))#row與case_id相差1 if __name__ == '__main__': test_data = DoExcel().get_data("\\test_data\\test_case.xlsx","login_case") run(test_data)
注意:
1.寫回excel的測試結果必須強轉為str,否則會報錯:raise ValueError("Cannot convert {0!r} to Excel".format(value))
2.執行寫回時,必須將excel檔案關閉,否則會報錯:PermissionError: [Errno 13] Permission denied