我在 jenkins 的服务器上能找到每个 job 的 allure-report.zip,但是我发现有时候同样的 job 两次运行之间,我解压 allure-repot.zip,在 ata/test-cases 下面的 json 文件中发现 name 和 fullName 一样的 case 但是对应的 historyId 是不一样的,我觉得这应该就是结果没有显示在下一次结果的 history 里的原因,但是我不知道为啥这个 hitoryid 会不一样。是哪里会导致这个 historyid 改变啊?
我在 jenkins 的服务器上能找到每个 job 的 allure-report.zip,但是我发现有时候同样的 job 两次运行之间,我解压 allure-repot.zip,在 ata/test-cases 下面的 json 文件中发现 name 和 fullName 一样的 case 但是对应的 historyId 是不一样的,我觉得这应该就是结果没有显示在下一次结果的 history 里的原因,但是我不知道为啥这个 hitoryid 会不一样
好的,下周回去试试,其实我们也就是主要想看看是否成功,如果要查看详细信息需要保存的信息就太多了。感谢
正好我也碰到这个问题,然后试了一下是可行的
新加了一个 conftest.py 文件,文件内容如下:
from server.config import config
def pytest_itemcollected(item):
"""
Modify the _nodeid attribute of the item by appending the node name from the config
to the beginning of the original nodeid.
"""
item._nodeid = f'{config.node_name}.{item.nodeid}'
然后问题就解决了
大佬,请教个问题,pytest 多机并行(在 jenkins 上多个 slave 运行)结束后,如何生成一份完整的 allure 报告,把多设备的数据在一份 allure 报告内区分开来(现在只会显示一个 slave 的数据,其它的 salve 相同的 case 会显示在 history 中)。我用了下面的这种方式,还是不行:
@allure.suite(config.node_name)
@allure.parent_suite(config.node_name)
@allure.feature(config.node_name)
@pytest.mark.parametrize("test_step", test_steps, ids=test_ids)
def test_input_rows(test_step, request):
........
该如何在报告中显示所有的 slave 的所有 case 情况啊?
想问一下楼主是在测试方法的上面加@allure.feature("xxx") 这个装饰器吗?
想问一下怎么动态修改测试用例名?是用 allure.dynamic.title 吗?
我回传了,把所有生成的 json 文件都放到了一个文件夹下,但是这样生成显示的只有一个 slave 的 case,另外一个 slave 的 case 可能是因为名字是一样的所以被放到了 history 下面显示。
我在测试方法上加了这个装饰器:@allure.suite(config.node_name),同时在测试方法里加了 allure.dynamic.title(f"{config.node_name}-{test_id}"),然后再不同的 slave 上运行同样的 case,结果在 jenkins 的报告中只看到了一个 slave 的结果