框架格式
test_data.xlsx表格数据:
下面是excel_read.py
from openpyxl import load_workbook
class ReadExcel():
def __init__(self,excel_path,sheetName):
self.wb = load_workbook(excel_path)
self.sheet = self.wb[sheetName] #wb[]中跟sheet表单名称
'''以下适合只有一列的情况'''
def getDataFromSheet(self):
datalist = []
for line in self.sheet:
datalist.append(line[0].value)
# datalist.pop(0) '''切割'''
return datalist
'''尝试改为表格的多行输出'''
def getDataFromSheet_more(self):
datalist = []
for line in self.sheet:
tmp_list = []
tmp_list.append(line[0].value) #读取第一个数据
tmp_list.append(line[1].value) #追加第二个数据
tmp_list.append(line[2].value) #追加第三个数据
datalist.append(tmp_list)
return datalist
if __name__ =='__main__':
excel_path = './../data_manage/test_data.xlsx'
sheetName= 'product1'
pe = ReadExcel(excel_path,sheetName)
# pe.getDataFromSheet()
print(pe.getDataFromSheet())
print(pe.getDataFromSheet_more())
以上代码单独运行时输出如下:
以下test_2classfy.py代码:
import unittest,ddt
from time import sleep
from selenium import webdriver
from utils.excel_read import ReadExcel
'''基础的通用框架,调用excel表的全部'''
excelPath = './../data_manage/test_data.xlsx'
sheetName = 'product1'
excel = ReadExcel(excelPath,sheetName)
@ddt.ddt
class Test_2Classfy(unittest.TestCase):
# @classmethod
# def setUpClass(self):
# self.driver=webdriver.Chrome()
# @classmethod
# def tearDownClass(self):
# self.driver.quit()
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://121.5.160****")
self.driver.maximize_window()
sleep(4)
def tearDown(self):
self.driver.close()
@ddt.data( * excel.getDataFromSheet_more())
def test_login2(self,data):
self.driver.find_element_by_xpath("//input[@placeholder='请输入用户名']").send_keys(data[0])
self.driver.find_element_by_xpath("//input[@placeholder='请输入密码']").send_keys(data[1])
sleep(1)
self.driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[2]/div/input').click()
sleep(3)
self.assertIn(data[2], self.driver.page_source)
if __name__=='__main__':
unittest.main()
注意读取一行数据时,可以用data[0]/data[1]...等进行取值



