Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Дмитрий Пронин – Python для веба

1,168 views

Published on

В докладе мы рассмотрим на примере работы с RESTful интерфейсом сервиса через Json, как написать автоматизированное тестирование с нуля. Особое внимание уделим настройке системных и юнит-тестов и постановке системы CI.

Published in: Internet
  • Be the first to comment

Дмитрий Пронин – Python для веба

  1. 1. Python for WEB with unit and system tests
  2. 2. Используемые технологии ● Python ● Flask ● JSON ● Jenkins CI ● *nix ● MongoDB ● cURL ● PyCharm IDE ● AngularJS
  3. 3. План ● Зачем нужно автоматическое тестирование ● Как написать автотесты на Python ● Проверка работы всей системы
  4. 4. Зачем нужно автоматическое тестирование ? Малый проект Большой проект Код проекта Время тестирования
  5. 5. Что хотим получить Product API CI server Unit tests System testscommit DB DB
  6. 6. 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
  7. 7. API http://en.wikipedia.org/wiki/Application_programming_interface http://apievangelist.com/
  8. 8. Разработка API /position ● post (lat, lon) - создаем запись ● get (limit=10) - получаем список записей ● delete (id) - удаляем одну или весь список записей { "_id" : ObjectId("5351349a5c77020f9be5da0f"), "lat" : "56.327358", "long" : "43.985191" }
  9. 9. Ручное тестирование с cURL POST curl -X POST -H "Content-Type: application/json" -d '{"lat": "56.327358", "lon":"43.985191"}' 127.0.0.1:5000/position GET curl -X GET 127.0.0.1:5000/position curl -X GET 127.0.0.1:5000/position?limit=2 DELETE curl -X DELETE 127.0.0.1:5000/position curl -X DELETE 127.0.0.1:5000/position?id=5352f2d95c770219cf11ea13 postman!
  10. 10. Написание Unit тестов
  11. 11. Написание System тестов
  12. 12. Настройка системы непрерывной интеграции
  13. 13. Просмотр работы тестов
  14. 14. Верификация работы тестов
  15. 15. Подготовка данных для работы
  16. 16. Вопросы?
  17. 17. Ресурсы GitHub project https://github.com/heiscoming/python_web_tests Контакты dpronin@yandex.ru
  18. 18. Спасибо

×