2016-09-02 5 views
0

Я запускаю селен-тесты на Дженкинсе с несколькими узлами селена, управляемыми селеновой сеткой. Для отчетности я использую плагин Allure. Трудно увидеть впоследствии, на каком узле селена, который прошел тест (в настоящее время я делаю это с информацией о шаге, но в этом случае мне сначала нужно щелкнуть по деталям тестов, чтобы увидеть его).Можно ли изменить временную шкалу Allure, чтобы она показывала другую временную шкалу для каждого Selenium Node?

Таким образом, я думал, что может быть хорошей идеей изменить временную шкалу в отчете Allure, так что вместо всех тестов, которые перечислены под исполнительным мастером Jenkins, могут быть разные временные рамки для каждого Selenium Node. Я не нашел способ сделать это, или там, где создается хронология, поэтому я просто спрашиваю, возможно ли это, и где я могу это понять, если это так? Или у вас есть другая идея, как сделать более понятным, на каком узле был запущен тестовый браузер?

+0

Я считаю, что в списках шкалы времени есть тесты, которые выполнялись в потоке. Поправьте меня если я ошибаюсь. – Thibstars

ответ

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/> 
    ... 

Остальная часть файла содержит шаги, которые я считаю, что вы уже знакомы.

- Edit -

Вы можете осуществить это с помощью вызова

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); 
     } 
    } 
} 
} 
+0

Спасибо! Мотивированный вашим ответом, я снова посмотрел на код и сумел изменить временную шкалу, как я хотел! Все, что вам нужно сделать, это запустить «TestCaseEvent» в «Allure.LIFECYCLE», который обновит значение метки для хоста. – andi17

Смежные вопросы