自动化测试过程中,获得用例的执行结果后,需要有具象化、简洁明了的测试结果,比如:用例执行时间、失败用例数、失败的原因等,这时候,就需要用到测试报告。
HTML测试报告是python语言自带的单元测试框架,其扩展的HTMLTestRunner模块可用于生成易于使用的HTML测试报告。
1、HTMLTestRunner下载
下载地址:HTMLTestRunner - tungwaiyip's software
下载完成后,将下载的文件保存到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.
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行
3 import io
4 # 第539行
5 self.outputBuffer = io.StringIO()
6 # 第631行
7 print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
8 # 第642行
9 if not cls in rmap:
10 # 第766行
11 uo = o
12 # 第772行
13 ue = e
3、python文件执行与调用
①python文件的后缀为.py
②py文件既可以用来执行,就像一小段程序,也可以用来作为模块被导入
③在python中导入模块一般用import
代码如下:
1 from selenium import webdriver
2 import unittest
3 import time
4
5 class MyTest(unittest.TestCase):
6 def setUp(self):
7 self.driver = webdriver,Chrome("F:\安装工具\python\chromedriver.exe")
8 self.driver.maximize_window()
9 self.driver.implicitly.wait(10)
10 self.base_url = "http://www.baidu.com"
11
12 def test_baidu(self):
13 driver = self.driver
14 driver.get(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
21 def tearDown(self):
22 self.driver.quit()
23
24 if __name__ == "__main__":
25 unittest.main()
4、HTMLTestRunner测试报告
以上面的test_baidu.py文件为例子,生成HTMLTestRunner测试报告,代码如下:
1 from selenium import webdriver
2 import unittest
3 from HTMLTestRunner import HTMLTestRunner
4
5 class Baidu(unittest.TestCase):
6 def setUp(self):
7 self.driver = webdriver.Chrome("F:\安装工具\python\chromedriver.exe")
8 self.driver.implicitly_wait(10)
9 self.base_url = "http://www.baidu.com/"
10
11 def test_baidu_search(self):
12 driver = self.driver
13 driver.get(self.base_url)
14 driver.find_element_by_id("kw").send_key("HTMLTestRunner")
15 driver.find_element_by_id("su").click()
16
17 def tearDown(self):
18 self.driver.quit()
19
20
21 if __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框架,后续会慢慢介绍。。。
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。未来的你肯定会感谢现在拼命的自己!
文章来源:https://www.toymoban.com/news/detail-433428.html
文章来源地址https://www.toymoban.com/news/detail-433428.html
到了这里,关于Selenium:HTML测试报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!