xTestRunner
高颜值测试报告-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的更多相关文章
- 高颜值测试报告- XTestRunner
Modern style test report based on unittest framework. 基于unittest框架现代风格测试报告. 特点 漂亮测试报告让你更愿意编写测试. 支持单元 ...
随机推荐
- 一篇文章让你理解:什么是Spring???
背景 市场上,随便一个Java工程师的招牌要求上,都可以看到SSM.Spring.SpringMVC...类似字样.这玩意到底是个啥? 这是中邮消费招聘的岗位要求,可以看到第3点: 3.熟悉Strut ...
- 题解 UVA10299
前言 数学符号约定: \(a\).\(b\).\(m\).\(n\).\(x\).\(y\):任意一个正整数. \(p\):任意一个质数. \(d\):一个数的任意一个因子. \(\varphi(n) ...
- GitHub Universe 2023:AI 技术引领软件开发创新浪潮
GitHub 是全球领先的软件开发和协作平台,数百万开发者和企业在此分享.学习和创建卓越的软件.同时 GitHub 处在 AI 技术前沿,通过其先进的 AI 技术增强开发者体验并赋能未来软件开发的使命 ...
- Linux下redis的安装下载以及连接RESP
一.环境 Centos7.redis-6.2.6.gcc依赖.管理员权限 将防火墙放通6379/tcp端口或直接关闭防火墙 二.安装具体步骤 1. 安装依赖 redis是由C语言开发,因此安装之前必须 ...
- Android Sutdio 编入System API 等隐藏API 方法
1. 将 classes.jar 放入 app/libs 文件夹下 右键点击 jar 包,点击 Add as Library 2. 项目级 Gradle 文件新增以下配置 gradle.project ...
- 升级到 Pulsar3.0 后深入了解 JWT 鉴权
背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...
- 解锁 ElasticJob 云原生实践的难题
发生了什么 最近在逛 ElasticJob 官方社区时发现很多小伙伴都在头疼这个 ElasticJob 上云的问题,ElasticJob 本就号称分布式弹性任务调度框架,怎么在云原生环境就有了问题了呢 ...
- .NET8 依赖注入
依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件(服务)之间的依赖关系.它通过将依赖关系的创建和管理交给外部容器来实现,而不是在组件(服务)内部直接创建依赖对 ...
- [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 ...
- Microsoft Edge 分屏 推荐
前言: 很早之前就在 Edge Dev 频道的更新公告中看到过 Edge 的新分屏功能,当时没怎么注意,昨天看文档的时候发现 Edge 的侧边栏可以拖动当作一个"虚假的"分屏页面来 ...