Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Выполнения нагрузочного скрипта.


Автор: SerGreY 5.12.2008, 16:16
Необходимо создать механизм нагрузочного тестирования для выполнения нагрузочного скрипта вида:

Browser br = new Browser();
br.OpenPage("www.qoogle.ru")
br.Text("q", "aaa");
br.Click("btnG");

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

Изучил следующие средства:

1. Контрол GeckoFX - на основе движка Gecko (от Firefox).

Позволяет выполнять скрипт, только когда находится на форме.
При попытке выполнить в параллельном потоке выдает ошибку.
Пытался отделить визуальное представление - пока не удается (ошибки при инициализации).

2. Библиотека ShDocVw - движок IE.

Такой скрипт можно выполнить при помощи библиотеки ShDocVw, даже в параллельных потоках, но
есть определенные трудности:
При возниконовении ошибки при открытии страницы, самопроизвольно открывается окно IE с сообщением об ошибке. Причем событие об ошибке в коде не перехватывается.
Если IE начинает не хватать памяти, то все запущенные окна открываются, затем вызывая критическую ошибку IE.

Принимаются любые советы по альтернативным средствам для создания нагрузки.

Кто сталкивался с подобными вопросами ? Жду ответов. Спасибо.

Автор: PashaPash 5.12.2008, 20:04
SerGreY, Visual Studio Test или Team вполне справится.

Автор: SerGreY 6.12.2008, 09:04
Цитата(PashaPash @ 5.12.2008,  20:04)
SerGreY, Visual Studio Test или Team вполне справится.

Спасибо за предложение.
Но мне необходимо реализовать механизм нагрузочного тестирования на основе одного из браузерных движков.
На данный момент необходимо использовать один из движков:
1. Trident (IE)
2. Gecko (Firefox)
3. WebKit (Safari)

Автор: PashaPash 8.12.2008, 14:55
Цитата(SerGreY @  6.12.2008,  09:04 Найти цитируемый пост)
Но мне необходимо реализовать механизм нагрузочного тестирования на основе одного из браузерных движков.

Нет смысла проводить нагрузочное тестирование на движке браузера. Можно проводить отдельно load test-ы, отдельно regression. Первые делать на студийных WebTests, вторые каким-нибудь http://www.codeplex.com/aspnet/Wiki/View.aspx?title=ASP.NET%20QA&referringTitle=Home. Иначе понадобятся клиентские машины в несколько раз мощнее серверных.

Автор: SpaceSpace 8.12.2008, 17:31
Цитата(PashaPash @  8.12.2008,  14:55 Найти цитируемый пост)
Нет смысла проводить нагрузочное тестирование на движке браузера. Можно проводить отдельно load test-ы, отдельно regression. Первые делать на студийных WebTests, вторые каким-нибудь Lightweight Test Automation Framework for ASP.NET. Иначе понадобятся клиентские машины в несколько раз мощнее серверных.

СОГЛАСЕН
у тебя есть на примете опен-сорс движки для проведения нагрузки?

Автор: Gelis 8.12.2008, 20:14
Есть такой open-source проект http://seleniumhq.org/
Один из подпроектов: Это Selenium Grid, который запускает сразу несколько браузеров на нескольких машинах. Я думаю это то что вам надо.
Поддерживаемые браузеры: IE, FireFox and Safari
Есть Selenium IDE, которое генерит за вас код теста и если у вас нет на странице AJAX или UploadFile, то созданный автоматом тест можно даже не менять. Если что-то из этого есть, то прийдется попотеть.

Для запуска тестов в нескольких браузерах и на нескольких компьютерах возможен только в том случае если они созданы с помощью библиотеки PNUnit (Parallel NUnit)

Автор: jonie 11.12.2008, 20:26
http://www.opensta.org/  -- тоже умеет тестировать на нагрузку

Автор: SerGreY 16.12.2008, 20:28
Всем спасибо за ответы !
Сейчас смотрю приложение с http://www.opensta.org/ 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)