История создания Воробей — очень молодой проект. Возник как надстройка над инструментом удар — DSL написан на перл для разработки тестовых сценариев для различных веб-приложений.
Описание swat — это отдельная тема, возможно, я осветлю ее в будущих публикациях, но в двух словах, swat — это инструмент для автоматизации веб-тестирования, основанный на использовании утилиты завиток и позволяет создавать произвольные HTTP-запросы и проверять возвращаемый контент.
Установка Воробей
Ставим как обычно cpan модуль.
После установки в текущем PATH становится доступна утилита sparrow, собственно консольный клиент, предоставляющий весь набор функций фреймворка.$ sudo cpanm Sparrow
Идеология Воробья
Sparrow спроектирован как простой консольный клиент, позволяющий быстро настраивать и запускать тесты для различных веб-приложений.
В этом инструменте есть два типа основных операций: создание тестовой структуры и установка и запуск плагинов sparrow.
Структура проекта Воробей
На данный момент существует три основных объекта, над которыми работает Sparrow: проекты, сайты и плагины.Проекты — это абстракции, позволяющие описывать группы тестируемых приложений.
У проекта есть идентификатор, набор плагинов и набор сайтов для тестирования.
Вот как это может выглядеть в выводе консоли при запуске утилиты sparrow. Отобразим структуру проекта воробья: $ sparrow project foo
# sparrow environment initialzed at /home/vagrant/sparrow
project foo info:
[plugins]
swat-mongodb-http
swat-pintod
swat-app-docsisious
metacpan
swat-lighttpd
swat-yars
swat-nginx
[sites]
mongodb-http-server [127.0.0.1:28017]
pintod-server [127.0.0.1:3111]
metacpan [ http://metacpan.org ]
lighttpd [127.0.0.1:8080]
thorsen [ http://home.thorsen.pm/docsisious ]
yars_server [ localhost:9001 ]
localhost [127.0.0.1]
Из приведенного выше вывода можно понять, что данный проект содержит набор плагинов (mongodb-http-server, pintod-server, .
) для тестирования соответствующих приложений и набор сайтов, о которых пойдет речь дальше.
Сайты воробьев
Сайты в sparrow описывают произвольное тестируемое веб-приложение.Помимо идентификатора, сайт должен иметь базовый URL-адрес , который является «корневым» URL-адресом для http-запросов, которые будут поступать во время тестов.
В большинстве случаев базовый URL-адрес может быть таким же, как полное доменное имя или IP-адрес сервера тестируемого приложения, причем указывать схему и порт необязательно.
Точнее, базовый URL-адрес должен быть совместим с форматом свернуть URL-адрес .
Также стоит отметить, что несмотря на то, что Curl позволяет взаимодействовать с другими протоколами (ftp,.
), sparrow в связке с удар использовал только для тестирования приложений по протоколу http.
Вот пример создания сайта в проекте sparrow в случае такого приложения, как nginx server: $ sparrow project foo add_site nginx-server 127.0.0.1
Плагины воробья
Плагины — самая интересная и многообещающая функция sparrow, делающая его мощным инструментом для тестирования и мониторинга веб-приложений.Возможно, я плохо искал, но не нашел ничего подобного в других инструментах автоматизации тестирования, не только в экосистеме Perl, но и в других языках программирования.
Короче говоря, плагин sparrow — это портативный набор тестов, который вы можете установить и запустить.
Очень наглядную аналогию можно построить на примере различных пакетных менеджеров, таких как ням в центосах или apt-получить в Дебиане.
Для разных типов приложений должна быть возможность выбрать и установить плагин, инкапсулирующий определенный набор тестов, который можно запустить для данного приложения.
На данный момент список Плагины sparrow довольно ограничены, но есть надежда, что члены сообщества Perl заметят этот проект, и вскоре мы сможем увидеть много новых плагинов.
Более того, процесс написания нового плагина в большинстве случаев тривиален и даже не требует знания perl как такового, но, повторюсь, раскрытие этой темы выходит за рамки моего поста и может быть осуществлено в будущем.
Итак, плагины sparrow можно устанавливать и добавлять в проекты: $ sparrow plg list
# sparrow environment initialzed at /home/vagrant/sparrow
[sparrow plugins list]
swat-yars | https://github.com/melezhik/swat-yars.git
metacpan | https://github.com/CPAN-API/metacpan-monitoring.git
swat-app-docsisious | https://github.com/melezhik/swat-app-docsisious.git
swat-nginx | https://github.com/melezhik/swat-nginx.git
swat-lighttpd | https://github.com/melezhik/swat-lighttpd.git
swat-pintod | https://github.com/melezhik/swat-pintod.git
swat-mongodb-http | https://github.com/melezhik/swat-mongodb-http.git
Установка плагина на данный момент реализована как обычная проверка с сайта.
удаленный git-репозиторий, возможно, в будущем этот функционал будет переписан с использованием собственных репозиториев sparrow с версионированием дистрибутивов и другими удобствами, аналогично обычному cpan-репозиторию.
vagrant@Debian-jessie-amd64-netboot:~/projects/sparrow$ sparrow plg install swat-nginx
# sparrow environment initialzed at /home/vagrant/sparrow
installing plugin swat-nginx .
Cloning into 'swat-nginx'.
.
Installing modules using /home/vagrant/sparrow/plugins/swat-nginx/cpanfile
Successfully installed Outthentic-DSL-0.0.4
Successfully installed swat-0.1.68
2 distributions installed
Complete! Modules were installed into /home/vagrant/sparrow/plugins/swat-nginx/local
Установив плагин, вам необходимо прикрепить его к проекту, а затем запустить набор тестов, используя выбранный сайт (веб-приложение) в качестве входного параметра: $ sparrow project foo add_plg swat-nginx
# sparrow environment initialzed at /home/vagrant/sparrow
plugin swat-nginx is successfully added to project foo
$ sparrow project foo check_site nginx-server swat-nginx
# sparrow environment initialzed at /home/vagrant/sparrow
/home/vagrant/.
swat/.
cache/3486/prove/00.GET.t .
ok 1 - GET 127.0.0.1/ succeeded # response saved to /home/vagrant/.
swat/.
cache/3486/prove/p3y5aUKFgj
ok 2 - output match '200 OK'
ok 3 - output match /Server: nginx\/(\S+)/
ok 4 - valid nginx version: 1.6.2
1.4
ok
All tests successful.
Files=1, Tests=4, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.04 cusr 0.00 csys = 0.05 CPU)
Result: PASS
Заключение
К сожалению, на этом наше знакомство с воробьем заканчивается, хотя, конечно, еще есть о чем поговорить.Как уже говорилось, проект еще очень молод и активно развивается, как и основной компонент для написания тестовых скриптов — swat. Есть надежда, что perl-сообщество, и все, кто близок к автоматизации процессов тестирования и мониторинга, внесут свой вклад в историю жизни еще маленького, но уже ловкого воробья (*).
(*) – «воробей» – в переводе с английского означает воробей.
P.S.
Не могу не добавить еще несколько важных моментов, возможно, предвосхищая некоторые вопросы, которые могут возникнуть после прочтения статьи.
- удаленный запуск тестов через веб API — данную функцию планируется реализовать в ближайшем будущем, учитывая большое количество систем, позволяющих проверять доступность веб-сервисов посредством обращений к внешним API, например, того же консул или Нагиос .
- интеграция с существующими системами непрерывной интеграции и отчетности — итак на выходе, после запуска плагина воробья получаем КРАН , легко написать синтаксический анализатор, преобразующий результаты в другие форматы.
Скажу больше: так как воробей при запуске плагинов вызывает swat, который в свою очередь использует Perl доказать для проведения тестов эта возможность конвертировать TAP в разные форматы предоставляется «из коробки» или с минимальным кодированием, подробности можно найти на странице документация swat, в разделе «TAP».
- и наконец, вполне резонный вопрос - «Где это решение было опробовано (воробей/шлепок)Э» В ходе моей повседневной работы devops-инженером Swat зарекомендовал себя как очень удобный инструмент для быстрой разработки дымовых тестов для десятков веб-приложений за короткое время.
Sparrow еще тестируется, но уже можно сказать, что этот проект является логическим продолжением swat, и с использованием плагинов Sparrow есть шанс, что он станет востребован среди веб-разработчиков, девопов и системных администраторов.
-
Программное Обеспечение Для Ведения Блогов
19 Oct, 24 -
Важность Дешевого Планшета Android
19 Oct, 24 -
Стратегические Крестики-Нолики
19 Oct, 24 -
4 Шага, Чтобы Стать Новым Медиа
19 Oct, 24 -
Liveinternet.ru Выходит На Мировой Рынок?
19 Oct, 24 -
Getdeb.net Теперь Для Ubuntu Intrepid
19 Oct, 24 -
Uwp — Выпуск № 211
19 Oct, 24