Selenium:HTML测试报告
⾃动化测试过程中,获得⽤例的执⾏结果后,需要有具象化、简洁明了的测试结果,⽐如:⽤例执⾏时间、失败⽤例数、失败的原因等,这时候,就需要⽤到测试报告。HTML测试报告是python语⾔⾃带的单元测试框架,其扩展的HTMLTestRunner模块可⽤于⽣成易于使⽤的HTML测试报告。
1、HTMLTestRunner下载
下载地址:
下载完成后,将下载的⽂件保存到C盘的\Python35\Lib⽬录下(可以通过如下命令获取python安装⽬录):
①进⼊cmd命令⾏
②输⼊python
③输⼊import sys
④输⼊print(sys.path)
1 C:\Users\dell>python
2 Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
3 Type "help", "copyright", "credits"or"license"for more information.html如何下载
4 >>> import sys
5 >>> print(sys.path)
6 ['', 'C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python35\\python35.zip', 'C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python35\\DLLs',
'C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python35\\lib', 'C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python35', 'C:\\Users\\dell\\
AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages']
2、修改HTMLTestRunner⽂件
因为HTMLTestRunner是基于python2开发的,为了使其⽀持python3的环境,需要对其中的部分内容进⾏修改,修改后的内容如下:
1# HTMLTestRunner修改内容
2# 第94⾏
3import io
4# 第539⾏
5 self.outputBuffer = io.StringIO()
6# 第631⾏
7print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
8# 第642⾏
9if not cls in rmap:
10# 第766⾏
11 uo = o
12# 第772⾏
13 ue = e
3、python⽂件执⾏与调⽤
①python⽂件的后缀为.py
②py⽂件既可以⽤来执⾏,就像⼀⼩段程序,也可以⽤来作为模块被导⼊
③在python中导⼊模块⼀般⽤import
代码如下:
1from selenium import webdriver
2import unittest
3import time
4
5class MyTest(unittest.TestCase):
6def setUp(self):
7 self.driver = webdriver,Chrome("F:\安装⼯具\")
8 self.driver.maximize_window()
9 self.driver.implicitly.wait(10)
10 self.base_url = "www.baidu"
11
12def test_baidu(self):
13 driver = self.driver
14 (self.base_url + "/")
15 driver.find_element_by_id("kw").clear()
16 driver.find_element_by_id("kw").send_key("unittest")
17 driver.find_element_by_id("su").click()
18 time.sleep(2)
19 title = assertEqual(title,"unittest_百度搜索")
20
21def tearDown(self):
22 self.driver.quit()
23
24if__name__ == "__main__":
25 unittest.main()
4、HTMLTestRunner测试报告
以上⾯的test_baidu.py⽂件为例⼦,⽣成HTMLTestRunner测试报告,代码如下:
1from selenium import webdriver
2import unittest
3from HTMLTestRunner import HTMLTestRunner
4
5class Baidu(unittest.TestCase):
6def setUp(self):
7 self.driver = webdriver.Chrome("F:\安装⼯具\")
8 self.driver.implicitly_wait(10)
9 self.base_url = "www.baidu/"
10
11def test_baidu_search(self):
12 driver = self.driver
13 (self.base_url)
14 driver.find_element_by_id("kw").send_key("HTMLTestRunner")
15 driver.find_element_by_id("su").click()
16
17def tearDown(self):
18 self.driver.quit()
19
20
21if__name__ == "__main__":
22 baidu = Baidu("test_baidu_search")
23 testunit = unittest.TestSuite()
24 testunit.addTest(baidu)
25
26# 定义报告存放路径
27 fp = open('./result.html', 'wb')
28# 定义测试报告
29 runner = HTMLTestRunner(stream=fp,
30 title='百度搜索测试报告',
31 description= '⽤例执⾏情况:')
32 runner.run(testunit) #运⾏测试⽤例
33 fp.close() #关闭报告⽂件
代码简析:
①将HTMLTestRunner模块⽤import导⼊
②通过open()⽅法以⼆进制写模式打开当前⽬录下的result.html,如果没有则⾃动创建该⽂件
③调⽤HTMLTestRunner模块下的HTMLTestRunner类,stream指定测试报告⽂件,title⽤于定义测试报告的标题,description⽤于定义测试报告的副标题
④通过HTMLTestRunner的run⽅法运⾏测试套件中所组装的测试⽤例,最后通过close()关闭测试报告⽂件
以上为⽅便展⽰写的例⼦,没有太多实际意义,具体的还是需要在⼯作中使⽤实践,关于unittest框架,后续会慢慢介绍。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论