高颜值测试报告-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. source insight 中添加指定类型文件

    以下为source insight 3.X版本的设置方法: source insight 中过滤某些格式的文件. 建立source insight工程后,先暂时不要急于添加文件. 打开options- ...

  2. NLP文本生成全解析:从传统方法到预训练完整介绍

    本文深入探讨了文本生成的多种方法,从传统的基于统计和模板的技术到现代的神经网络模型,尤其是LSTM和Transformer架构.文章还详细介绍了大型预训练模型如GPT在文本生成中的应用,并提供了Pyt ...

  3. 基于JuiceFS 的低成本 Elasticsearch 云上备份存储

    杭州火石创造是国内专注于产业大数据的数据智能服务商,为了解决数据存储及高效服务客户需求,选择了 Elasticsearch 搜索引擎进行云上存储.基于性能和成本的考虑,在阿里云选择用本地 SSD EC ...

  4. LabVIEW基于机器视觉的实验室设备管理系统(2)

    目录 功能计划 普通用户 欢迎登录 信息查询 返回退出程序 效果演示 在前期的准备完成之后呢,就要开始实现我们的程序啦,不过在编程之前,我们一定要计划好这个系统需要什么功能. 功能计划 既然我们做的是 ...

  5. Acwing4244牛的比赛

    Acwing4244.牛的比赛 题目部分 N 头奶牛,编号 1∼N,一起参加比赛. 奶牛的战斗力两两不同. 这些奶牛之间已经进行了 M轮两两对决. 在对决中,战斗力高的奶牛一定会战胜战斗力低的奶牛. ...

  6. Rong晔大佬教程学习(0):前言

    2023-12-13 在安装了tinyriscv的工具链之后,本想着说去看那个技术文档,但是那个技术文档只是相当于一个"使用手册",而不是技术教程,所以说还是得去补一补计组的知识. ...

  7. 使用SPEL自定义表达式

    自定义表达式 Spring提供了一个可以自定义表达式的接口 package com.qbb.qmall.item; import org.junit.Test; import org.springfr ...

  8. ElasticSearch之Create index API

    创建指定名称的index. 命令样例如下: curl -X PUT "https://localhost:9200/testindex_002?pretty" -H 'Conten ...

  9. 聊聊ChatGLM-6B的源码分析

    基于ChatGLM-6B第一版,要注意还有ChatGLM2-6B以及ChatGLM3-6B 转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote/ Prefix ...

  10. JavaFx之TableView表格添加按钮删除行(二十二)

    JavaFx之TableView表格添加按钮删除行(二十二) JavaFx之TableView添加按钮 JavaFx之TableView删除行 编写一个xml <?xml version=&qu ...