pytest需要掌握的:
命令行
參數化
fixture=conftest.py
pytest.ini
安裝allure
一、數據驅動,整合unittest
1、新建一個表格,,
2、另存為桌面 ,選擇格式:csv,保存到桌面
3、把文件放在data下:
4、導入csv方法讀取文件
(1)用列表方式讀取:
import csv from utils.pathUtils import filePath def readCsvList(): """列表的方式讀取csv文件""" with open(filePath(fileName='data.csv'),encoding='utf-8') as f: reader=csv.reader(f) lists=[] #不讀取第一行內容 next(reader) for item in reader: lists.append(item) return lists print(readCsvList())
執行以上代碼,,結果為:
執行測試用例
import time as t from page.sina import Sina from page.init import InitSina # from utils.joinUtils import readJson from utils.csvUtils import readCsvList import unittest class QQTest(InitSina,Sina): def test_sina_login_001(self): """登陸用戶名和密碼為空驗證""" self.login(username=readCsvList()[0][0],password=readCsvList()[0][1]) self.clickLogin self.assertEqual(self.getDivText,readCsvList()[0][2]) def test_sina_login_002(self): """登陸,驗證郵箱格式不正確""" self.login(username=readCsvList()[1][0],password=readCsvList()[1][1]) self.assertEqual(self.getDivText,readCsvList()[1][2]) def test_sina_login_003(self): """登陸,驗證用戶名和密碼錯誤""" self.login(username=readCsvList()[2][0], password=readCsvList()[2][1]) self.clickLogin self.assertEqual(self.getDivText,readCsvList()[2][2])
執行以上代碼結果為:
(2)字典方式讀取csv的文件內容
def readCsvDict(): """字典方式讀取csv的文件內容""" with open(filePath(fileName='data.csv'),encoding='utf-8') as f: lists=[] reader=csv.DictReader(f) for item in reader: lists.append(dict(item)) return lists # print(readCsvDict()) # # print(readCsvDict()[0]['期望結果']) # print(readCsvDict()[1]['期望結果'])
執行測試用例:
from page.sina import Sina from page.init import InitSina from utils.csvUtils import readCsvDict import unittest class QQTest(InitSina,Sina): def test_sina_login_001(self): """登陸用戶名和密碼為空驗證""" self.login(username=readCsvDict()[0]['\ufeffusername'],password=readCsvDict()[0]['password']) self.assertEqual(self.getDivText,readCsvDict()[0]['期望結果']) def test_sina_login_002(self): """登陸,驗證郵箱格式不正確""" self.login(username=readCsvDict()[1]['\ufeffusername'],password=readCsvDict()[1]['password']) self.clickLogin self.assertEqual(self.getDivText,readCsvDict()[1]['期望結果']) def test_sina_login_003(self): """登陸,驗證用戶名和密碼錯誤""" self.login(username=readCsvDict()[2]['\ufeffusername'],password=readCsvDict()[2]['password']) self.clickLogin self.assertEqual(self.getDivText,readCsvDict()[2]['期望結果'])
執行以上代碼,結果為:
(3)讀取excel文件內容
import xlrd from utils.pathUtils import filePath def readExcel(): """讀取excel的文件""" lists=[] book=xlrd.open_workbook(filePath(fileName='data.xlsx')) sheet=book.sheet_by_index(0) for item in range(1,sheet.nrows): lists.append(sheet.row_values(item)) return lists print(readExcel())
執行測試用例
import time as t from page.sina import Sina from page.init import InitSina from utils.excelUtils import readExcel import unittest class QQTest(InitSina,Sina): def test_sina_login_001(self): """登陸用戶名和密碼為空驗證""" self.login(username=readExcel()[0][0],password=readExcel()[0][1]) self.clickLogin self.assertEqual(self.getDivText,readExcel()[0][2]) def test_sina_login_002(self): """登陸,驗證郵箱格式不正確""" self.login(username=readExcel()[1][0],password=readExcel()[1][1]) self.assertEqual(self.getDivText,readExcel()[1][2]) def test_sina_login_003(self): """登陸,驗證用戶名和密碼錯誤""" self.login(username=readExcel()[2][0], password=readExcel()[2][1]) self.clickLogin self.assertEqual(self.getDivText,readExcel()[2][2])
執行以上代碼為: