Похожие презентации:
Презентация_3. Тестирование API
1.
2.
Меня хорошослышно && видно?
Напишите в чат, если есть проблемы!
Ставьте + если все хорошо
3.
Не забыть включить запись!4.
Тестирование APIPython QA Engineer
5.
Михаил ЧирковQA Automation Engineer в ivi.ru (Web, Mobile)
6.
Правила вебинараБуду делать паузы между блоками для
просмотра вопросов.
Чтобы выделить свой вопрос в чате пишите
так “Вопрос: <текст вопроса>”
Off-topic или то что не успеем обсуждаем в
Slack #канал группы или #general
7.
Цели вебинара1. Аргументы командной строки
a.
b.
c.
Модуль argparse
Передача параметров в pytest
Параметризация в Pytest
2. Тестирование REST API
a.
b.
Что такое API и REST
Принципы тестирования
3. Библиотеки requests и json
4. Bonus: Декораторы в python
8.
Репозиторийhttps://github.com/kon ic/python_qa_api
9.
0Аргументы командной
строки (argparse)
10.
Демонстрацияimport argparse
parser = argparse.ArgumentParser()
parser.add_argument('--method', '-m', action='store',
help='Method to make request',
default='GET')
parser.add_argument('--url', '-u', action='store',
help='Url to make request to',
required=True)
args = parser.parse_args()
print(args) # Словарь с аргументами
11.
ВопросыДополнительные материалы:
https://docs.python.org/3/library/argparse.html
12.
01Передача параметров
в pytest
13.
Демонстрация# content of conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption(
"--cmdopt",
action="store",
default="type1",
help="my option: type1 or type2"
)
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
14.
ВопросыДополнительные материалы:
https://docs.pytest.org/en/latest/example/simple.html
15.
02API
16.
Что такое APIЧто такое API?
Application programming interface (API) is a set of subroutine definitions, communication
protocols, and tools for building software. In general terms, it is a set of clearly defined
methods of communication among various components. A good API makes it easier to
develop a computer program by providing all the building blocks, which are then put
together by the programmer.
Что такое REST?
Representational State Transfer (REST) is a software architectural style that defines a set of
constraints to be used for creating Web services. Web services that conform to the REST
architectural style, called RESTful Web services (RWS), provide interoperability between
computer systems on the Internet. RESTful Web services allow the requesting systems to
access and manipulate textual representations of Web resources by using a uniform and
predefined set of stateless operations. Other kinds of Web services, such as SOAP Web
services, expose their own arbitrary sets of operations.
17.
Что такое API18.
Что такое APIhttps://api.spacexdata.com/
https://jsonplaceholder.typicode.com/
https://rapidapi.com/
19.
ВопросыДополнительные материалы:
https://www.integrapay.com.au/the-differences-between-api-types/
20.
03Библиотеки
requests / json
21.
requestsr = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}
22.
json>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps({"c": 0, "b": 0, "a": 0},
sort_keys=True))
{"a": 0, "b": 0, "c": 0}
23.
ВопросыДополнительные материалы:
https://2.python-requests.org/en/master/#
https://www.pythonforbeginners.com/requests/using-requests-in-python
24.
04Параметризация
фикстур
25.
Параметризация• Параметризуемые фикстуры
• Параметризуемые тесты
• Комбинированная параметризация
26.
ВопросыДополнительные материалы:
https://docs.pytest.org/en/5.0.0/example/parametrize.html
27.
05Декораторы
28.
Декораторы• https://python-scripts.com/decorators
• https://pythonworld.ru/osnovy/dekoratory.html
29.
Что сегодня прошли• Передача параметров
• Библиотеки requests / json
• API, тестирование API
• Закрепили параметризацию
• Декораторы
30.
Вопросы31.
Опрос о занятиив личном кабинете
32.
Спасибоза внимание!