zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    关于三次握手与四次挥手你要知道这些
    seafile看不见repo报500错误的解决方法
    VMWare Workstation 配置docker多macvlan网络方法
    利用Python3的dpkt库进行ARP扫描
    关于LAMP配置Let’s Encrypt SSL证书
    OpenSSL生成CA证书及终端用户证书
    CentOS7.2安装Vim8和YouCompleteMe
    CentOS 7.2安装Jenkins自动构建Git项目
    CentOS 7.2 安装Gerrit 2.14.6
    CentOS7.2编译GCC7.3
  • 原文地址:https://www.cnblogs.com/july-1016/p/14090261.html
Copyright © 2011-2022 走看看