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

1/26/2015

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

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

1/23/2015

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

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

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.

12/03/2014

Тренды QA и программного обеспечения 2014 года.

Календарь намекает что год подходит к своему логическому завершению, а значит пора подбивать итоги. Что полезного для QA сообщества принес 2014 можно прочитать этой статье:

Тренды QA и программного обеспечения 2014 года.


2014 год подходит к концу, бизнес подразделения организаций рисуют мелом чертежи бюджетов выделенных им на 2015 год. Индустрия программного обеспечения стремится узнать о ключевых областях, которые доминировали в 2014 году, особенно касающиеся контроля качества и тестирования программного обеспечения. Давайте рассмотрим некоторые ключевые тенденции, выводы и результаты 2014 году на основе доклада, который был подготовлен в соавторстве с Capgemini, HP и Sogeti. 

12/01/2014

Полезные ссылочки по тестированию


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




  1. Интересная инфографика (с приветом для любителей Android) ;-)





7/08/2014

Тестируем REST API руками почтальона


Бла-бла-бла, информационные сети становятся все сложнее и сложнее, окутывая и людей, и приложения. Особенно приложения. Особенно приложения, которыми пользуются люди. Имея постоянно расширяющуюся и развивающуюся популяцию программных продуктов, рано или поздно пришлось бы задуматься о балансе между изоляцией приложения и его взаимодействием с другими приложениями. Большинство людей часто задумываться не любят, поэтому для них и для нас волшебниками из мира программирования была выдумана такая штука, как интерфейс программирования приложений - API (application programming interface).

API - это набор программных средств (например, функций и/или процедур) приложения, позволяющий получить доступ к этому самому приложению извне.

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% замены реальных устройств все равно не удастся. При получении результатов нельзя быть полностью уверенными что на реальном устройстве тестовый сайт или приложение поведет себя точно таким же образом, именно поэтому эмулятор могут послужить лишь хорошим дополнением к имеющимися в работе реальными устройствами.

11/14/2013

Задание строгого порядка выполнения фич Cucumber'a


По умолчанию выполнение features/scenarios в Cucumber проходит согласно следующим правилам:

  1. В алфавитном порядке папок в папке features
  2. В алфавитном порядке файлов *.feature в папке
  3. В порядке размещения файлов *.feature находящихся в корне папки features
К примеру, мы имеем следующую структуру тестов
  • features
    • folder1
      • file1.feature
      • file2.feature
    • folder2
      • file3.feature
    • file4.feature
    • file5.feature
Выполнение команды cucumber приведет к запуску тестов в следующем порядке:
features/folder1/file1.feature
features/folder1/file2.feature
features/folder2/file3.feature
features/file4.feature
features/file5.feature

Но что же делать, если тестировщику нужно задать строгий порядок выполнения фич при запуске тестов?

При запуске Cucumber можно указать фичи в виде списка и их запуск будет произведен в указанном порядке. Например:
cucumber features/folder1/file2.feature features/folder2/file3.feature

Что делать с остальными фичами? Можно указать папку features в конце списка. Cucumber довольно умный и не станет запускать заново фичи, которые уже запускались до этого.
Таким образом строка
cucumber features/folder1/file2.feature features/folder2/file3.feature features
запустит тесты в нужном вам порядке.

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)