Получить данные из response из post-а в GUI

api
testng
Теги: #<Tag:0x00007f7b68368d88> #<Tag:0x00007f7b68368c20>

(B Mar Cg) #1

Проблема (Вопрос) заключается …
И так всем доброго вечера!
Имеются обычные gui тесты на TestNG
Есть небольшой тест с подтверждением регистрации, стандартно вводим мыло нажимаем отправить,
получаем новый пароль на почту.

Но чтобы ускорить процесс, хочу отказаться от хождения на почту для получения пароля
в базе пароль тоже не вариант брать.

Вот отсюда вопрос, при нажатии кнопки “Отправить” генерируется пароль и отправляется на почту, через обычный post и он есть так же в response.
То есть новый пароль который отправляется на почту я вижу прям в body и в response

Возможно ли взять данные (пароль) прям из body или response? то есть не делая get и так далее…


(Fiodar Motin) #2

Первый способ
Подключить Rest assured -> отправить post -> получить reponse -> сохранить его в строку например -> передать эту строку уже UI тесту.

Второй способ
Подключить BMP (browser mob proxy) и ловить что то там (провозитесь для получения body в 5 раз дольше чем с первым способом).

Третий способ
Скорее всего вы не туда копатет и первые два способа не помогут)), без подтверждения email ваша учетка будет всеровно невалидная и работы с мылом не избежать. Решить проблему можно еще разными сервисами или подключить JavaMail


(B Mar Cg) #3

Этот способ не подходит, так как в UI поле для ввода пароля появляется только после нажатия на кнопку “Отправить”, то есть пока я не нажму кнопку, то поле не появится для ввода.

Это один из запасных вариантов но это колхоз, то есть нажимать кнопку чтобы появилось поле ввода, затем уже через Rest assured отправлять post и оттуда брать пароль. (Колхоз в том что будет производится две отправки пароля)

Хотелось бы без колхоза, вдруг Rest assured как то может брать response не из своих запросов.

Цитата Третий способ

Валидация учетки как раз и происходит при вводе этого пароля :slight_smile: поэтому с этим проблем нет.


(Ramon Menezes) #4

BrowserMobProxy и restAssured вам не подойдут так как сам реквест ничего не даст (пероль генериться на стороне сервера) ни ответ (в нем ничего ползного не будет так как смс с кодом отправляеться на почту)
остаеться 2 варианта:

  1. использовать какой то JavaMail или сторонние mail сервисы
  2. поговорить с девами может они где то хранят копию того что слали (база, админка etc. )

P.S. лично я использовал 2й вариант, были локальные копии всех смс и я успешно их юзал


(B Mar Cg) #5

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

Просьба без сообщений “пароль генерится на сервере”. Я могу взять postman, отправить post указав любой ящик и любой пароль и мне придет письмо с этим же паролем, не производя никаких подтверждений могу авторизоваться в системе.

Возможно BrowserMobProxy решает мою задачу, так как мне нужно получить отправляемый body, но мне нужен один запрос, а я как понимаю он будет парсить все запросы на вход и на выход, что может повлиять на производительность.


(Евгений) #6

Кстати, на сайте есть функция поиска :slight_smile: возможно вашу задачу уже кто-то решал.
Вот пример решенного вопроса BrowserMob Proxy взять полностью всё тело.


(Юрий Аксютин) #7

Вариант первый, как пишут выше - использовать прокси
Вариант второй, более интересный, перехватывать запросы на уровне JavaScript
Я так делаю в своем проекте. Не могу привести пример, потому что меня интересовал только запрос и дополнительные данные которые туда подставляют(application insight javascript)
Вам необходимо перехватывать последнюю стадию запроса - сам респонс(их там около 4, могу ошибаться)
По запросу: intercept ajax requests javascript, выдает сотни ответов


Перехватчик ставлю на уровне Selenium Execute JavaScript, результат пишу в лог файл


(Vatslau) #8

ИМХО долбодятлам разрботчикам руки отрывать если пароль приходит в посте )


(Funker) #9

Browser mob действительно очень медленный, есть еще вариант зарегистрировать пользователя через обычный post реквест и там уже данные брать