Python+Selenium学习--自动生成HTML测试报告
前言
在脚本运行完成之后,除了在log.txt 文件看到运行日志外,我们更希望能生一张漂亮的测试报告来展示用例执行的结果。
HTMLTestRunner 是Python 标准库的unittest 模块的一个扩展。它生成易于使用的HTML 测试报告。HTMLTestRunner 是在BSD 许可证下发布。
首先要下HTMLTestRunner.py 文件(百度自行搜索)。
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: test_baidu.py @time: 2019-08-16 14:07 ''' import time,os import unittest from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from test_case import HTMLTestRunner class TestBaiDu(unittest.TestCase): def setUp( self ): self .driver = webdriver.Firefox() # 添加智能等待 self .driver.implicitly_wait( 30 ) self .base_url = 'https://www.baidu.com/' def tearDown( self ): self .driver.quit() def test_baidu_search( self ): u '''百度搜索''' driver = self .driver driver.get( self .base_url) driver.find_element_by_id( 'kw' ).send_keys( 'uniquefu' ) driver.find_element_by_id( 'su' ).click() time.sleep( 3 ) # driver.close() def test_baidu_set( self ): u '''百度设置''' driver = self .driver driver.get( self .base_url) # 进入搜索设置页面 elment = driver.find_element_by_link_text( '设置' ) ActionChains(driver).move_to_element(elment).perform() driver.find_element_by_link_text( '搜索设置' ).click() time.sleep( 5 ) # 修改设置 driver.find_element_by_id( 's1_2' ).click() time.sleep( 5 ) # 保存设置 driver.find_element_by_link_text( '保存设置' ).click() # 获取网页上的警告信息并接收警告信息 alert = driver.switch_to_alert().accept() time.sleep( 3 ) # driver.close() if __name__ = = '__main__' : PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p) ) # 定义个报告存放路径,支持相对路径 report = PATH( 'Report.html' ) with open (report, 'wb' ) as f: testunit = unittest.TestSuite() testunit.addTest(unittest.makeSuite(TestBaiDu)) runner = HTMLTestRunner.HTMLTestRunner(f, verbosity = 2 , title = '百度自动化测试报告--uniquefu' , description = '百度自动化测试报告' ) runner.run(testunit) |