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. 构建任务-得到测试报告
相关推荐
❁满城风絮*11 小时前
Claude Code 学习总结
python·agent·claude
维克兜率天13 小时前
【维克】复合型CTA:趋势+套利的双轮驱动
python·学习方法
伞伞悦读13 小时前
【第76期】两张3行表左连接变5行:主键、validate与未匹配排查完整教程
人工智能·python
用户83562907805114 小时前
使用 Python 在 Excel 中添加和自定义迷你图
后端·python
用户83562907805114 小时前
使用 Python 在 Excel 图表中添加趋势线与回归方程
后端·python
特立独行的猫A14 小时前
一份 Markdown 发十个平台:cspub 一稿多投
java·后端·python
深蓝AI14 小时前
HTTPX 超时 1 秒,接口为何还能跑 2.4 秒?
python
CyrusYiVPP15 小时前
哪个用户会再来买?RFM模型+plotly画出用户分层,数据分析实战第2期
人工智能·python
李帅51516 小时前
用 CPU 做发票识别:从 OCR 文本行到结构化明细表的 4 个硬骨头
python
happylifetree17 小时前
Python79:核心语法-面向对象基础-实例方法
python