问题一:使用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,历史数据中含有以前执行的测试结果。
- 使用命令将history中的文件都复制到新文件夹中
xcopy /E /I .\report\html\history .\allure-results\history- xcopy 是 Windows 专为"复制文件夹(目录)
- /E:复制所有子文件夹,包括空文件夹
- /I:如果目标文件夹(.\allure-results\history)不存在,/I 会直接告诉系统"这是一个文件夹,请自动创建",不会弹窗问你是文件还是目录。如果没有 /I,CMD 会卡住让你手动输入 D(目录)或 F(文件)

- 将历史数据和新数据一起生成报告:
allure generate ./allure-results -o ./allure-report --clean- 新文件夹allure-results中的json文件和历史数据一起生成新的报告,将他放到新的报告文件夹allure-report。

结果-带有趋势的html报告

- 新文件夹allure-results中的json文件和历史数据一起生成新的报告,将他放到新的报告文件夹allure-report。
问题三:jenkins集成+allure
- 启动jenkins;
- jenkins上安装allure:插件管理中安装allure

- 配置allure插件:配置别买和allureCommandlines的根目录

- python上,将代码上传到gitee仓库中
- 构建任务:构建freestyle项目
- 配置任务:
- 源码管理来自gitee上代码;
- 定时执行:H 8 * * * 早上8点定时执行
- 命令:windows命令窗口输入:pytest
- 报告:allure report,设置报告路径

- 邮件通知:设置发件收件人以及触发动作;
- 构建任务-得到测试报告

