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...')
原文地址:https://www.cnblogs.com/xuewei95/p/15133206.html