Определить Codeception в производственной среде

Мы запускаем наши тесты Codeception (как тесты дыма) в нашей производственной среде через Browserstack. Есть ли простой способ идентифицировать Codeception? Через настройку пользовательских заголовков, user-agent или куки?

Причина в том, что мы постоянно проводим A / B-тестирование на нашем сайте и хотим всегда показывать контрольный сегмент Codeception.

Я не могу найти какую-либо документацию по этому поводу.

1

Решение

Возможно, вы можете определить это, посмотрев строку агента пользователя. Например, мы используем Chrome без головы (+WebDriver) и это приятно представить себя:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/63.0.3239.84 HeadlessChrome/63.0.3239.84 Safari/537.36

…но вы не можете быть на 100% уверены, что это вы, потому что, теоретически, кто-то другой может запустить его и на вашем сайте.

Кроме того, вы можете переопределить amOnPage() метод в вашем приемочном тестере, чтобы установить заголовок перед вызовом parent::amOnPage():

public function amOnPage($page)
{
$this->haveHttpHeader('x-codeception', '1');
parent::amOnPage($page);
}

Только не забудьте переопределить amOnUrl() тоже, потому что он будет попадать на страницу так же, как amOnPage(), в то время как amOnSubdomain() только переключает поддомен без посещения его.

0

Другие решения

Это зависит от того, как вы используете это. Вы, вероятно, говорите о проведении приемочного теста, хотя эту концепцию можно использовать для любых действий, которые управляют взаимодействием браузера от первого лица. Так что вы можете сделать что-то вроде:

$I->amOnPage('/homepage');
$I->loginAsAdmin();

Таким образом, в зависимости от того, что вы делаете, вы можете идентифицировать Codeception с помощью любых обычных действий входа в систему, которые вы выполняли. Например, если вы тестировали WordPress, вы можете создать имя пользователя «CodeceptTester» и просто наблюдать за этим логином. Трудно установить фактические заголовки. Вы можете сделать это с PHPbrowser, но не с Selenium. На самом деле, я уверен, что вы не можете установить заголовки Selenium с помощью Codeception, но для браузеров есть плагины, которые могут это делать. Вы можете сделать это с PhantomJS, но я не знаю как.

установка заголовка запроса в селене

http://phptest.club/t/useragent-in-codeception/186/3

0

Это то, что я в итоге сделал. В accept.test.yml я использовал браузер chrome (для меня это не имело значения), переписал user-agent с помощью args и искал это в моей среде prod.

capabilities:
chromeOptions:
args: ["--user-agent=SmokeTesting"]
0
По вопросам рекламы [email protected]