Всем привет. Нужно залогиниться в приложение, ввести логин пароль в форму (api нету), получить в куку токен и с этим токеном пройтись по списку ссылок чтобы они возвращали 200.
Звучит как что-то, что уже сделали до меня много раз
Как это оптимально сделать в codeception? Залогинится через webdriver, а как куку передать в REST тесты? Файл сохранять? Звучит как костыль, поэтому вопросы.
Какие best practice для такой задачи?
Davert (разработчик codeception) рекомендовал эту тулзу вместо codeception, GitHub - FriendsOfPHP/Goutte: Goutte, a simple PHP Web Scraper
В codeception есть модуль REST.
Я делаю так:
Проверяю каждый метод в новом методе, аунтификация через сохраненный токен.
Что бы каждый раз не дергать метод вы можете всегда авторизовываться через сохраненный токен.
У меня аунтефикация через Bearer у вас возможно Basic поэтому метод должен быть соответствующий. Всесто amBearerAuthenticated свой.
public function authenticated(ApiTester $I)
{
// Аунтификация
$I->amBearerAuthenticated('token-correct');
$I->sendGET('/country');
$I->seeResponseCodeIs(200);
$I->seeResponseContainsJson(
[
'id' => 1,
'country_code' => 'AD',
'phone_code' => '376',
'time_zone' => 'Europe/Andorra',
]
);
// Тут проверяю что не возвращает не нужное поле
$I->dontSeeResponseJsonMatchesJsonPath('$.user_edit');
}
1 лайк