✅ Allure 历史记录的原理简述:
Allure 会为每条用例计算一个 historyId(基于测试函数名和参数等生成的哈希值),并在 Jenkins 每次构建时将上次的 history 文件复制到 allure-results 中来进行比对。
🎯 可能导致 “没有历史记录” 的原因:
测试用例的名称或参数发生变化
如果用例名变了、或参数化的参数值不同,会导致 historyId 变化,Allure 会认为是 “新用例”。
上次构建的 history 数据未正确保存到当前构建
Jenkins 需要在构建时,将上一个构建的 allure-results/history 目录复制到当前的 allure-results 中,否则没有 “历史”。
pytest-allure 没有生成正确的 historyId
在某些场景下(特别是动态生成用例或使用了不规范的参数名),可能导致 historyId 计算不一致。
✅ 正确设置历史记录的做法:
cp -r previous_build/allure-report/history current_build/allure-results/
示例(Pipeline 脚本):
stage('Run Tests') {
steps {
script {
// 假设你将上次构建的 history 存在 artifacts 中
sh 'cp -r ${WORKSPACE}/previous_allure_report/history ${WORKSPACE}/allure-results || true'
sh 'pytest --alluredir=allure-results'
}
}
}
对于参数化用例,尽量使用 @pytest.mark.parametrize 的 ids 参数来保持用例名称稳定。
@pytest.mark.parametrize("user_input", [1, 2], ids=["input_1", "input_2"])
def test_example(user_input):
...
✅ 推荐补充做法:
在 Jenkins 中将构建 artifacts 中的 allure-results 和 allure-report 保留并归档。
在 Allure Commandline 中使用 --clean 但确保历史文件提前合并进来。
以上是 ChatGPT 的回复,我试了一下,主要就是将旧报告中的 history 文件夹拷贝出来,再放进新的 allure-results 目录中,在生成测试报告,就会有历史记录了。历史记录只会记录是否成功,不能查看详细信息,感觉用处不大。
其他的有什么推荐呢
咱俩一样,先苟着吧
先点击下拉选项框 再点击下拉选项框的内容就可以吧,我用 playwright 就是这么操作的
让开发或运维加一下 ip 白名单
感谢大佬 我用 redis 试了一下是可以的
本地运行是单进程所以没问题,多进程有问题
playwright
官网:https://playwright.dev/python/docs/intro
报什么错误呀,如果是 element click intercepted
方式一:
next_btn = driver.find_element(By.XPATH,'xpath')
driver.execute_script("arguments[0].click();", next_btn)# 点击
方式二:
actions = ActionChains(driver)
actions.move_to_element(element).click().perform()
已添加
添加一个临界部分控制器
https://testerhome.com/topics/40809
2 核 2G 就可以
太牛了 有没有体验地址呀
可以 学到了
请求登录接口用了多久
你用的是什么浏览器
没复现呢,重新登录一下试试呢,可能是当时环境正在更新
直接拿去用
可以了
可以了
其实测试报告没必要上传到 gitlab 吧
如果必须要上传,还是要分目录