python+selenium,用xlrd,读取excel数据,执行测试用例

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

生成的报告:

猜你喜欢

转载自www.cnblogs.com/lelexiong/p/8990112.html