通过之前的学习,现在我们已经能够进行自动化的用例设计,用例连跑,用例断言,那么用例执行完成后,我们需要将测试结果收集起来生成测试报告,那么,废话不多说,搞起来~



【selenium-18】测试报告HTMLTestRunner_html


1​关于HtmlTestRunner【selenium-18】测试报告HTMLTestRunner_用例_02

请输入标题

【selenium-18】测试报告HTMLTestRunner_html_03



1,HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展

2,下载地址:https://pypi.python.org/pypi/HTMLTestRunner

3,将其拷贝到C:\Python27\Lib下

4,导入它,使用它



【selenium-18】测试报告HTMLTestRunner_用例_02

举个栗子

【selenium-18】测试报告HTMLTestRunner_html_03



这个栗子主要工作有:

  1. 导入HTMLTestRunner(line:10)

  2. 构造测试套(line:78)

  3. 使用HTMLTestRunner的HTMLTestRunner方法(line:after 77)



1# -*- coding: utf-8 -*-
2from selenium import webdriver
3from selenium.webdriver.common.by import By
4from selenium.webdriver.common.keys import Keys
5from selenium.webdriver.support.ui import Select
6from selenium.common.exceptions import NoSuchElementException
7from selenium.common.exceptions import NoAlertPresentException
8import unittest, re
9import time
10import HTMLTestRunner
11#要被测试的类,继承了unittest的TestCase类
12class Test01(unittest.TestCase):
13 #用例执行之前的操作,可理解为初始化
14 dr=webdriver.Chrome()
15 def setUp(self,driver=dr):
16 #打开浏览器
17 self.driver = driver
18 self.driver.implicitly_wait(30)
19 #打开百度
20 self.base_url = "https://www.baidu.com"
21 self.verificationErrors = []
22 self.accept_next_alert = True
23 def test_001_search(self):
24 #继承初始化方法中的打开浏览器操作
25 driver = self.driver
26 driver.implicitly_wait(10)
27 driver.get(self.base_url + "/")
28 driver.implicitly_wait(10)
29 driver.find_element_by_id("kw").send_keys("phyger")
30 driver.find_element_by_id("su").click()
31 time.sleep(2)
32 def test_02_quitBrowser(self):
33 driver=self.driver
34 driver.find_element_by_partial_link_text(u"李飞_phyger").click()
35 driver.implicitly_wait(10)
36 time.sleep(5)
37 driver.quit()
38 def is_element_present(self, how, what):
39 try:
40 self.driver.find_element(by=how, value=what)
41 except NoSuchElementException as e:
42 return False
43 return True
44 def is_alert_present(self):
45 try:
46 self.driver.switch_to_alert()
47 except NoAlertPresentException as e:
48 return False
49 return True
50 def close_alert_and_get_its_text(self):
51 try:
52 alert = self.driver.switch_to_alert()
53 alert_text = alert.text
54 if self.accept_next_alert:
55 alert.accept()
56 else:
57 alert.dismiss()
58 return alert_text
59 finally:
60 self.accept_next_alert = True
61 #用例执行完成后进行的操作
62 def tearDown(self):
63 #退出浏览器
64 #self.driver.quit()
65 #判断有无异常
66 self.assertEqual([], self.verificationErrors)
67#使用unittest方法执行用例时,用这个入口
68#主函数入口,执行测试用例
69# if __name__ == "__main__":
70# unittest.main()
71#当需要指定特定的用例执行时,可以用下面的方法构造特殊的测试套
72# def suite():
73# suitTest=unittest.TestSuite()
74# suitTest.addTest(Test01("test_001_search"))
75# suitTest.addTest(Test01("test_02_quitBrowser"))
76# return suitTest
77if __name__ == '__main__':
78 suite = unittest.TestLoader().loadTestsFromTestCase(Test01) #定义一个单元测试容器
79 filename = r"./result.html" #定义个报告存放路径,支持相对路径
80 f = file(filename,'wb') #结果写入HTML 文件
81 runner = HTMLTestRunner.HTMLTestRunner(stream = f,title ='Report_title',description='Report_description',verbosity = 2) #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
82 runner.run(suite)
83 f.close()


【selenium-18】测试报告HTMLTestRunner_用例_02

测试报告

【selenium-18】测试报告HTMLTestRunner_html_03




pycharm目录框生成的文件





【selenium-18】测试报告HTMLTestRunner_html_08




测试报告文件打开的效果



【selenium-18】测试报告HTMLTestRunner_html_09

总结

1、测试报告是测试工作完完成后的测试结果的集中展现。

2、自动化测试报告应当具有统一格式,能够统计处用例通过率。

3、HTMLTestRunner是一个开源的,高效的,可定制的项目,在后续的工作中大家可以根据自己的实际需求对其进行个性化定制,也可以直接从github上下载美化后的模板。




关于selenium的知识分享到此告一段落,希望能够给你们带去些许帮助,也祝大家工作顺利,开开心心。




兄dei~如果你觉得还行,,大家一起学习,共同进步~



【selenium-18】测试报告HTMLTestRunner_测试报告_10




【selenium-18】测试报告HTMLTestRunner_测试报告_11        【selenium-18】测试报告HTMLTestRunner_html_12