## behave 本身的测试报告
behave 本身提供了四种报告格式:
* pretty:这是默认的报告格式,提供颜色化的文本输出,每个测试步骤的结果都会详细列出。
* plain:这也是一种文本格式的报告,但没有颜色,并且在执行每个步骤后只输出一个新行。
* progress:这种报告格式只在执行每个测试步骤后输出一个单字符。
* json:这种报告格式以 JSON 格式输出测试结果,易于进行进一步处理。
使用 -f 参数或 --format 参数来指定报告的格式。
### pretty 美化的文本格式
![](https://img.kancloud.cn/93/70/9370777ac0f16ef00a1627d089e087af_597x202.png)
* 这里没有看到颜色的差别, 但是会显示每个步骤对应的代码行数
### plain 普通文本格式
![](https://img.kancloud.cn/12/16/1216d9daab09df7e3206680aba3296e6_589x201.png)
* 这里只会显示步骤执行的结果, 没有显示具体的步骤对应的代码函数
### progress 格式
![](https://img.kancloud.cn/18/8c/188c8a1a29d943f8a47b4699fc47bec5_627x104.png)
* 没有显示步骤
### JSON格式
以JSON格式的输出为例:
```shell
behave -f json
```
这将在控制台输出 JSON 格式的测试结果。
![](https://img.kancloud.cn/50/dd/50ddd580b67282435bb9426b17d88eff_1391x235.png)
格式化一下JSON字符串,显示如下:
![](https://img.kancloud.cn/dc/79/dc79d85d456b2bb94b67dec19e37a28b_763x498.png)
可以看到JSON 的字符串包括了Feature的名字,以及各步骤和执行结果等信息。
如果希望将结果保存到文件,可以将输出重定向到一个文件,也可以使用 -o 参数或 --outfile 参数将结果写入文件:
```
behave -f json -o report.json
```
这将会产生一个名为 report.json 的文件,其中包含 JSON 格式的测试结果。这个JOSN格式的内容和上面控制台的JSON是一致的。
### 总结
behave 本身产生的测试包括可以使用在CI/CD 的集成上, 用来判断整个测试是否成功, 如果需要一些更直观和易读的报告, 可以结合Allure 等工具。
## 结合 Allure 产生更丰富的报表
有一些第三方工具或插件可以生成更好看或更有用的报告,例如 allure-behave 可以生成富交互性的 HTML 测试报告。
### Allure 是什么?
Allure 是一个开源的可视化报告工具,适用于各种不同的测试框架(包括 pytest、NUnit、Jasmine 等)。Allure 可以收集测试执行的信息,生成描述测试执行结果的详细、交互式的 HTML 报告。
Allure 报告是一种可视化的测试报告,它为你提供了丰富的信息,例如测试历史、执行时间、附件等。
### hebeave + Allure 产生报表的步骤
1. 安装Python的 allure-behave 模块。`allure-behave`是一个用于生成 Allure 测试报告的`behave`插件。
在命令行输入 `pip install allure-behave `
成功安装的界面如下:
![](https://img.kancloud.cn/9d/e5/9de566ae254a7c680a1e28b9781ce069_966x358.png)
2. 安装Allure 命令行工具
## Windows 安装Allure 命令行
在Windows 中可以使用scoop 安装Allure , 而 scoop 则可以通过Windows 的PowerShell 进行安装。
### 关于 Scoop
Scoop是一种适用于Windows操作系统的命令行软件包管理器,用于快速安装、升级和卸载应用程序。它使用PowerShell命令行界面,可以从互联网上获取开源软件,软件包命令可以方便地从GitHub上获取。Scoop不需要管理员权限,可以在用户帐户下运行。Scoop是自由开源软件,可以在GitHub上查看其代码。
### Windows下如何安装 scoop
在 Windows 中,可以按照以下步骤安装`scoop`命令行安装器:
1. ** 确认系统满足安装要求**:
scoop需要 Windows 7 SP1+、Windows Server 2008+ 或更高版本,以及 PowerShell 5 以上版本(或 PowerShell Core 6+)。
2. **安装 PowerShell**
* 如果系统是 Windows 10,已经有该所需的 PowerShell 版本。
* 如果系统是 Windows 7/8/8.1,需要手动升级 PowerShell。可以在 Microsoft 的官方网站下载[最新版本的 PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.1)。
在开始菜单输入 "po“就可以找到PowerShell 了, 如下图
![](https://img.kancloud.cn/8d/08/8d085ea38273e46c1f881a52d852290b_769x619.png)
3. **开启 PowerShell 脚本执行权限**:
打开 PowerShell(以管理员权限),运行以下命令:
```
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
```
命名输入后提示是否更改策略, 输入 ”A“ 就可以了。
![](https://img.kancloud.cn/48/37/4837667a9fa4a2b43814f826beb1703a_850x86.png)
这个命令开启 PowerShell 脚本的执行权限,允许你在 PowerShell 中运行`scoop`的安装脚本。
4. **安装`scoop`**:
在 PowerShell 中,运行以下命令:
```
iwr -useb get.scoop.sh | iex
```
* 这个命令下载并运行`scoop`的安装脚本,会把`scoop`安装到你的用户目录下的`scoop`文件夹高。
安装成功后,你可以通过`scoop help`命令查看`scoop`的用法说明。
需要注意,由于`scoop`需要访问 GitHub 以获取并安装软件,如果你所在的网络环境无法访问 GitHub,可能会导致`scoop`安装或使用中遇到问题。类似如下错误信息:
![](https://img.kancloud.cn/3f/2d/3f2d83f6f71a0335fc385a290a428c7c_845x130.png)
### Windows下如何安装 Allure 命令行
如果正确安装了scoop ,可以通过 `scoop install allure
` 安装Allure ,需要注意这种方式需要安装Java ,而且版本是 8 以上, 而且配置了JAVA_HOME环境变量,
如果无法正确安装scoop 。 也可以通过直接下载allure的命令行工具。 下载完成之后将 allure目录的bin 目录添加到Path中, 如下图:
![](https://img.kancloud.cn/98/9d/989dbd339ce13d160b7a30d9591eca77_507x276.png)
allure的Windows命令行工具的最新版下载地址: [https://download.csdn.net/download/oscar999/88559298](https://download.csdn.net/download/oscar999/88559298), 也可以到 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline 查找适当的版本下载。
## hebeave + Allure 产生报表
上面的环境准备完成, 就可以产生报表了, 具体步骤如下:
1.命令行切换到规格文件所处目录的父目录,执行如下命令:
```
behave -f allure_behave.formatter:AllureFormatter -o allure_data
```
注意:只有正确安装了allure-behave 模块模块之后才能 通过指定`allure_behave.formatter:AllureFormatter`作为格式化器和输出目录,来运行`behave`, 否则会提示beheave不认识这个命令选项
![](https://img.kancloud.cn/49/86/4986ae5bbc118dabcf9da7e7b5a830ac_842x60.png)
正确执行的效果是:
![](https://img.kancloud.cn/de/af/deafae71e726de024d67761606805c7d_893x88.png)
上面的命令会将测试的结果放在allure_data目录中,
这个目录会产生一个 json格式的文件。
![](https://img.kancloud.cn/c0/90/c0908724c6de27c5d4b97c10d5e14653_403x53.png)
2. 在命令行输入
```
allure serve allure_data
```
执行的结果是:
![](https://img.kancloud.cn/49/76/4976a5e46e2aaa9867b1a8b0deecb76f_746x119.png)
执行之后会打开一个浏览器窗口, 这里显示的就是一个高大上的在线报表页面了:
![](https://img.kancloud.cn/86/2d/862dfce94a553807ffced6940bbd0426_1675x708.png)
Allure 报告的常见组成部分及其含义如下:
1. **Overview**: 报告首页会显示一个总览(Overview),其中包括执行的测试用例总数、通过率、持续时间,以及故障、错误等统计信息。
2. **Graphs**: 报告提供一些数据可视化,如饼图和柱状图,以便更好地理解测试分布、状态、持续时间等。这有助于识别测试的瓶颈和问题。
3. **Categories**: 测试结果可以按问题类型或故障类型分类。Allure 报告支持创建自定义类别,以根据用例标签(如自动化用例、手动用例等)对测试结果进行分组和筛选。
4. **Timeline**: 时间线视图展示了测试用例的执行顺序以及每个测试用例的开始和结束时间。这有助于查看并发量和找出性能问题。
5. **Test Details**: 报告中的每个测试用例都有详细的信息,例如测试名称、描述、状态(通过、失败、跳过等)、测试步骤、运行时间等。此外,也有可能包含额外的信息,如屏幕截图、日志文件或自定义文档等。
6. **History**: Allure 报告支持展示测试的历史数据,有助于追踪和分析测试的稳定性和质量。例如在多次构建间查看失败案例的趋势。
7. **Attachments**: 可以添加附件到测试步骤或测试用例,以显示与测试相关的其他信息。例如,错误日志, 屏幕截图, 视频记录等,可以帮助更好地诊断问题。
8. **Retries**: 如果测试用例执行失败,Allure 支持自动重试。在报告中,原始测试用例和重试测试用例会分开显示,以便查看重试次数和结果。
## 参考
* allure
安装说明:[https://allurereport.org/docs/gettingstarted-installation/](https://allurereport.org/docs/gettingstarted-installation/)
*****
*****
- 前言
- 1.入门篇
- Python介绍
- 安装与使用
- Python开发利器之VS Code
- 模块安装
- 命令行
- 一次Python无法安装模块的问题探索与解决之旅
- 命令运行
- Conda
- 下载地址
- 2.基础篇
- 基础语法
- 输入与输出
- with as的用法
- 注释
- Python命令行参数
- 编码
- 变量类型
- 列表遍历
- 运算符
- 表达式语句
- 条件
- 循环
- 日期和时间
- 函数
- 高级语法
- @符号-装饰器
- 模块和包
- name
- init.py
- 错误和异常
- 面向对象
- 3.专题篇
- 常用功能
- Python 字符串连接
- python web
- Python CGI编程
- Python OAuth2
- 认证 Flask-HTTPAuth
- 常用命令
- 内置函数
- dir()
- print(f)
- 标准模块
- sys
- pickle-数据序列化
- os
- IO(输入输出)
- 键盘输入
- 文件读写
- 测试
- Python测试框架之pytest快速入门
- pytest-bdd快速示例和问题解决
- 基于pytest-bdd的项目目录结构和命名规范
- python BDD 的相关概念
- Behave介绍和快速示例
- Python BDD之Behave测试报告
- Python BDD 框架比较之 pytest-bdd vs behave
- pytest进阶
- Flask + pytest测试
- 参考网址
- pytest-bdd进阶
- hehave进阶
- 测试路径
- python + selunium
- HTML 根据多层CSS 查找元素
- 等待执行
- 使用text 查找 span
- pytest如何在控制台输出
- 4.问题篇
- pip pip3 及区别
- TypeError: can only concatenate str (not "NoneType") to str
- 5.实战篇
- matplotlib-绘图包
- 导入类
- 命名规范
- 模块查找
- 6.进阶篇
- Flask
- Flask介绍
- Flask扩展模块
- Flask-Login
- 问题
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask实战
- Flask 标准目录结构
- Blueprints
- 参考
- FastAPI 测试
- https 证书 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate