这份高颜值测试报告结果如何?

2026-05-27 15:371阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1436个文字,预计阅读时间需要6分钟。

这份高颜值测试报告结果如何?

现代风格测试报告——基于unittest框架采用unittest框架的现代风格测试报告,使测试报告更加炫目。轻松编写测试报告,提高编写意愿。支持单元测试、Web UI测试、API测试等多种类型测试。同时支持Selenium进行失败执行。

Modern style test report based on unittest framework.

基于unittest框架现代风格测试报告。

特点
  • 漂亮测试报告让你更愿意编写测试。
  • 支持单元Web UIAPI 各种类型的测试。
  • 支持Selenium运行失败/错误自动截图。
  • 支持失败重跑。
  • 支持标签黑、白名单。
  • 支持发邮件功能。
  • 支持多语言enzh-CN 等。
  • 支持HTML/XML不同格式的报告。

安装
  • pip安装

> pip install XTestRunner 使用文档 单元测试

XTestRunner基本用法,用于生成 HTML测试报告。

测试用例

# test_unit.py import unittest from XTestRunner import HTMLTestRunner class TestDemo(unittest.TestCase): """测试用例说明""" def test_success(self): """执行成功""" self.assertEqual(2 + 3, 5) @unittest.skip("skip case") def test_skip(self): """跳过用例""" pass def test_fail(self): """失败用例""" self.assertEqual(5, 6) def test_error(self): """错误用例""" self.assertEqual(a, 6) if __name__ == '__main__': suit = unittest.TestSuite() suit.addTests([ TestDemo("test_success"), TestDemo("test_skip"), TestDemo("test_fail"), TestDemo("test_error") ]) with(open('./result.html', 'wb')) as fp: runner = HTMLTestRunner( stream=fp, title='<project name>test report', description='describe: ... ', language='en', ) runner.run( testlist=suit, rerun=2, save_last_run=False )

HTMLTestRunner类说明

  • stream: 指定报告的路径。
  • title: 报告的标题。
  • description: 报告的描述, 支持strlist两种类型。
  • language: 支持中文zh-CN, 默认en

run()方法说明

  • testlist: 运行的测试套件。
  • rerun: 重跑次数。
  • save_last_run: 是否保存最后一个重跑结果。

运行测试

> python test_unit.py Selenium Web测试

针对Selenium Web自动化测试提供了失败/错误 自动截图功能。

注意

1.安装selenium

> pip install selenium

2.注意:驱动必须定义为 driver, 否则无法生成截图。

测试用例

import unittest from XTestRunner import HTMLTestRunner from selenium import webdriver from selenium.webdriver.common.by import By class SeTest(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.driver = webdriver.Chrome() cls.base_url = "cn.bing.com/" @classmethod def tearDownClass(cls) -> None: cls.driver.quit() def test_success(self): """测试bing搜索:XTestRunner """ self.driver.get(self.base_url) search = self.driver.find_element(By.ID, "sb_form_q") search.send_keys("XTestRunner") search.submit() def test_error(self): """测试bing搜索,定位失败 """ self.driver.get(self.base_url) self.driver.find_element(By.ID, "sb_form_qxxx").send_keys("python") def test_fail(self): """测试bing搜索,断言失败 """ self.driver.get(self.base_url) self.driver.find_element(By.ID, "sb_form_q").send_keys("unittest") self.assertEqual(self.driver.title, "unittest") def test_screenshots(self): """测试截图""" self.driver.get(self.base_url) # 元素截图 elem = self.driver.find_element(By.ID, "sb_form_q") self.images.append(elem.screenshot_as_base64) # 竖屏截图 self.images.append(self.driver.get_screenshot_as_base64()) # 最大化截图 self.driver.maximize_window() self.images.append(self.driver.get_screenshot_as_base64()) if __name__ == '__main__': report = "./selenium_result.html" with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='Selenium自动化测试报告', description=['类型:selenium', '操作系统:Windows', '浏览器:Chrome', '执行人:虫师'] ))

测试报告

一个用例支持多张截图,不同的截图自动轮播,而且优化之后,不管是页面元素截图,横向、纵向图片都可以很好的展示。

API 接口测试

XTestRunner 当然也支持HTTP接口测试了。

  • 安装requests

> pip install requests

测试用例

import requests import unittest from XTestRunner import HTMLTestRunner class YouTest(unittest.TestCase): def test_get(self): """测试get接口 """ r = requests.get("httpbin.org/', '执行人:虫师'] ))

测试报告

通过print() 可以讲接口信息打印到报告中展示。

这份高颜值测试报告结果如何?

邮件功能

XTestRunner 支持邮件功能。

import unittest from XTestRunner import HTMLTestRunner from XTestRunner import SMTP ... if __name__ == '__main__': report = "./reports/send_email_result.html" with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='测试发送邮件', description=['类型:测试发送邮件', '执行人:虫师'] )) # 发邮件功能 # 使用126邮箱发送时password应为授权码而非用户密码,须在邮箱客户端设置开启授权码 # 使用gmail邮箱发送时password为用户密码,须在gmail客户端开启安全性较低的应用的访问权限 smtp = SMTP(user="sender@qq.com", password="xxx", host="smtp.qq.com") smtp.sender(to="fnngj@126.com", subject="XTestRunner测试邮件", attachments=report)

邮件展示

支持黑白名单

可以通过黑白名单选择要执行(或跳过)的用例。

  • 支持白黑名单
    • 白名单:whitelist=["base"] 只有使用@label("base")装饰的用例执行
    • 黑名单:blacklist=["slow"] 只有使用@label("slow")装饰的用例不被执行

测试用例

import unittest from XTestRunner import label from XTestRunner import HTMLTestRunner class LabelTest(unittest.TestCase): @label("base") def test_label_base(self): self.assertEqual(1+1, 2) @label("slow") def test_label_slow(self): self.assertEqual(1, 2) def test_no_label(self): self.assertEqual(2+3, 5) if __name__ == '__main__': report = './reports/label_result.html' with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='<project name>test report', description='describe: ... ', whitelist=["base"], # 设置白名单 # blacklist=["slow"], # 设置黑名单 ))

注意:

白名单和黑名单不要同时用,以免产生冲突。

XML格式报告

虽然,HTML报告的颜值很高,但有时需要提取测试数据,比如保存到数据库,这个时候从HTML报告中提取数据是非常麻烦的,所以,XTestRunner 支持XML格式的报告。

import unittest from XTestRunner import XMLTestRunner #... if __name__ == '__main__': # 定义报告 report = "./xml_result.xml" with(open(report, 'wb')) as fp: unittest.main(testRunner=XMLTestRunner(output=fp))

报告展示

本文共计1436个文字,预计阅读时间需要6分钟。

这份高颜值测试报告结果如何?

现代风格测试报告——基于unittest框架采用unittest框架的现代风格测试报告,使测试报告更加炫目。轻松编写测试报告,提高编写意愿。支持单元测试、Web UI测试、API测试等多种类型测试。同时支持Selenium进行失败执行。

Modern style test report based on unittest framework.

基于unittest框架现代风格测试报告。

特点
  • 漂亮测试报告让你更愿意编写测试。
  • 支持单元Web UIAPI 各种类型的测试。
  • 支持Selenium运行失败/错误自动截图。
  • 支持失败重跑。
  • 支持标签黑、白名单。
  • 支持发邮件功能。
  • 支持多语言enzh-CN 等。
  • 支持HTML/XML不同格式的报告。

安装
  • pip安装

> pip install XTestRunner 使用文档 单元测试

XTestRunner基本用法,用于生成 HTML测试报告。

测试用例

# test_unit.py import unittest from XTestRunner import HTMLTestRunner class TestDemo(unittest.TestCase): """测试用例说明""" def test_success(self): """执行成功""" self.assertEqual(2 + 3, 5) @unittest.skip("skip case") def test_skip(self): """跳过用例""" pass def test_fail(self): """失败用例""" self.assertEqual(5, 6) def test_error(self): """错误用例""" self.assertEqual(a, 6) if __name__ == '__main__': suit = unittest.TestSuite() suit.addTests([ TestDemo("test_success"), TestDemo("test_skip"), TestDemo("test_fail"), TestDemo("test_error") ]) with(open('./result.html', 'wb')) as fp: runner = HTMLTestRunner( stream=fp, title='<project name>test report', description='describe: ... ', language='en', ) runner.run( testlist=suit, rerun=2, save_last_run=False )

HTMLTestRunner类说明

  • stream: 指定报告的路径。
  • title: 报告的标题。
  • description: 报告的描述, 支持strlist两种类型。
  • language: 支持中文zh-CN, 默认en

run()方法说明

  • testlist: 运行的测试套件。
  • rerun: 重跑次数。
  • save_last_run: 是否保存最后一个重跑结果。

运行测试

> python test_unit.py Selenium Web测试

针对Selenium Web自动化测试提供了失败/错误 自动截图功能。

注意

1.安装selenium

> pip install selenium

2.注意:驱动必须定义为 driver, 否则无法生成截图。

测试用例

import unittest from XTestRunner import HTMLTestRunner from selenium import webdriver from selenium.webdriver.common.by import By class SeTest(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.driver = webdriver.Chrome() cls.base_url = "cn.bing.com/" @classmethod def tearDownClass(cls) -> None: cls.driver.quit() def test_success(self): """测试bing搜索:XTestRunner """ self.driver.get(self.base_url) search = self.driver.find_element(By.ID, "sb_form_q") search.send_keys("XTestRunner") search.submit() def test_error(self): """测试bing搜索,定位失败 """ self.driver.get(self.base_url) self.driver.find_element(By.ID, "sb_form_qxxx").send_keys("python") def test_fail(self): """测试bing搜索,断言失败 """ self.driver.get(self.base_url) self.driver.find_element(By.ID, "sb_form_q").send_keys("unittest") self.assertEqual(self.driver.title, "unittest") def test_screenshots(self): """测试截图""" self.driver.get(self.base_url) # 元素截图 elem = self.driver.find_element(By.ID, "sb_form_q") self.images.append(elem.screenshot_as_base64) # 竖屏截图 self.images.append(self.driver.get_screenshot_as_base64()) # 最大化截图 self.driver.maximize_window() self.images.append(self.driver.get_screenshot_as_base64()) if __name__ == '__main__': report = "./selenium_result.html" with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='Selenium自动化测试报告', description=['类型:selenium', '操作系统:Windows', '浏览器:Chrome', '执行人:虫师'] ))

测试报告

一个用例支持多张截图,不同的截图自动轮播,而且优化之后,不管是页面元素截图,横向、纵向图片都可以很好的展示。

API 接口测试

XTestRunner 当然也支持HTTP接口测试了。

  • 安装requests

> pip install requests

测试用例

import requests import unittest from XTestRunner import HTMLTestRunner class YouTest(unittest.TestCase): def test_get(self): """测试get接口 """ r = requests.get("httpbin.org/', '执行人:虫师'] ))

测试报告

通过print() 可以讲接口信息打印到报告中展示。

这份高颜值测试报告结果如何?

邮件功能

XTestRunner 支持邮件功能。

import unittest from XTestRunner import HTMLTestRunner from XTestRunner import SMTP ... if __name__ == '__main__': report = "./reports/send_email_result.html" with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='测试发送邮件', description=['类型:测试发送邮件', '执行人:虫师'] )) # 发邮件功能 # 使用126邮箱发送时password应为授权码而非用户密码,须在邮箱客户端设置开启授权码 # 使用gmail邮箱发送时password为用户密码,须在gmail客户端开启安全性较低的应用的访问权限 smtp = SMTP(user="sender@qq.com", password="xxx", host="smtp.qq.com") smtp.sender(to="fnngj@126.com", subject="XTestRunner测试邮件", attachments=report)

邮件展示

支持黑白名单

可以通过黑白名单选择要执行(或跳过)的用例。

  • 支持白黑名单
    • 白名单:whitelist=["base"] 只有使用@label("base")装饰的用例执行
    • 黑名单:blacklist=["slow"] 只有使用@label("slow")装饰的用例不被执行

测试用例

import unittest from XTestRunner import label from XTestRunner import HTMLTestRunner class LabelTest(unittest.TestCase): @label("base") def test_label_base(self): self.assertEqual(1+1, 2) @label("slow") def test_label_slow(self): self.assertEqual(1, 2) def test_no_label(self): self.assertEqual(2+3, 5) if __name__ == '__main__': report = './reports/label_result.html' with(open(report, 'wb')) as fp: unittest.main(testRunner=HTMLTestRunner( stream=fp, title='<project name>test report', description='describe: ... ', whitelist=["base"], # 设置白名单 # blacklist=["slow"], # 设置黑名单 ))

注意:

白名单和黑名单不要同时用,以免产生冲突。

XML格式报告

虽然,HTML报告的颜值很高,但有时需要提取测试数据,比如保存到数据库,这个时候从HTML报告中提取数据是非常麻烦的,所以,XTestRunner 支持XML格式的报告。

import unittest from XTestRunner import XMLTestRunner #... if __name__ == '__main__': # 定义报告 report = "./xml_result.xml" with(open(report, 'wb')) as fp: unittest.main(testRunner=XMLTestRunner(output=fp))

报告展示