1. 程式人生 > 實用技巧 >python之測試結果寫回excel005

python之測試結果寫回excel005

接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 in
test_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