高颜值测试报告-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. WebSocket魔法师:打造实时应用的无限可能

    1.背景 在开发一些前端页面的时候,总是能接收到这样的需求:如何保持页面并实现自动更新数据呢?以往的常规做法,是前端使用定时轮询后端接口,获取响应后重新渲染前端页面,这种做法虽然能达到类似的效果,但是 ...

  2. Net 高级调试之十:轻量级代码生成的调试

    一.简介 今天是<Net 高级调试>的第十篇文章.说起来,高级调试,调试的内容还是挺多的,技巧也不少,但是,要想做一个合格的高级调试人员,还需要掌握如何调试动态生成的IL代码.今天要探讨的 ...

  3. 数据库系列:RR和RC下,快照读的区别

    数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩容 数据库 ...

  4. 超实用:通过文字就可以操纵这款AI表格

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 工具介绍 今天给大家分享超实用的AI表格ChatExcel,这个工具是由北大团队在2022年3月开始开发的AI表格处理神器 ...

  5. Java核心知识体系7:线程安全性讨论

    Java核心知识体系1:泛型机制详解 Java核心知识体系2:注解机制详解 Java核心知识体系3:异常机制详解 Java核心知识体系4:AOP原理和切面应用 Java核心知识体系5:反射机制详解 J ...

  6. idea配置servlet项目找不到servlet jar包爆红【解决办法】

    1.看你的implements 后面的Servlet是否大写了 2.大部分原因就是缺少servlet-api jar包或者idea找不到jar包 如果你是爆红的,那么问题就在这里,点击-号,重新添加这 ...

  7. MyBatisPlus简介

    MyBatisPlus特性 国内的一个网站 网站地址简介 | MyBatis-Plus (baomidou.com)

  8. 如何为项目配置opencv

    如何为项目配置opencv 13/100 发布文章 public669 未选择任何文件 new 配置: 包含目录: D:\OpenCV\opencv\build\include D:\OpenCV\o ...

  9. 量化交易的相对强弱(RSI )指标计算及策略

    顾名思义,相对强弱指数 (RSI) 指标告诉我们资产的相对强弱.换句话说,RSI 告诉我们股票相对于自身的表现(或不表现).RSI 被视为一种强大的技术指标,可用于分析市场,并且是交易者武器库的重要组 ...

  10. 浅谈JSP中forward和redirect

    redirect 重定向,完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接 forward 转向,浏览器中不会显示后面的网址;如果你需要在下一个页面中能从中获取新的信息的话,你可以Reques ...