Показаны сообщения с ярлыком инструментарий. Показать все сообщения
Показаны сообщения с ярлыком инструментарий. Показать все сообщения

1/26/2015

JMeter: распределенное нагрузочное тестирование

     Часто в процессе нагрузочного тестирования тестировщик упирается в то, что ресурсы его компьютера и/или сетевого соединения не позволяют создать требуемую нагрузку на тестируемое приложение. Можно пойти по пути увеличения производительности нагрузочного клиента и сети, а можно использовать возможности по распределенному нагрузочному тестированию, которые JMeter предоставляет из коробки.

1/23/2015

JMeter: мониторим нагрузку тестируемого сервера

     При выполнении нагрузочного тестирования необходимо помнить, что кроме снятия внешних показателей - количество запросов в секунду, скорости отдачи данных, объема данных etc - очень важно собирать показатели загрузки тестируемого сервера. Это может быть что угодно - начиная от загрузки процессора и заканчивая количеством файлов, которые открыты конкретным процессом.

1/15/2015

Jenkins, как инструмент для запуска тестов



Настало время нам познакомится с Jenkins’ом. Использовать его будем в качестве автоматического прогона тестов на удаленном сервере. Так как надоело использовать свою рабочую машину и ждать, когда же они наконец-то пройдут… Или упадут.

1/14/2015

Введение в Calabash




В процессе углубления в изучении тестирования мобильных приложений у меня возникло желание изучить автоматизацию тестирования данного типа приложений.
Мобильные приложения имеют ряд особенностей, которые не позволяют использовать для тестирования обычные инструменты. Для изучения был выбран фреймворк Calabash.

1/12/2015

JMeter: читаем CSV с помощью BeanShell

Когда заходит речь о чтении данных из CSV-файла для использования их в нагрузочных тестах на JMeter, то первая рекомендация - CSV Data Set Config. Для большинства сценариев его хватает и он работает ожидаемо и без ошибок. Однако, в некоторых специфических случаях его поведение оказалось для меня непредсказуемым и стоило мне нескольких часов отладки.  В отладке сценариев JMeter незаменимый инструмент это Debug Sampler. Он помог мне выявить проблему - при последовательном чтении нескольких файлов с именами вида <filename>_N.csv, где N меняется от 1 до 5 (для примера) CSV Data Set Config вёл себя непредсказуемо. Если быть конкретным, то при работе CSV Data Set Config во вложенных Loop/While Controller некорректно формировалось имя следуюшего файла и были проблемы с определением момента окончания чтения файла текущего. Поиски в Google не дали результатов - все примеры были с более простыми сценариями. В результате пришлось написать свою реализацию чтения данных из CSV на BeanShell.

5/12/2014

Mind Map в тестировании



Чем хороши майнд-карты в работе и конкретно в тестировании? - Они упорядочивают мысли и придают разрозненным идеям подобие организованной и структурированной формы. Например, есть у вас веб-приложение, которое необходимо тестировать. И есть куча идей по тестированию этого веб-приложения. Но, увы, нет никакой документации и четкого плана.

Майнд-карту можно использовать как самопальную спецификацию к приложению, главное ее достоинство - наглядность. Я пользовалась https://www.mindmeister.com. Во free-версии телодвижения ограничены созданием трех карт, шарингом и экспортом в pdf. Немножко платный вариант уже достаточен для полноценной работы. Ветки можно помечать разными цветами, указывать приоритеты, расставлять метки и связи, сопровождать картинками и файлами. Расшарить майнд-карту для редактирования можно одновременно нескольким аккаунтам, история редактирования сохраняется, поэтому можно не бояться менять части кустов в соответствие с изменяющимся функционалом приложения, все изменения вы сможете отследить. 

Используйте майнд-карты, если вам нужно быстро познакомить нового сотрудника с проектом, так вы сможете наглядно показать структуру приложения и объяснить взаимосвязи отдельных кусков, не используя простыни текста и кучу скучных таблиц. 

Опять же снижается риск запутаться и для себя. Бывают ситуации, когда бегло ознакомившись с функционалом, упускаешь некоторые мелочи. Невозможно удержать в памяти все логические связи и цепочки. Майнд-карта позволяет постепенно и правильно расставить все связи между блоками и не требует судорожного их запоминания.

Наглядность карты позволяет увидеть логические неточности в спецификации или "ненужные" пользователю шаги, которых можно избежать. Тем самым, оптимизируя карту, вы делаете интерфейс более дружественным. В https://www.mindmeister.com к каждому блоку карты можно оставлять комментарий, прикреплять скриншоты и линки, что позволяет использовать ее и в качестве документации. Отпадает необходимость перелопачивать кучу текста в поисках нужного места для внесения изменений или поиска информации. Достаточно забить это все в нужную ветку и обращаться к ней по мере необходимости.

И, наконец, самое очевидное свойство майнд-карты - это практически готовый чек-лист, подробность которого зависит исключительно от вашей въедливости и желания. Удобнее работать с несколькими картами, которые представляют из себя разбитые на куски функциональные блоки, объединенные связями. 

Каждый кусок представляет из себя подобие test suite, и для каждого блока в этом куске можно прямо в комментариях написать подробный test case. Связи внутри карт и между блоками позволяют увидеть места, которые можно покрыть одинаковыми тест-кейсами. Или вы замечаете, что проходя сценарий по разным веткам карты, получаете один результат. Это поможет в случае появления бага в одной части программы, не пропустить и проверить все связанные с этой частью места и элементы.  Расставив на карте приоритеты, уже сложно забыть о первоочередных задачах и наиболее важных частях функционала.

Майнд-карты помогают нам значительно оптимизировать процесс тестирования, приблизиться к идеальному уровню тестового покрытия и сэкономить кучу времени. 
Рисуйте и обрящете!

5/05/2014

Do you Remember Me?



   Порой приходится написать автотесты на Cucumber'e, для проверки такой маленькой фичи, как "Remember me". На первый взгляд кажется, что это всего лишь безобидный чекбокс, который необходимо выбрать при логине. Но когда вы подумаете о том, как этот чекбокс должен сработать, появятся вопросы... И простым check("Remember me") вы не обойдетесь.

2/25/2014

Работа с эмуляторами мобильных устройств.



В последнее время, даже маленькие проекты стали активно развивать свои мобильные приложения, в связи с чем возникла необходимость их тестирования. Возможность тестирования на реальных устройствах есть далеко не всегда, да и охватить все доступные девайсы крайне проблематично. Тут в помощь тестировщику и приходят эмуляторы мобильных устройств. Взглянем на наиболее популярные:

  • Эмулятор для Android “Andriod SDK”. Доступен для скачивания в открытом доступе по ссылке http://developer.android.com/sdk/index.html. После скачивания и  распаковки необходимо запустить SDK Manager, выбрать необходимые пакеты с версиями Andriod. После их установки переходим в меню Tools - Manage AVDs. Выбираем необходимые для тестирования настройки (существует набор различных расширений экрана ) и приступаем к работе. К сожалению, эмулятор очень сильно тормозит и зависает, не помагает даже увеличение оперативной памяти.
  • Эмулятор для Iphone входит в пакет SDK от Apple, который включает в себя так же среду разработки Xcode и другие инструменты. XCod можно скачать в App Store, но перед этим зарегистрироваться в сети Apple Developer Network. Существует несколько вариантов членства, в том числе бесплатный (правда при этом вам будет закрыт доступ продаж своего продукта через App Store). После скачивания XCoda необхимо просмотреть содержимое папки (Developer/Platforms/iPhoneSimulator.platform/Developer/Applications) там вы и увидите “iOS Simulator.app”. Новая версия эмулятора позволяет масштабировать разрешение 940x640 пикселей до 1136x640 пикселей. 
  • Эмулятор Windows Phone 8. Инструменты разработки для данной платформы можно установить только под 64x-версией Windows 8 Pro или Enterprise. Все необходимое для установки (вплодь до возникающих проблем) подробно описаны в инструкции по установке.

Несмотря на наличие эмуляторов для всех распространенных мобильных платформ, добиться 100% замены реальных устройств все равно не удастся. При получении результатов нельзя быть полностью уверенными что на реальном устройстве тестовый сайт или приложение поведет себя точно таким же образом, именно поэтому эмулятор могут послужить лишь хорошим дополнением к имеющимися в работе реальными устройствами.

2/16/2014

Настраиваем тестовое окружение Cucumber+Capybara+WebDriver (или Capybara-webkit) в Ruby on Rails приложении.


 

Существует несколько способов установки и настроить тестового окружение на вашем маке. Все они приводят к одному результату.
В этой статье будет рассматриваться самый простой и распространенный по мнению автора метод с использованием homebrew и rvm, хотя в качестве альтернативы можно использовать ruby-build  и  rbenv.
Для того, чтобы можно было считать ваше тестовое окружение настроенным, вы должны установить следующие компоненты:

- XCode
 - Homebrew - менеджер пакетов для MacOS
 - RVM (Ruby Version Manager)  Программа для управления версиями Ruby.
 - Необходимую версию Ruby в зависимости от проектов.
 - Необходимую версию Rails - фреймворка для веб-разработки, написанного на языке программирования Ruby.
 - Гемы

11/15/2013

Тестируем REST API вручную с помощью Hack St

Очень часто перед тестировщиком веб-приложений появляется задача протестировать REST API. Зачем веб-приложению API? Чаще всего для того, чтобы:
  1. Предоставить сторонним разработчикам  возможность пользоваться функционалом вашего приложения в своих приложениях.
  2. Предоставить программный интерфейс для нативных мобильных клиентов.
  3. Предоставить программный интерфейс для взаимодействия различных частей приложения друг с другом.
Обычно для API существует некоторая документация в виде перечня набора URL'ов и параметров запросов на них. Какой самый простой способ протестировать API веб-приложения? Правильно - взять в руки curl и написать команду вида:

curl -i -H "Accept: application/json" -X POST -d "firstName=james" http://192.168.0.165/persons/person

которая выполнит нужный запрос с нужными параметрами, и посмотреть результаты в консоли. Вроде бы все просто, но явно видны 2 проблемы:
  1. Результаты выполнения запроса представлены в не особо презентабельном и читаемом виде.
  2. Для новичков может стать трудностью работа с многочисленными опциями curl.
В таких случаях на помощь приходят различные GUI-утилиты, упрощающие процесс написания запросов и представляющие результаты их выполнения в легко читаемом виде. Одной из таких утилит и является Hack St. - веб-приложение для отладки HTTP-запросов.

Рассмотрим на простом примере как это работает. Допустим, мы хотим отправить запрос на получение списка городов в заданном координатами квадрате сервису GeoNames. Формируем наш запрос:
После чего нажимаем Execute и вуаля:
Как легко заметить - в наглядной форме представлены как параметры запроса, так и его результат, что с легкостью позволяет использовать этот инструмент для тестирования API новичками. Также у этого сервиса есть десктопное приложение под MacOS X и в планах версии для Linux и Windows. Вердикт - рекомендую!
P.S. Стоит отметить, что данный инструмент подходит в том случае, если API тестируемого приложения не очень большое и/или его тестирование необходимо нерегулярно. В противном случае нужно переходить к автоматизированному тестированию API. Но это уже совсем другая история...
(UPDATE)
После написания статьи сервис прилег отдохнуть :( Пока не проснется, можно пользоваться его старой версией - http://apikitchen.com/ 

11/04/2013

Test Credit Card Numbers (Recurly)

Это не вау-информация, конечно. Но может пригодится.
Update: малого того, что это не вау-информация, она еще и достаточно узко специализирована.

О стандартных картах 4111-1111-1111-1111 и 4000-0000-0000-0002 я был в курсе, а про множество других - всегда забываю.

Взято по ссылке : https://docs.recurly.com/payment-gateways/test

Test Credit Card Numbers
When you’re using the Test Gateway, you may test the service with the following credit card numbers below. A 4 digit CVV must be used for American Express card numbers, all other card numbers may use a 3 digit CVV.

SUCCESS

4111-1111-1111-1111
Success.
4222-2222-2222-2220
Success, but flagged for Fraud Review by the gateway. Note: the fraud review is only relevant to PayPal gateways when in production mode. This does not impact test transactions.

DECLINED

4000-0000-0000-0002
Declined by the gateway.
4000-0000-0000-0010
AVS failed on street address and postal code.
4000-0000-0000-0028
AVS failed on street address.
4000-0000-0000-0036
AVS failed on postal code.
4000-0000-0000-0044
Advanced Verification failed (Secure 3D, etc).
4000-0000-0000-0051
Card number declined.
4000-0000-0000-0069
Expired card or expiration date does not match.
4000-0000-0000-0077
Insufficient funds.
4000-0000-0000-0085
Did not pass your fraud filters.
4000-0000-0000-0093
Originating from fraudulent IP address.
4000-0000-0000-0101
CVV / Security code did not match.
4000-0000-0000-0119
Declined by issuing bank, customer needs to contact their bank.
4000-0000-0000-0200
Invalid data or parameter.
4222-2222-2222-2222
Invalid card number (Fails the Luhn algorithm check).
4000-0000-0000-0226
Invalid expiration date.
4000-0000-0000-0309
Gateway Timeout.
4000-0000-0000-0317
Duplicate transaction.
4000-0000-0000-0325
Card type not accepted.
4000-0000-0000-0341
Declined by the gateway, but Recurly will allow you to save regardless.
Please note: With a real gateway, it is difficult to trigger the Expiration date does not match error. Most issuing banks do not validate the expiration date when processing a transaction. Instead, they use CVV and address information for more reliable fraud protection.

OTHER SUCCESSFUL NUMBERS

1
Short test card number.
378282246310005
American Express.
371449635398431
American Express.
378734493671000
American Express Corporate.
5610591081018250
Australian BankCard.
30569309025904
Diners Club.
38520000023237
Diners Club.
6011111111111117
Discover.
6011000990139424
Discover.
3530111333300000
JCB.
3566002020360505
JCB.
5555555555554444
MasterCard.
5105105105105100
MasterCard.
4012888888881881
Visa.
4222222222222
Visa.
76009244561
Dankort (PBS).
5019717010103742
Dankort (PBS).
6331101999990016
Switch/Solo (Paymentech).
All our test credit card numbers pass the Luhn validation algorithm, except the Invalid credit card number.

9/27/2013

Навигация между окнами в автоматизированных тестах


В процессе создания автоматических тестов часто возникает необходимость в навигации между окнами браузера.

Основное неудобство в построении шага заключается в том, что web-драйверы webkit и selenium  отличные друг от друга механизмы переключения между окнами - то, что работает для webkit, не будет работать с selenium, и наоборот.

Следующий шаг позволит вам переместить фокус действия с одного окна на другое, учитывая используемый web-драйвер. 

When (/^I access the new window$/) do 
 if Capybara.javascript_driver == :webkit
  page.driver.browser.window_focus(page.driver.browser.window_handles.last)
 else
  page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
 end
end

В ходе выполнения теста мы производим шаг, в следствие которого появляется новое окно. Следующим шагом станет описанный выше шаг "I access the new window".

В зависимости от выбранного при запуске теста web-драйвере выполнится один из вариантов переключения фокуса.

Для драйвера webkit - переключение фокуса происходит при помощи действия:
page.driver.browser.window_focus(page.driver.browser.window_handles.last)

Для драйвера selenium - следующее действие:
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)



8/14/2013

Автоматизированное тестирование Android-приложений с помощью ложки

Spoon - удобный инструментарий для распределенного тестирования ваших Android-приложений на реальных устройствах. Подробности можно почерпнуть на официальном сайте или в статье "It’s like 10000 knives when all you need is a Spoon" от Daniel Knott (также в этой статье есть видео с демонстрацией работы Spoon)

7/15/2013

Онлайн-генератор тестовых наборов данных


позволяет сгенерировать наборы тестовых данных по заданным правилам и импортировать в CSV, XML, Excel etc. Исходники в свободном доступе - можно поднять свою версию с возможностью сохранения шаблонов.