allure总结--解决版本不相容,没有trend(生成原始报告+复制history后在一起生成新报告)+jenkins集成

问题一:使用allure生成测试报告报错:AttributeError: 'str' object has no attribute 'isascii'

出现 :同样的脚本使用 pytest 的 --html=report/report.html 时没有报错,但当我把配置改成 --alluredir ./report 后,就报属性错误,提示没有 isascii 这个属性。isascii 是 ASCII 码相关的判断方法,可以确定是解码问题。

原因 :我的 Python 版本是 3.6,而代码尝试调用了 Python 3.7+ 才引入的 str.isascii() 方法,因此报错。深层原因是:pytest-allure 在收集测试节点内容时,需要处理包含中文的内容,而 isascii() 是 Python 3.7 中用于对字符串进行解码判断的方法,Python 3.6 中还没有这个方法。

解决方法

方法一:升级 Python 版本。下载新版 Python 安装即可,同时还需配置环境变量。

方法二:将 pytest 版本降级到与 Python 3.6 兼容的版本:pip install "pytest<7.0" -U。可能还需配合 allure-pytest 版本一起降级,同时 allure 也需要与 allure-pytest 版本相容,所以可能引起连锁反应。

问题二:使用allure生成测试报告,没有趋势怎么办-三步解决。

问题:allure生成的测试报告TREND趋势中没有数据。

1、正常执行pytest,且通过generate生成html报告。打开index.html报告TREND趋势总没有数据。

原因:Allure 本身不是数据库,它不会自动记录历史。所以需要自己手动复制历史数据然后重新生成带有趋势的报告。

第一步:执行后生成原始数据

1、新增文件夹:allure-results

2、修改配置文件:--alluredir ./allure-results

3、执行pytest,生成json文件

**第二步:复制report中的历史数据到allure-results,历史数据中含有以前执行的测试结果。

  1. 使用命令将history中的文件都复制到新文件夹中xcopy /E /I .\report\html\history .\allure-results\history
    • xcopy 是 Windows 专为"复制文件夹(目录)
    • /E:复制所有子文件夹,包括空文件夹
    • /I:如果目标文件夹(.\allure-results\history)不存在,/I 会直接告诉系统"这是一个文件夹,请自动创建",不会弹窗问你是文件还是目录。如果没有 /I,CMD 会卡住让你手动输入 D(目录)或 F(文件)
  2. 将历史数据和新数据一起生成报告:allure generate ./allure-results -o ./allure-report --clean
    • 新文件夹allure-results中的json文件和历史数据一起生成新的报告,将他放到新的报告文件夹allure-report。

      结果-带有趋势的html报告

问题三:jenkins集成+allure

  1. 启动jenkins;
  2. jenkins上安装allure:插件管理中安装allure
  3. 配置allure插件:配置别买和allureCommandlines的根目录
  4. python上,将代码上传到gitee仓库中
  5. 构建任务:构建freestyle项目
  6. 配置任务:
    • 源码管理来自gitee上代码;
    • 定时执行:H 8 * * * 早上8点定时执行
    • 命令:windows命令窗口输入:pytest
    • 报告:allure report,设置报告路径
    • 邮件通知:设置发件收件人以及触发动作;
  7. 构建任务-得到测试报告
相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1232 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero072 天前
Jev 与 Laya
python·语言模型