是否可以更改倾城时间轴,以便为每个Selenium节点显示不同的时间轴?

时间:2016-09-02 08:44:14

标签: allure

我在Jenkins上运行了一些Selenium测试,其中有一些由Selenium Grid管理的Selenium节点。对于报告,我使用Allure插件。之后很难看出测试运行的是哪个selenium节点(目前我使用Step info执行此操作,但这样我首先必须单击测试详细信息才能看到它)。

所以我认为改变Allure Report中的时间线可能是一个好主意,因此不是在执行的Jenkins主机下列出所有测试,每个Selenium节点可能有不同的时间线。我没有找到办法做到这一点,或者生成时间轴的地方,所以我只是问这是否有可能,如果是的话我在哪里可以实现呢?或者您是否有任何其他想法如何更清楚地确定测试浏览器在哪个节点上执行?

1 个答案:

答案 0 :(得分:1)

确实可以更改时间轴页面的标题。也可以有多个标题。

对于每个测试用例,都会创建一个文件。在测试用例描述部分中有标签。标签可以使用多个名称制作,但是对于时间线,有两个会影响您正在寻找的内容:

  • 螺纹
  • 宿主

对于每个找到的主机,生成标题栏,并且对于每个找到的唯一线程,生成线程行。对于每个找到的具有该线程的测试用例,在测试用例期间添加一个块。

“测试用例”部分在XML文件中如下所示:

<test-case severity="None" start="1483868031834" status="passed" stop="1483868031840">
  <description>Test 1</description>
  <name>Test 1</name>
  <labels>
    <label name="thread" value="28216"/>
    <label name="host" value="Apple"/>
    </labels>
  <attachments/>
  ...

文件的其余部分包含我相信您已经熟悉的步骤。

- 编辑 -

您可以通过调用

来实现此目的
  Allure.LIFECYCLE.fire(new CustomTestCaseEvent(host));

CustomTestCaseEvent可能如下所示(可能有更优雅的方法):

public class CustomTestCaseEvent implements TestCaseEvent {
final private String host;
public CustomTestCaseEvent(final String host) {
    this.host = host;
}
@Override
public void process(final TestCaseResult context) {
    for (final Label label : context.getLabels()) {
        if ("host".equals(label.getName())) {
            label.setValue(host);
        }
    }
}
}