Excel文件的读取和写入

作者: 钟微 | 来源:发表于2019-07-08 17:57 被阅读251次

    知识点:
    1、引入本地.py 文件
    2、读取本地Excel文件
    3、将测试结果写入Excel文件
    前言:在学习接口自动化测试的过程中,我发现公司的很多接口除了传入的参数不一样,很多代码都是一样的,为此我先想到的是写公用的方法,但公用方法public写好后,我发现还是有很多重复代码,比如,import引入的模块和assert断言等,于是我就想能不能用一个Excel装需要传递的参数,然后一个Excel用来接收接口执行的结果,于是就有了这篇博客

    # 这个文章是写的公用方法,很多接口的测试除了参数不一样其他的都是一样的
    import requests
    import unittest
    # 导入本地login_in.py和public.py文件
    # login_in.py文件在D:/leawod/web_api/login-controller/
    import sys
    sys.path.append("D:/leawod/web_api/login-controller/")
    import login_in
    sys.path.append("D:/leawod/web_api/common/")
    import public
    # xlre是读取本地Excel模块,xlwt是写入Excel模块
    import xlrd
    import xlwt
    import openpyxl
    from openpyxl import load_workbook
    # 打开Excel文件web-parameter.xlsx
    data = xlrd.open_workbook("web-parameter.xlsx")
    # 通过名称获取
    table = data.sheet_by_name(u'Sheet1')
    # 获取Excel行数
    nrows = table.nrows
    # print(nrows)
    for i in range(1, nrows):
        # 输出第i行的值
        result = table.row_values(i)
        # print(result)
        # result[0]输出行的第一个列
        interface = result[0]
        #eval()方法,可将字典格式的字符串与字典互换
        body1 = eval(result[1])
        # public.public_fun:是public.py文件下的public_fun函数
        # public.ip:是public.py文件下的ip变量
        result = public.public_fun(body1, public.ip, interface)
    
        if '成功' in result:
            print("接口: "+interface+" 测试成功")
        else:
            print("接口: " + interface + " 测试失败")
            # print("失败原因:" + result)
    
            # 如果报错将报错的接口和原因写入已存在的xlsx文件
            wb = load_workbook("worry.xlsx")  # 生成一个已存在的wookbook对象
            wb1 = wb.active  # 激活sheet
            # 打开Excel文件worry.xlsx
            w_data = xlrd.open_workbook("worry.xlsx")
            # 通过名称获取
            w_table = w_data.sheet_by_name(u'Sheet1')
            # 获取Excel行数
            w_nrows = w_table.nrows
            # print(w_nrows)
            wb1.cell(w_nrows + 1, 1, interface)
            wb1.cell(w_nrows + 1, 2, result)
            w_nrows = w_nrows + 1
            wb.save("worry.xlsx") #保存
    
    

    运行结果:

    接口: /college/queryPageList 测试成功
    接口: /role/queryPageList 测试成功
    接口: /knowCategory/queryPageList 测试成功
    接口: /knowCategory/queryPageList2 测试失败
    接口: /knowCategory/queryPageList3 测试失败
    

    Excel接口文档


    image.png

    报错接口输出文档


    image.png

    注意:
    1、在执行.py文件时需要把用于接收报错接口的Excel文件worry.xlsx关闭,不然要报错


    image.png

    2、在写else分支,将报错原因输出至worry文件时,我定义的局部变量和全局变量data、table重名了,也导致了报错,这个在后面的学习中还是要注意

    相关文章

      网友评论

        本文标题:Excel文件的读取和写入

        本文链接:https://www.haomeiwen.com/subject/eyxahctx.html