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)   # 暫時還沒有搞懂
'''

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM