Дмитрий Пронин – python для веба
DESCRIPTION
В докладе мы рассмотрим на примере работы с RESTful интерфейсом сервиса через Json, как написать автоматизированное тестирование с нуля. Особое внимание уделим настройке системных и юнит-тестов и постановке системы CI.TRANSCRIPT
Python for WEBwith unit and system tests
Используемые технологии
● Python● Flask● JSON● Jenkins CI● *nix ● MongoDB● cURL● PyCharm IDE● AngularJS
План
● Зачем нужно автоматическое тестирование● Как написать автотесты на Python● Проверка работы всей системы
Зачем нужно автоматическое тестирование ?
Малый проект
Большой проект
Код проекта
Время тестирования
Что хотим получить
Product API CI server Unit tests System testscommit
DB DB
Json
{ "response": { "audio": { "aid": "132924633", "artist": "Simon and Garfunkel", "duration": "189", "lyrics_id": "7396635", "owner_id": "189814", "title": "The Sounds of Silence (original)", "url": "http://cs4376.vkontakte.ru/u3141879/audio/2153ed0466be.mp3" }, "text": "Simon and Garfunkel – The Sounds of Silence (original)" }}
http://vk.com/pages?oid=-1&p=status.get
API
http://en.wikipedia.org/wiki/Application_programming_interface
http://apievangelist.com/
Разработка API
/position
● post (lat, lon) - создаем запись ● get (limit=10) - получаем список записей● delete (id) - удаляем одну или весь список записей
{ "_id" : ObjectId("5351349a5c77020f9be5da0f"), "lat" : "56.327358", "long" : "43.985191" }
Ручное тестирование с cURL
POSTcurl -X POST -H "Content-Type: application/json" -d '{"lat": "56.327358", "lon":"43.985191"}' 127.0.0.1:5000/position
GETcurl -X GET 127.0.0.1:5000/position
curl -X GET 127.0.0.1:5000/position?limit=2
DELETEcurl -X DELETE 127.0.0.1:5000/position
curl -X DELETE 127.0.0.1:5000/position?id=5352f2d95c770219cf11ea13
postman!
Написание Unit тестов
Написание System тестов
Настройка системы непрерывной интеграции
Просмотр работы тестов
Верификация работы тестов
Подготовка данных для работы
Вопросы?
Спасибо