Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Где хранить логин и пароль при тестировании авторизации в системе

#php #codeception


Использую Codeception для выполнения приемочного тестирования. Для проверки входа
в систему есть вот такой тестовый сценарий:

amOnPage('/login');
$I->fillField('Login', '')
$I->fillField('Password', '');
$I->click('Login');
$I->see('You are now logged in!');


Есть ли какой-то конфиг, куда можно вынести пару "логин/пароль" (для входа в целевую
систему), чтобы не прописывать ее в каждом сценарии, требующим авторизации?

Возможно есть способ как-то использовать конфигурационный файл самого Codeception
для хранения в нем произвольных параметров?
    


Ответы

Ответ 1



Существует специальный модуль (justblackbird/codeception-config-module), который позволяет определять произвольные параметры в конфигурационном файле самого Codeception (например в acceptance.suite.yml) и использовать их в тестовых сценариях. Приведу пример использования этого модуля. acceptance.suite.yml: class_name: AcceptanceTester modules: enabled: - Config: login: '' password: '' - PhpBrowser: url: 'https://example.com/' - \Helper\Acceptance LoginCept.php: amOnPage('/login'); $I->fillField('Login', $I->grabFromConfig('login')) $I->fillField('Password', $I->grabFromConfig('password')); $I->click('Login'); $I->see('You are now logged in!'); Замечание: Может показаться, что данное решение позволяет хранить собственные параметры только в конфиге Codeception, но это не так. Codeception "из коробки" умеет импортировать сторонние конфигурационные файлы (.yml, .env, .ini) и даже переменные окружения чтобы использовать их в качестве переменных в своем конфигурационном файле. Подробнее об этой возможности можно почитать в документации.

Ответ 2



Такой конфиг есть. Он называется _bootstrap.php и может находиться в каталоге набора тестов, так и в общем каталоге для всех тестов (т.е. в tests/acceptance/_bootstrap.php или в tests/_bootstrap.php. Этот файл выполняется перед всеми тестами, а значит всё, определенное в нём, будет видно в самих тестах: fillField('Login', $login) $I->fillField('Password', $password); Об этом файле в документации. В этом файле вы можете не просто задать какие-то константы, но и делать практически все что угодно. Например, получить реквизиты из какого-то другого файла или программы, специфичных для окружения или не отслеживаемых в VCS из соображения конфиденциальности.

Комментариев нет:

Отправить комментарий