Часто в процессе нагрузочного тестирования тестировщик упирается в то, что ресурсы его компьютера и/или сетевого соединения не позволяют создать требуемую нагрузку на тестируемое приложение. Можно пойти по пути увеличения производительности нагрузочного клиента и сети, а можно использовать возможности по распределенному нагрузочному тестированию, которые JMeter предоставляет из коробки.
Показаны сообщения с ярлыком инструментарий. Показать все сообщения
Показаны сообщения с ярлыком инструментарий. Показать все сообщения
1/26/2015
1/23/2015
JMeter: мониторим нагрузку тестируемого сервера
При выполнении нагрузочного тестирования необходимо помнить, что кроме снятия внешних показателей - количество запросов в секунду, скорости отдачи данных, объема данных etc - очень важно собирать показатели загрузки тестируемого сервера. Это может быть что угодно - начиная от загрузки процессора и заканчивая количеством файлов, которые открыты конкретным процессом.
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- XCode
- RVM (Ruby Version Manager) Программа для управления версиями Ruby.
- Необходимую версию Ruby в зависимости от проектов.
- Необходимую версию Rails - фреймворка для веб-разработки, написанного на языке программирования Ruby.
- Гемы
11/15/2013
Тестируем REST API вручную с помощью Hack St
Очень часто перед тестировщиком веб-приложений появляется задача протестировать REST API. Зачем веб-приложению API? Чаще всего для того, чтобы:
curl -i -H "Accept: application/json" -X POST -d "firstName=james" http://192.168.0.165/persons/person
которая выполнит нужный запрос с нужными параметрами, и посмотреть результаты в консоли. Вроде бы все просто, но явно видны 2 проблемы:
Рассмотрим на простом примере как это работает. Допустим, мы хотим отправить запрос на получение списка городов в заданном координатами квадрате сервису GeoNames. Формируем наш запрос:
После чего нажимаем Execute и вуаля:
Как легко заметить - в наглядной форме представлены как параметры запроса, так и его результат, что с легкостью позволяет использовать этот инструмент для тестирования API новичками. Также у этого сервиса есть десктопное приложение под MacOS X и в планах версии для Linux и Windows. Вердикт - рекомендую!
P.S. Стоит отметить, что данный инструмент подходит в том случае, если API тестируемого приложения не очень большое и/или его тестирование необходимо нерегулярно. В противном случае нужно переходить к автоматизированному тестированию API. Но это уже совсем другая история...
(UPDATE)
После написания статьи сервис прилег отдохнуть :( Пока не проснется, можно пользоваться его старой версией - http://apikitchen.com/
- Предоставить сторонним разработчикам возможность пользоваться функционалом вашего приложения в своих приложениях.
- Предоставить программный интерфейс для нативных мобильных клиентов.
- Предоставить программный интерфейс для взаимодействия различных частей приложения друг с другом.
curl -i -H "Accept: application/json" -X POST -d "firstName=james" http://192.168.0.165/persons/person
которая выполнит нужный запрос с нужными параметрами, и посмотреть результаты в консоли. Вроде бы все просто, но явно видны 2 проблемы:
- Результаты выполнения запроса представлены в не особо презентабельном и читаемом виде.
- Для новичков может стать трудностью работа с многочисленными опциями curl.
Рассмотрим на простом примере как это работает. Допустим, мы хотим отправить запрос на получение списка городов в заданном координатами квадрате сервису 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
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. Исходники в свободном доступе - можно поднять свою версию с возможностью сохранения шаблонов.
7/13/2013
Подборка от Ministry Of Testing
http://www.ministryoftesting.com/resources/
большая подборка ссылок по категориям от Ministry Of Testing.
-----
В частности, есть подборка ссылок по мобильному тестированию:
http://www.ministryoftesting.com/resources/mobile-testing/
И ссылки по использованию Selenium:
http://www.ministryoftesting.com/resources/selenium/
большая подборка ссылок по категориям от Ministry Of Testing.
-----
В частности, есть подборка ссылок по мобильному тестированию:
http://www.ministryoftesting.com/resources/mobile-testing/
И ссылки по использованию Selenium:
http://www.ministryoftesting.com/resources/selenium/
Подписаться на:
Сообщения (Atom)















