#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/12/26 11:05 # @File : unittest_test8_2.py #通过CSV获取数据 import csv,unittest from ddt import ddt,data,unpack from selenium import webdriver def get_data(file_name): #创建一个空的列表用来存储行数据 rows = [] data_file = open(file_name,'r') #读取文件并返回csv文件中每行的列表,将每行读取的值作为列表返回 reader = csv.reader(data_file) #跳过标题 next(reader,None) #把每行数据添加到列表中 for row in reader: rows.append(row) return rows @ddt class SearchCsvDDT(unittest.TestCase): #初始化浏览器和url def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.driver.maximize_window() self.driver.get("https://www.baidu.com/?tn=78000241_12_hao_pg") #创建一个测试用例 @data(*get_data("C:\testdata.csv")) @unpack def test_search(self,search_value,expected_count): #参数值和期望结果 self.search_file = self.driver.find_element_by_name('wd') self.search_file.clear() self.search_file.send_keys(search_value) self.search_file.submit() product = self.driver.find_element_by_xpath('//*[@id="1"]/h3/a') p = [product,] self.assertEqual(expected_count,len(p)) #清理所有的 初始化值 def tearDown(self): self.driver.quit() #运行测试,传递verbosity参数,以便使详细的测试总量显示在控制台 if __name__=='__main__': unittest.main(verbosity=2)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/12/26 16:56 # @File : unittest_test8_3.py #通过Excel获取数据 import xlrd,unittest from ddt import ddt,data,unpack from selenium import webdriver def get_data(file_name): #创建一个空的列表用来存储行数据 rows = [] book = xlrd.open_workbook(file_name) #读取文件并返回csv文件中每行的列表,将每行读取的值作为列表返回 sheet = book.sheet_by_index(0) #把每行数据添加到列表中 for row_idx in range(1,sheet.nrows): rows.append(list(sheet.row_values(row_idx,0,sheet.ncols))) return rows @ddt class SearchCsvDDT(unittest.TestCase): #初始化浏览器和url def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.driver.maximize_window() self.driver.get("https://www.baidu.com/?tn=78000241_12_hao_pg") #创建一个测试用例 @data(*get_data("TestData.xlsx")) @unpack def test_search(self,search_value,expected_count): #参数值和期望结果 self.search_file = self.driver.find_element_by_name('wd') self.search_file.clear() self.search_file.send_keys(search_value) self.search_file.submit() product = self.driver.find_element_by_xpath('//*[@id="1"]/h3/a') p = [product,] self.assertEqual(expected_count,len(p)) #清理所有的 初始化值 def tearDown(self): self.driver.quit() #运行测试,传递verbosity参数,以便使详细的测试总量显示在控制台 if __name__=='__main__': unittest.main(verbosity=2)