Azure DevOps: параллельно запускать тесты на агентах в агентском пуле с различными настройками запуска - PullRequest
0 голосов
/ 27 января 2020

Мы настроили пул агентов с 3 агентами, помеченными им для параллельного запуска тестов. Мы хотели бы использовать различные входные значения для файла .runsettings, чтобы переопределить параметры запуска теста (overrideTestrunParameters) и распределить наши тесты по различным агентам. например,

Предположим, что в пуле агентов P1 есть связанные агенты A1, A2, A3. Нам нужен агент A1 для настройки параметра тестового запуска executeTests = Functionality1, агент A2 для настройки параметра тестового запуска executeTests = Functionality2 et c.,

Пожалуйста, дайте нам знать, если возможно использовать executePlan с параметрами Многоагентная или мультиконфигурация для достижения этого.

Ответы [ 3 ]

1 голос
/ 28 января 2020

Так что, если я не пойму неправильно, вам нужно запустить тесты с множественной конфигурацией для нескольких агентов?

Если да, я бы лучше предложил вам подать заявку с matrix в процессе, чтобы достичь того, что вы хотите.

* Примечание: Matrix - это новая функция, которая поддерживает только конвейер YAML . Если вы хотите использовать matrix на своей стороне, вам пришлось использовать YAML для настройки своего конвейера. *

Для того, как применить matrix в этом сценарии, вы Ниже приведен простой пример:

strategy:
  matrix:
    execTest1:
      agentname: "Agent-V1"
      executeTests: "Functionality1"
    execTest2:
      agentname: "Agent-V2"
      executeTests: "Functionality2"
    execTest3:
      agentname: "Agent-V3"
      executeTests: "Functionality3"
  maxParallel: 3

pool:
  name: '{pool name}'
  demand:
  - agent-name -equals $(agentname)

...
...

При таком определении YAML он может запускать задание одновременно и с другой конфигурацией. Кроме того, для указанного агента выполняется другая конфигурация.

Примечание. Убедитесь, что ваш проект поддерживает параллельное использование.

Подробнее см. this .

1 голос
/ 30 января 2020

Мне удалось найти решение для моего случая, выполнив следующие действия:

  1. Добавить группу переменных в конвейер с именем executeTests и назначить имена, значения для соответствующей группы переменных как * 1005. * et c.,
  2. Добавлено несколько заданий агентов в одном конвейере и назначено Override test run parameters с - (переменная test.runsetting) $ (Functionality1) et c для агентов A1, A2, A3

Вышеуказанные тесты выполняются параллельно на основе настроек, доступных для каждого задания агента

0 голосов
/ 27 января 2020

Использование разных настроек выполнения или даже настроек переопределения не поддерживается. Тестовое задание ожидает, что оно будет согласованным для всех агентов. Он будет использовать тот, который настроен для первого запуска тестового задания. Например, если вы передадите переопределенную переменную $ (Agent.Name), она будет использовать имя первого агента независимо от того, какой агент его подобрал.

Единственный способ, которым мы нашли это, - это обработать это в нашем тестовом фреймворке кода. Вместо загрузки из настроек выполнения мы устанавливаем переменные среды на агенте за шаг до тестовой задачи. Затем наш тестовый фреймворк загрузится из переменной окружения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...