OpenTest уложил тест в сон - PullRequest
       29

OpenTest уложил тест в сон

0 голосов
/ 30 сентября 2018

В некоторых сложных тестах необходимо отложить выполнение теста на некоторое время.Возможно, нам нужно подождать несколько часов или дней. Чтобы не блокировать ресурсы Actor, было бы здорово иметь возможность приостановить выполнение на уровне сервера.Это запланировано или, может быть, уже как-то можно достичь?

1 Ответ

0 голосов
/ 03 октября 2018

После начала сеанса тестирования получает (резервирует) все участники теста, необходимые для выполнения всех тестов в сеансе.Актеры будут освобождены только после завершения сеанса (успешно или нет), поэтому они могут быть повторно использованы другими сеансами тестирования.Определенный участник теста может быть «задержан» на некоторый период времени, вызывая $ sleep JavaScript API в тесте, который вы, вероятно, уже знаете.Однако я не могу придумать правдоподобную логику о том, как будет работать пауза сервера OpenTest.Я понимаю, что вы хотели бы иметь возможность повторно использовать этих заблокированных участников теста, но я не думаю, что это хорошая идея, потому что они потенциально (и наиболее вероятно) сохраняют какое-то состояние для теста, который они выполняли, когда их останавливали,Лучшим подходом было бы иметь некоторую логику на вашем CI-сервере (или любой другой процесс, запускающий тестовую сессию) и выполнить любые проверки, чтобы увидеть, есть ли у вас ресурсы, которые вам нужны, перед началом сессии, если это возможно.Если вы описываете конкретный вариант использования, я могу попытаться быть более полезным.

Редактировать: Правильный способ решения описанного вами варианта использования - найти способ определения восходящей системы, которая выполняет обработку заказа.запускать выполнение по требованию и не нужно ждать один день для выполнения теста (возможно, попросите разработчиков реализовать простой API, который вы можете вызвать).Если это не вариант, и вам абсолютно необходимо подождать, правильный способ решить эту проблему - иметь достаточное количество участников тестирования, чтобы обрабатывать количество тестов, которые вы хотите выполнить параллельно.Тестируемый субъект потребляет от 150 до 200 МБ памяти, поэтому это будет единственное, что ограничивает число действующих лиц, которые вы можете одновременно выполнять на одной машине.В будущем OpenTest будет иметь возможность выделять несколько акторов в одном процессе, так что это станет проблемой.

Как только тестовый актер начинает работу по выполнению теста, это небезопасночтобы он выполнял любую другую работу, потому что тесты обычно должны сохранять какое-то состояние (например, вы создаете переменную для хранения номера заказа для только что размещенного вами заказа).Если один и тот же субъект выполняет два теста одновременно, они могут перезаписать состояние друг друга, и вы столкнетесь с проблемами, которые очень трудно устранить.

...