Python接口自动化之ExtentHTMLTestRunner测试报告
2023-02-26 10:15:28 时间
引言
结合HTMLTestRunner做的改动,页面内容拿的HttpRunnerManager中的测试报告模板(感谢HttpRunnerManager),HttpRunnerManager是直接将结果数据传递给报告,结合原HTMLTestRunner是在执行测试的同时将结果写到测试报告中,功能还不够完善,但是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunner
示例
from ExtentHTMLTestRunner import HTMLTestRunner
filename="/*/result.html"
fp=open(filename,'wb')
runner=HTMLTestRunner(
stream=fp,
title='自动化测试报告',
description='用例执行情况:')
在报告中展示截图:
- 截图须和html报告在同一目录下;
- 需要在对应的case中打印一下截图名称,截图名称以 screenshot_*.png 格式命名.
- 报告需要的extent.js、extent.css可能下载不了,如果报告展示有问题可能是这些资源没有拿到,注意检查下。
案例讲解
项目结构:
方法1:
from ExtentHTMLTestRunner import HTMLTestRunner
import unittest
class InterfaceTest(unittest.TestCase):
def test_1(self):
print("测试")
print("screenshot_baidu.png")
def test_2(self):
a = 1
b = 2
return a*b
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(InterfaceTest))
filename="result22.html"
fp=open(filename,'wb')
runner=HTMLTestRunner(
stream=fp,
title='自动化测试报告',
description='用例执行情况:')
runner.run(suite)
fp.close()
运行结果:
第二条用例没有输出什么,所以是空
方法2:
项目结构和上面是一样的,只是用例代码不一样:
__author__ = 'Leo'
from ExtentHTMLTestRunner import HTMLTestRunner
import unittest,os,requests
# 获取根目录
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# 获取指定目录test_case
TEST_CASE = os.path.join(BASE_DIR,"test_case")
class InterfaceTest(unittest.TestCase):
def test_1(self):
url = 'https://api.apiopen.top/getWangYiNews'
data = {
'page':1,
'count':1
}
r = requests.post(url=url,data=data)
print(r.text)
def test_2(self):
a = 1
b = 2
# Name and print in this format "screenshot_*.png" if you want to show screenshot in report.
print("screenshot_baidu.png")
return a*b
if __name__ == '__main__':
# suite = unittest.TestSuite()
# suite.addTest(unittest.makeSuite(InterfaceTest))
discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py')
filename="result.html"
fp=open(filename,'wb')
runner=HTMLTestRunner(
stream=fp,
title='自动化测试报告',
description='用例执行情况:')
runner.run(discover)
fp.close()
运行结果:
第二条用例使用了截图功能,如图所示:
总结:
喜欢的朋友可以学习一下,后面还可以平台化,另外对测试及测试开发感兴趣的伙伴,可以加入到我们的学习沟通群,一起提升自己!
相关文章
- Python实现12种降维算法
- 如何循序渐进地管理RESTful API的生命周期?
- 通过实例程序验证与优化谈谈网上很多对于Java DCL的一些误解
- Python之字典常用的方法一
- Python 中的鸭子类型和猴子补丁
- 在 Windows上写 Python 代码的优秀组合!
- Vue.js设计与实现之五-设计一个完善的响应系统
- 八年了,这几个时间API你用过吗?
- 学习Python最好的IDE是PyCharm吗?
- Disruptor广播模式与执行顺序链源码分析
- 盘点Python内置函数sorted()高级用法实战
- 使用Python构建电影推荐系统
- Spring 随便问,我来答!
- Python 的 import 是怎么工作的?
- 手把手教你进行Python网络爬虫中的Charles+Postern抓包
- 修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误
- 降本增效!12 个必须尝试的Python工具包!
- 使用Python进行数据清洗的完整指南
- 前端实现多文件编译器
- 三面面试官:运行 Npm Run xxx 的时候发生了什么?