Web自动化测试项目(四)测试报告
测试报告生成
使用HTMLTestRunner 生成测试报告
本文使用的 HTMLTestRunner 来源于github:
https://github.com/githublitao/HTMLTestRunner_Chart
参考链接:
http://tungwaiyip.info/software/HTMLTestRunner.html
https://github.com/GoverSky/HTMLTestRunner_cn
- 把下载下来的HTMLTestRunner_Chart.py存放在utils目录里,并更名为HTMLTestRunnerChart.py
- 在run_case目录下创建run_login_case_report.py,测试登录用例集并生成报告
├── run_case
│ ├── __init__.py
│ ├── module_path.py
│ ├── run_login_case.py
│ └── run_login_case_report.py
└── utils
├── __init__.py
├── HTMLTestRunnerChart.py
├── constants.py
└── se_utils.py
修改HTMLTestRunnerChart.py
'
'
'
def generateReport(self, test, result):
report_attrs = self.getReportAttributes(result)
generator = 'HTMLTestRunner %s' % __version__
stylesheet = self._generate_stylesheet()
heading = self._generate_heading(report_attrs)
report = self._generate_report(result)
self.path = os.path.splitext(self.stream.name)[0] + ".json"
# 在这个方法下,添加下面一行代码,用于存储最近10次测试结果的Json
self.path = self.path.rsplit('/', 1)[0] + '/WebUiTestRet.json'
'
'
'
run_login_case_report.py
import unittest
from module_path import *
from test_case.test_login import TestLoginCase
from utils.se_utils import Driver
from utils.HTMLTestRunnerChart import HTMLTestRunner
if __name__ == '__main__':
cases = unittest.TestLoader().loadTestsFromTestCase(TestLoginCase)
runner = HTMLTestRunner(
title="测试报告名称",
description="详细描述,例如测试的浏览器和环境",
stream=open(report_path, "wb"),
verbosity=2,
retry=0, # retry,指定重试次数,如果save_last_try 为True ,一个用例仅显示最后一次测试的结果。
save_last_try=True)
runner.run(cases)
# 所有用例运行完后关闭浏览器
Driver.quit_driver()
Driver.Driver = None
根据HTMLTestRunner_Chart要求为test_login.py 增加fixture,以获取用例失败后的截图
class TestLoginCase(unittest.TestCase):
@classmethod
def setUp(cls) -> None:
cls.driver = Driver.get_driver()
`
`
`
小结
- 根据Web自动化测试项目的流程,当你做到这里的时候,已经基本可以满足一般公司的Web自动化的需求
Web自动化测试项目(四)测试报告的更多相关文章
- Web自动化测试项目搭建目录
Web自动化测试项目搭建(一) 需求与设计 Web自动化测试项目(二)BasePage实现 Web自动化测试项目(三)用例的组织与运行 Web自动化测试项目(四)测试报告 Web自动化测试项目(五)测 ...
- selenium3 web自动化测试框架 四:Unittest介绍及项目实战中的运用
unittest介绍及运用,可以参考之前写的文章,除了未结合web自动化演示,基础知识都有了 https://www.cnblogs.com/wuzhiming/p/8858305.html unit ...
- Web自动化测试项目(五)测试结果通知
一.邮件通知 使用第三方邮件发送库yagmail github地址:https://github.com/kootenpv/yagmail 安装 pip3 install yagmail demo.p ...
- Web自动化测试项目(二)BasePage实现
一.BasePage介绍 创建一个BasePage类,对Selenium Api进行二次封装 为了快速创建项目并投产,用到的Selenium Api才进行封装,没用到的则不封装 优先封装最重要的几个方 ...
- Web自动化测试项目搭建(一) 需求与设计
一.项目需求 测试/生产环境更新后,自动化回归测试 项目易于维护和运行 支持多种测试策略 支持可视化测试报告 运行结果,支持多种方式通知相关人员 可定时/触发的方式运行自动化测试用例 二.设计 2.1 ...
- Web自动化测试项目(七)日志
一.日志作用 调试程序 了解系统程序运行的情况,是否正常 系统程序运行故障分析与问题定位 用来做用户行为分析和数据统计 二.为项目添加日志 └── utils ├── log_utils.py └── ...
- Web自动化测试项目(六)多环境执行
需求 使用命令行运行脚本,可以指定测试/预发布/生产环境的url,如果找不到该环境变量则默认为测试环境 python3 xxxxxx.py test 修改constants.py # DOMAIN = ...
- Web自动化测试项目(三)用例的组织与运行
一.Unittest用例组织 在test_case目录下创建test*.py,组织测试用例 ├── test_case │ ├── __init__.py │ └── test_login.p ...
- web自动化测试实战之生成测试报告
同志们,老铁们,继上篇文章 web自动化测试实战之批量执行测试用例 之后我们接着继续往下走,有人说我们运行了所有测试用例,控制台输入的结果,如果很多测试用例那也不能够清晰快速的知道多少用例通过率以及错 ...
随机推荐
- C++引用计数设计与分析(解决垃圾回收问题)
1.引言 上一篇博文讲到https://www.cnblogs.com/zhaoyixiang/p/12116203.html 我们了解到我们在浅拷贝时对带指针的对象进行拷贝会出现内存泄漏,那C++是 ...
- Hadoop集群分布式安装
一 整体介绍 1.1 硬件环境 本文使用三台服务器搭建hadoop集群,使用Centos7.5系统,服务器均有独立ip 1.2 部署的软件 部署服务:namenode(HA),resourcemana ...
- 漏洞挖掘 | 远程WWW服务支持TRACE请求
允许TRACE方法 漏洞描述 目标WEB服务器启用了TRACE方法.TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容(可能会附加路由中间的 ...
- POJ3252 Round Numbers 题解 数位DP
题目大意: 求区间 \([x,y]\) 范围内有多少数的二进制表示中的'0'的个数 \(\ge\) '1'的个数. 解题思路: 使用 数位DP 解决这个问题. 我们设状态 f[pos][num0][n ...
- 「CH2501」 矩阵距离 解题报告
CH2501 矩阵距离 描述 给定一个N行M列的01矩阵 A,\(A[i][j]\) 与 \(A[k][l]\) 之间的曼哈顿距离定义为: \(dist(A[i][j],A[k][l])=|i-k|+ ...
- Python PyInstaller安装和使用教程
安装 PyInstalle Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块. 安装 PyInstaller 模块与安装其他 Python 模块 ...
- 01_elementUI tree 插件 去图标
1:elementUI饿了吗前端ui框架,结合vue开发过程中,是不是对tree组件很头疼呢?是不是想自定义图标或者去掉所有图标只留末级checkbox呢? 实现很简单添加几行css代码完美搞定!!! ...
- java 多线程 快速入门
------------恢复内容开始------------ java 多线程 快速入门 1. 进程和线程 什么是进程? 进程是正在运行的程序它是线程的集合 进程中一定有一个主线程 一个操作系统可以有 ...
- javaScript类型和对象
javaScript基本数据类型 Undefined: Null: Boolean: String: Number: Symbol: Object. 注意 JavaScript 的代码 undefin ...
- 斯坦福算法分析和设计_2. 排序算法MergeSort
Motivate MergeSort是个相对古老的算法了,为什么现在我们还要讨论这么古老的东西呢?有几个原因: 它虽然年龄很大了,但是在实践中一直被沿用,仍然是很多程序库中的标准算法之一. 实现它 ...