762.95K

Презентация_3. Тестирование API

1.

2.

Меня хорошо
слышно && видно?
Напишите в чат, если есть проблемы!
Ставьте + если все хорошо

3.

Не забыть включить запись!

4.

Тестирование API
Python 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.

02
API

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.

Что такое API

18.

Что такое API
https://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.

requests
r = 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.

Спасибо
за внимание!
English     Русский Правила