понедельник, 2 сентября 2013 г.

Тестирование производительности с помощью Visual Studio Web Performance, часть 1


Чаще всего, когда речь заходит о тестировании производительности, в голове сразу всплывает Apache Jmeter или SoupUI, поскольку это довольно мощные и функциональные инструменты, а также по причине их свободного распространения. С ними знакомы большинство автоматизаторов, что говорить, даже разработчики зачастую пользуются этими программами, поэтому даже рускоязычной информации о них в интернете в избытке. В отличии от платных инструментов, таких как Test Complete, Load Runner и т.д. В своей работе я столкнулся с необходимостью использовать одного из них, а именно Visual Studio Web Performance.
На моё удивление, в отличии от многих продуктов Microsoft Web Performance оказался довольно прост для осваивания и вполне нагляден, чего не скажешь о том же Jmeter или Tsung. Всё что понадобится для начала работы - это VS Ultimate, который и включает в себя Web Performance Tools. В цикле статей я расскажу и наглядно покажу, как создавать буквально за минуты свои первые тесты, пользуясь инструментами Visual Studio Ultimate.
В первой части я в общих чертах опишу основные компоненты будущего теста и далее каждая последующая часть будет раскрывать один из них.



Итак, первое, что нужно сделать - создать новый тестовый проект.

Сразу после создания проекта, внутри появляется пустой  класс webtest, который будет содержать в себе действия, которые мы собираемся применить к серверу. Эти запросы можно как составлять вручную, так и записывать через браузер.
Следующий класс, с которым мы также столкнемся в процессе разработки - это loadtest. Этот класс поможет нам объединять различные webtest'ы, а также выбирать метрики измерений, настройки распределения нагрузки и многое другое.

Собственно, на этих двух классах и будет держаться наши тесты, однако, чтобы получить возможности более гибкого конфигурирования тестовых данных, очевидно, нужно что-то ещё. На этот случай Microsoft предлагает нам классы плагинов, которые вы можете написать самостоятельно. Они предоставляют возможность выполнять дествия до и после запросов, объявлять глобальные переменные, заполнять пре-тестовые кондиции и много чего другого. Стоит отметить, что помимо нескольких меток, которые позволяют определить класс как Plugin - это обычный C# класс.
Ну и в конце, я скажу пару слов о тест репортах, которые "из коробки" практически в полной мере отвечают потребностям тестировщика в информации о результатах тестов.

Продолжение читайте в следующей части, где мы рассмотрим webtest.

Комментариев нет:

Отправить комментарий