正好我也碰到这个问题,然后试了一下是可行的
新加了一个 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 的结果
是可以区分,但是我是想不同的 salve 即使跑相同的 case 最后回传结果生成 report 的时候也能在一个 report 上显示出来
然后最后结果都回传到 master 然后再生成 report