300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Selenium3自动化测试——20.使用HTMLTestRunner获取测试报告

Selenium3自动化测试——20.使用HTMLTestRunner获取测试报告

时间:2023-01-26 07:19:15

相关推荐

Selenium3自动化测试——20.使用HTMLTestRunner获取测试报告

1. 测试报告需求

在自动化测试过程中,往往需要对测试后的结果汇总成测试报告,这里,使用HTMLTestRunner可以实现。

不过网上只有Python2的HTMLTestRunner.py文档,具体位置在:http://tungwaiyip.info/software/HTMLTestRunner.html。

这里有两种方式:1. 下载该文件--》修改成python3可用的;

2. 下载美化功能的Python3

这里,这两种方式都介绍一下,不过最终使用的还是第二种方式。

1.1 下载并修改成Python3兼容版本

1、第94行import StringIO

更改为: import io

2、第539行 self.outputBuffer = StringIO.StringIO()

更改为: self.outputBuffer = io.StringIO()

3、第631行 print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)

更改为: sys.stderr.write('\nTime Elapsed: %s\n' % (self.stopTime - self.startTime))

4、第642行 if not rmap.has_key(cls):

更改为: if cls not in rmap:

5、第687行 self.stream.write(output.encode('utf8'))

更改为: self.stream.write(output)

6、第766行 uo = o.decode('latin-1')

更改为: uo = o

7、第772行 ue = e.decode('latin-1')

更改为: ue = e

8、第778行 output = saxutils.escape(uo+ue),

更改为: output = saxutils.escape(str(uo)+ue),

最后将修改的HTMLTestRunner.py放置到Python/Lib中,我自己的文件位置路径为:D:\download\python\Lib

1.2 下载美化的Python3支持的HTMLTestRunnerCN.py

链接地址:/findyou/HTMLTestRunnerCN

下载与安装步骤:

1. 将整个文件压缩包下载,选择需要的HTMLTestRunnerCN.py文件或HTMLTestRunnerEN.py文件,将其复制到Lib文件夹下(这里,本人的文件夹路径为:D:\download\python\Lib)

2. 打开HTMLTestRunner文件,找到类名,这里,类名不一定为HTMLTestRunner。如下,该文件的类名为:HTMLTestReportCN。

3. 检验

打开DOS界面,输入python,再输入impot HTMLTestRunner,如果不报错,则说明安装成功。

2.生成HTML测试报告

接下来生成测试报告。在这之前,先确定整个工程的结构。

2.1 HTMLTestRunnerCN.py

将HTMLTestRUnnerCN.py放入当工程中;

2.2 1-生成测试报告.py

import unittestfrom HTMLTestRunnerCN import HTMLTestReportCNfrom selenium import webdriverfrom time import sleep# 定义测试用例的目录为当前目录下的test_case目录test_dir = './test_case'suit = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')if __name__ == '__main__':# 生成HMTL格式的报告fp = open('./test_report/result.html', 'wb')runner = HTMLTestReportCN(stream=fp,title="百度搜索测试报告",description="运行环境:Windows 8, Chrome浏览器")runner.run(suit)fp.close()

2.3 test_baidu.py

这里必须强调下,该文件名必须不能包含中文,否则在调用时就会出问题。单独测试是可以,但是要自动化测试,就会有问题。

import unittestfrom selenium import webdriverfrom time import sleepclass TestBaidu(unittest.TestCase):@classmethoddef setUpClass(cls):cls.driver = webdriver.Chrome()cls.base_url = ""def baidu_search(self, search_key):self.driver.get(self.base_url)self.driver.find_element_by_id("kw").send_keys(search_key)self.driver.find_element_by_id("su").click()sleep(2)def test_search_key_selenium(self):search_key = "selenium"self.baidu_search(search_key)self.assertEqual(self.driver.title, search_key + "_百度搜索")def test_search_key_unittest(self):search_key = "unittest"self.baidu_search(search_key)self.assertEqual(self.driver.title, search_key + "_百度搜索")@classmethoddef tearDownClass(cls):cls.driver.quit()if __name__ == '__main__':unittest.main()

3. 测试结果

3.1 运行结果

运行生成HTML测试报告文件后,会自动打开百度,分别输入selenium,unittest关键词的百度搜索页面,最终在窗口显示耗时情况:13秒左右。并在test_report文件夹中生成result.html文件。

3.2 HTML测试报告

打开result.html测试报告,看到如下界面,测试通过,没有问题!

4. 设置时间戳

import unittestfrom HTMLTestRunnerCN import HTMLTestReportCNfrom selenium import webdriverimport time# 定义测试用例的目录为当前目录下的test_case目录test_dir = './test_case'suit = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')if __name__ == '__main__':#取当前日期时间now_time = time.strftime("%Y-%m-%d %H_%M_%S")# 生成HMTL格式的报告fp = open('./test_report/'+now_time+'result.html', 'wb')runner = HTMLTestReportCN(stream=fp,title="百度搜索测试报告",description="运行环境:Windows 8, Chrome浏览器")runner.run(suit)fp.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。