高颜值测试报告-xTestRunner

pip install XTestRunner
# 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 : 报告的描述,支持 str , list 俩种类型
  • language : 支持中文 zh-CN,默认 en

run() 方法说明

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

运行测试

python test_unit.py
接口测试
import requests
import unittest
from XTestRunner import HTMLTestRunner class YouTest(unittest.TestCase): def test_get(self):
"""测试get接口 """
r = requests.get("https://httpbin.org/get", params={"key":"value"})
print(r.json()) def test_post(self):
"""测试post接口 """
r = requests.post("https://httpbin.org/post", data={"key":"value"})
print(r.json()) def test_put(self):
"""测试put接口 """
r = requests.put("https://httpbin.org/put", data={"key":"value"})
print(r.json()) def test_delete(self):
"""测试delete接口 """
r = requests.delete("https://httpbin.org/delete", data={"key":"value"})
print(r.json()) if __name__ == '__main__':
report = "./reports/api_result.html"
with(open(report, 'wb')) as fp:
unittest.main(testRunner=HTMLTestRunner(
stream=fp,
title='Seldom自动化测试报告',
description=['类型:API', '地址:https://httpbin.org/', '执行人:xx']
))
支持黑白名单

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

支持黑白名单

  • 白名单: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"], # 设置黑名单
))

xTestRunner的更多相关文章

  1. 高颜值测试报告- XTestRunner

    Modern style test report based on unittest framework. 基于unittest框架现代风格测试报告. 特点 漂亮测试报告让你更愿意编写测试. 支持单元 ...

随机推荐

  1. 一篇文章让你理解:什么是Spring???

    背景 市场上,随便一个Java工程师的招牌要求上,都可以看到SSM.Spring.SpringMVC...类似字样.这玩意到底是个啥? 这是中邮消费招聘的岗位要求,可以看到第3点: 3.熟悉Strut ...

  2. 题解 UVA10299

    前言 数学符号约定: \(a\).\(b\).\(m\).\(n\).\(x\).\(y\):任意一个正整数. \(p\):任意一个质数. \(d\):一个数的任意一个因子. \(\varphi(n) ...

  3. GitHub Universe 2023:AI 技术引领软件开发创新浪潮

    GitHub 是全球领先的软件开发和协作平台,数百万开发者和企业在此分享.学习和创建卓越的软件.同时 GitHub 处在 AI 技术前沿,通过其先进的 AI 技术增强开发者体验并赋能未来软件开发的使命 ...

  4. Linux下redis的安装下载以及连接RESP

    一.环境 Centos7.redis-6.2.6.gcc依赖.管理员权限 将防火墙放通6379/tcp端口或直接关闭防火墙 二.安装具体步骤 1. 安装依赖 redis是由C语言开发,因此安装之前必须 ...

  5. Android Sutdio 编入System API 等隐藏API 方法

    1. 将 classes.jar 放入 app/libs 文件夹下 右键点击 jar 包,点击 Add as Library 2. 项目级 Gradle 文件新增以下配置 gradle.project ...

  6. 升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...

  7. 解锁 ElasticJob 云原生实践的难题

    发生了什么 最近在逛 ElasticJob 官方社区时发现很多小伙伴都在头疼这个 ElasticJob 上云的问题,ElasticJob 本就号称分布式弹性任务调度框架,怎么在云原生环境就有了问题了呢 ...

  8. .NET8 依赖注入

    依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件(服务)之间的依赖关系.它通过将依赖关系的创建和管理交给外部容器来实现,而不是在组件(服务)内部直接创建依赖对 ...

  9. [NOI online2022提高C] 如何正确地排序

    题目描述 有一个 \(m\times n\) 的数组 \(a_{i,j}\). 定义: \(f(i,j)=\min\limits_{k=1}^m(a_{k,i}+a_{k,j})+\max\limit ...

  10. Microsoft Edge 分屏 推荐

    前言: 很早之前就在 Edge Dev 频道的更新公告中看到过 Edge 的新分屏功能,当时没怎么注意,昨天看文档的时候发现 Edge 的侧边栏可以拖动当作一个"虚假的"分屏页面来 ...