zoukankan      html  css  js  c++  java
  • Pytest中参数化之Excel文件实战

    login.xls文件

     read_excel.py文件

    '''
    import xlrd
    
    def read_excel():
        l1 = []
        data = xlrd.open_workbook('login.xls') # 打开login.xls文件,获得句柄
        sheet = data.sheet_by_index(0) # 获取第一个工作表(就是excel底部的sheet)
        for item in range(1, sheet.nrows): # nrows,返回该工作表有效行数
            # print(sheet.row_values(item)) # row_values(num)读取num行整行数据,返回的是列表类型
            l1.append(sheet.row_values(item))
        return l1
    # print(read_excel())
    '''

    test_excel_login.py文件

    '''
    import pytest
    import requests
    import json
    from pytest_study.read_excel import *
    
    @pytest.mark.parametrize(
        'data',
        read_excel()
    )
    def test_excel_login_001(data):
        r = requests.post(url=data[0], data=json.loads(data[1]))
        assert r.json()['code']==json.loads(data[2])['code']
    
    if __name__ == '__main__':
        pytest.main(['-v', '-s', 'test_excel_login.py'])
    '''

    xlrd模块学习

    1 打开Excel文件

    '''
    data = xlrd.open_workbook('login.xls') # 犹如获得一个句柄
    '''

    2 工作表sheet的操作

    '''
    table = data.sheets()[0]          #通过索引顺序获取
    
    table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
    
    table = data.sheet_by_name(sheet_name)#通过名称获取
    
    以上三个函数都会返回一个xlrd.sheet.Sheet()对象
    
    names = data.sheet_names()    #返回book中所有工作表的名字
    
    data.sheet_loaded(sheet_name or indx)   # 检查某个sheet是否导入完毕
    '''

    3 行的操作

    '''
    nrows = table.nrows  #获取该sheet中的有效行数
    
    table.row(rowx)  #返回由该行中所有的单元格对象组成的列表
    
    table.row_slice(rowx)  #返回由该列中所有的单元格对象组成的列表
    
    table.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表
    
    table.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表
    
    table.row_len(rowx) #返回该列的有效单元格长度
    '''

    4 列的操作

    '''ncols = table.ncols   #获取列表的有效列数
    
    table.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
    
    table.col_slice(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
    
    table.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表
    
    table.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表
    '''

    5 单元格的操作

    '''
    table.cell(rowx,colx)   #返回单元格对象
    
    table.cell_type(rowx,colx)    #返回单元格中的数据类型
    
    table.cell_value(rowx,colx)   #返回单元格中的数据
    
    table.cell_xf_index(rowx, colx)   # 暂时还没有搞懂
    '''
    while True: print('studying...')
  • 相关阅读:
    判断ip是内网还是外网, 判断请求来之pc还是mobile
    CentOS6.5(Kernel2.6) Compile PHP5.6
    java设计模式笔记
    Java定时quartz(spring)
    Transforming beans, maps, collections, java arrays and XML to JSON
    java socket通讯交互
    第一个WebService CXF的搭建
    java技术成长之路
    struts2中文乱码
    sql server分页(摘)
  • 原文地址:https://www.cnblogs.com/xuewei95/p/15133206.html
Copyright © 2011-2022 走看看