1 # -*- coding: utf-8 -*- 2 import unittest 3 import time 4 from selenium import webdriver 5 import xlrd,xlwt 6 import HTMLTestRunner 7 from openpyxl import load_workbook 8 class mylogintest(unittest.TestCase):#定义一个mylogintest类继承unittest.TestCase类 9 '''打开百度测试''' 10 # @classmethod 11 # def tearDownClass(cls):#用例执行后的初始化工作 12 # print('结束测试') 13 14 def setUp(self):#用例执行前的初始化工作 15 print("开始测试") 16 self.driver = webdriver.Firefox() 17 18 def tearDown(self):#用例执行后的初始化工作 19 print("结束测试") 20 self.driver.quit() 21 22 def testopenBD(self): 23 '''打开百度''' 24 book = xlrd.open_workbook("mylogintest.xlsx") # 新建文件对象 25 sheet = book.sheet_by_name("Sheet1") # 获取文件对象中sheet名为login的sheet对象 26 # # # url1 = sheet.cell(1, 0).value 获取第2行第1列的值 27 # # # url2 = sheet.cell(1, 1).value获取第2行第2列的值 28 nrows = sheet.nrows # 获取总行数 29 urllist = [] 30 for i in range(1, nrows): 31 print(i) 32 nrowsvalue = sheet.row_values(i, 0)#获取第i+1行 第1列的值 33 urllist.append(nrowsvalue) # 这里添加元素不能用list = list.append(nrowsvalue);否则会出现nonetype的错误; 34 print(urllist) 35 driver = self.driver 36 for i in range(len(urllist)): # 获取list长度;range表示默认0开始的整数迭代 37 print(urllist[i]) 38 driver.get(''.join(urllist[i]))#将list类型转换成字符串类型 39 print(driver.title) 40 self.assertEqual(driver.title,'百度一下,你就知道','失败')#添加断言;当driver.title的值为‘百度一下,你就知道’时,断言通过,否则不通过,程序将会终断 41 time.sleep(3) 42 43 # @classmethod 44 # def setUpClass(cls):##用例执行前的初始化工作 45 # print('开始测试') 46 47 if __name__=='__main__': 48 filename = './'+'mylogintestresult.html'#定义文件名与路径 49 fp = open(filename,'wb')#生成文件 50 ut = unittest.TestSuite() # 创建测试套件;TestSuite不加括号的结果:addTest() missing 1 required positional argument: 'test' 51 ut.addTest(mylogintest('testopenBD'))#将要执行的用例加入测试套件中 52 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='分别打开百度51网站',description='百度51') #如果引用的是from HTMLTestRunner import HTMLTestRunner,这里就不需要写两个HTMLTestRunner,一个就够了 53 runner.run(ut)#运行测试套件 54 fp.close()
EXCEL表格内容为:
生成的测试报告如下: