• 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

  • 相关阅读:
    线性时间选择
    ios理解 Pro Mutlithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks
    ef
    c# 采集 获取网页数据内容 一会超时的问题
    entity4.1
    逐渐约束
    entity4.1
    ObjectContext.Refresh
    使用内存表
    MVCdropdownlist
  • 原文地址:https://www.cnblogs.com/july-1016/p/14090261.html
Copyright © 2020-2023  润新知