Size: a a a

QA — Автоматизация

2020 April 02

LY

Lev Yarushin in QA — Автоматизация
Артем Жуков
Парни посоветуйте библиотечку которой можно мокать внешние апи сервисы?
mmock
источник

V

Vlad in QA — Автоматизация
Добрый вечер коммьюнити.
Api запрос пишется на с использованием Python 3.7.4 и библиотеки requests.
Backend стек: PHP, Symphony api
суть проблемы:
так выглядит метод запроса:
def put_personal_info(self, user_id, token, first_name, last_name, gender, age):
url = "{}/v0.1/users/{}".format(api_url, user_id)
headers = some_header
data = {
   'firstName': first_name,
   'lastName': last_name,
   'gender': gender_id,
   'age': age,

}
response = requests.put(url, data, headers=headers)


в тесте отправляю все вот так:
put_personal_info(user_id, token, “firstName”, “lastName”, 1)
получаю ответ от сервера что параметр gender отправлен как стринга, а я передаю ее как int

подскажите, были ли у вас такие ситуации и как вы их преодолели?
источник

R(

Roman (rpwheeler) in QA — Автоматизация
А если завернуть gender_id в int()?
источник

V

Vlad in QA — Автоматизация
тоже самое
источник

R(

Roman (rpwheeler) in QA — Автоматизация
У вас в коде в параметрах  gender , а в создании дата-структуры gender_id .
источник

V

Vlad in QA — Автоматизация
406 возвращается если оберну data в json.dump(data)
источник

V

Vlad in QA — Автоматизация
там все ок
источник

V

Vlad in QA — Автоматизация
Roman (rpwheeler)
У вас в коде в параметрах  gender , а в создании дата-структуры gender_id .
это при изминении данных в самом сообщении упустил ошибочку

в исходном материали везде все ок, иначе ошибку заметил бы
источник

R(

Roman (rpwheeler) in QA — Автоматизация
put_personal_info(user_id, token, “firstName”, “lastName”, 1) -- тут Вы отдаёте меньше параметров чем требует метод.
источник

V

Vlad in QA — Автоматизация
Roman (rpwheeler)
put_personal_info(user_id, token, “firstName”, “lastName”, 1) -- тут Вы отдаёте меньше параметров чем требует метод.
дело ж не в этом то
источник

V

Vlad in QA — Автоматизация
данные формируются, запрос уходит.
источник

V

Vlad in QA — Автоматизация
приходит ответ что бэкэнд принял значение параметра gender  как стрингу
источник

V

Vlad in QA — Автоматизация
а не как int,  при том что я отправляю именно int
источник

V

Vlad in QA — Автоматизация
при отправки таких же/этих же данных через Постман - все проходит великолепно.
поэтому локация ошибки - это процесс отправки запроса самим тестом.
источник

ES

Eugene Stogniy in QA — Автоматизация
Vlad
при отправки таких же/этих же данных через Постман - все проходит великолепно.
поэтому локация ошибки - это процесс отправки запроса самим тестом.
Попытайтесь фиддлером отловить что вы посылаете если число то баг в бекенде
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Vlad
при отправки таких же/этих же данных через Постман - все проходит великолепно.
поэтому локация ошибки - это процесс отправки запроса самим тестом.
1) Есть сервис который отсылает обратно ответ, можно попытаться понять что отсылается ( https://docs.postman-echo.com/?version=latest ).

2) Попробуйте сами формировать JSON (через json.dumps) , и передавать post вместо data = dict , json = my_json

my_json_dumps = json.dumps(data)

response2 = requests.post(url, json=my_json)
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Или, если через json.dumps не получится, вообще собрать свой json из параметров как брутальную стрингу и отправить так.
источник

V

Vlad in QA — Автоматизация
Roman (rpwheeler)
Или, если через json.dumps не получится, вообще собрать свой json из параметров как брутальную стрингу и отправить так.
1. попробую
2. вроде пробовал и возвращался ответ 406

возможно нашел в чем проблема. Content-Type в заголовках может быть не тот. пытаюсь отдебажить и пожанглировать.
источник

I

IceCream time 🍧🍧🍧 in QA — Автоматизация
Привет. А всегда вы используете в шагах взаимодействие с ui, или если  какая-то функция уже протестирована в другом тесте, то используете api для ускорения?
Пример: протестировали один раз регистрацию нового юзера через форму регистрации, а для теста реферальной системы и регисьрации юзеров под этот тест используем api регистрации
источник

t

to the next step! in QA — Автоматизация
IceCream time 🍧🍧🍧
Привет. А всегда вы используете в шагах взаимодействие с ui, или если  какая-то функция уже протестирована в другом тесте, то используете api для ускорения?
Пример: протестировали один раз регистрацию нового юзера через форму регистрации, а для теста реферальной системы и регисьрации юзеров под этот тест используем api регистрации
по идее можно, тк покрытие ui в автотестах минимальное, к примеру у нас на проекте 90% покрытие апи тестов
источник