Перейти к содержимому

Фотография

Может ли Selenium создавать и запускать нагрузочные тесты?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 24

#1 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 15 июня 2011 - 06:34

Здравствуйте!
Можете ли объяснить как создать нагрузочное тестирование используя Selenium и как его запустить?
Если есть какая нибудь полезная литература на эту тему буду очень благодарен(желательно на русском).
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 15 июня 2011 - 07:13

1. Можно использовать HtmlUnitDriver (это часть Selenium 2.0)
2. Можно воспользоваться сервисом BrowserMob
3. Можно поставить 10 машин и на каждой запустить по 10 браузеров -- получится нагрузка в 100 виртуальных пользователей.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 15 июня 2011 - 07:55

1. Можно использовать HtmlUnitDriver (это часть Selenium 2.0)
2. Можно воспользоваться сервисом BrowserMob
3. Можно поставить 10 машин и на каждой запустить по 10 браузеров -- получится нагрузка в 100 виртуальных пользователей.

Спасибо большое попробуем первый и второй способ. А могли бы вы глянуть вот этот вопрос
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 15 июня 2011 - 08:16

Спасибо большое попробуем первый и второй способ. А могли бы вы глянуть вот этот вопрос

Надеюсь, специалисты по TC откликнутся, я с этим инструментом не работаю.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 15 июня 2011 - 10:45


Спасибо большое попробуем первый и второй способ. А могли бы вы глянуть вот этот вопрос

Надеюсь, специалисты по TC откликнутся, я с этим инструментом не работаю.

А можете подсказать где можно по подробнее почитать про использование HtmlUnitDriver ?
И какую библиотеку нужно подключить ?
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 15 июня 2011 - 13:01

Загрузить и установить Selenium 2.0 -- http://seleniumhq.org/download/
Пример использования -- http://seleniumhq.or..._webdriver.html
Подробная документация -- http://selenium.goog...java/index.html
HtmlUnitDriver это один из драйверов, наряду с FirefoxDriver, InternetExlorerDriver и другими, использование ничем не отличается (за исключением, конечно, особенностей работы JS-интерпретатора, но при нагрузочном тестировании это неважно)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#7 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 16 июня 2011 - 03:36

Загрузить и установить Selenium 2.0 -- http://seleniumhq.org/download/
Пример использования -- http://seleniumhq.or..._webdriver.html
Подробная документация -- http://selenium.goog...java/index.html
HtmlUnitDriver это один из драйверов, наряду с FirefoxDriver, InternetExlorerDriver и другими, использование ничем не отличается (за исключением, конечно, особенностей работы JS-интерпретатора, но при нагрузочном тестировании это неважно)

Возникла проблема.
Подключаю библиотеку OpenQA.Selenium.Remote , но HtmlUnitDriver всё равно не видит. В чём может быть проблема ?
А HtmlUnitDriver доступна если пишешь на C# а не на Java ?
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 16 июня 2011 - 06:22

HtmlUnitDriver доступен только для Java, есть планы по миграции на .Net, но пока только планы.

Впрочем, для .Net можно использовать Selenium Server и RemoteWebDriver, указав в качестве параметра DesiredCapabilities.HtmlUnit
Вопрос лишь в том, справится ли Selenium Server, позволит ли запустить достаточно много потоков, не станет ли он узким местом.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 16 июня 2011 - 06:27

HtmlUnitDriver доступен только для Java, есть планы по миграции на .Net, но пока только планы.

Впрочем, для .Net можно использовать Selenium Server и RemoteWebDriver, указав в качестве параметра DesiredCapabilities.HtmlUnit
Вопрос лишь в том, справится ли Selenium Server, позволит ли запустить достаточно много потоков, не станет ли он узким местом.

Спасибо.Попробуем.
  • 0

#10 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 16 июня 2011 - 07:54

Можете по подробнее рассказать про RemoteWebDriver и как использовать его с Selenium Server для создания нагрузочного теста?
А RemoteWebDriver точно можно использовать в C# ?
  • 0

#11 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 16 июня 2011 - 08:43

Попробовал использовать для понимания пример который тут .
Результат запуска можно посмотреть на скриншоте (1- начало, 2 - конец).

Прикрепленные файлы


  • 0

#12 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 16 июня 2011 - 09:31

Попоробовал использовать такой код:
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

class Example
{
    static void Main(string[] args)
    {
        //to use HtmlUnit from .Net we must access it through the RemoteWebDriver
        //Download and run the selenium-server-standalone-2.0b1.jar locally to run this example
        ICapabilities desiredCapabilities = DesiredCapabilities.HtmlUnit();
        IWebDriver driver = new RemoteWebDriver(desiredCapabilities);

        //the .Net Webdriver relies on a slightly different API to navigate to
        //web pages because 'get' is a keyword in .Net
        driver.Navigate().GoToUrl("http://google.ca/");

        //The rest of the code should look very similar to the Java library
        IWebElement element = driver.FindElement(By.Name("q"));
        element.SendKeys("Cheese!");
        element.Submit();
        System.Console.WriteLine("Page title is: " + driver.Title);
        driver.Quit();
        System.Console.ReadLine();
    }
}

при запуске получаю ошибку:
Unexpected error. {"message":"java.lang.NullPointerException","localizedMessage":"java.lang.NullPointerException","cause":{"class":"java.lang.NullPointerException","stackTrace":[{"fileName":"DriverFactory.java","class":"java.lang.StackTraceElement","lineNumber":43,"className":"org.openqa.selenium.remote.server.DriverFactory","methodName":"getBestMatchFor","nativeMethod":false},{"fileName":"DriverFactory.java","class":"java.lang.StackTraceElement","lineNumber":76,"className":"org.openqa.selenium.remote.server.DriverFactory","methodName":"newInstance","nativeMethod":false},{"fileName":"Session.java","class":"java.lang.StackTraceElement","lineNumber":48,"className":"org.openqa.selenium.remote.server.Session$1","methodName":"call","nativeMethod":false},{"fileName":"Session.java","class":"java.lang.StackTraceElement","lineNumber":46,"className":"org.openqa.selenium.remote.server.Session$1","methodName":"call","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.FutureTask$Sync","methodName":"innerRun","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.FutureTask","methodName":"run","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","methodName":"runTask","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","methodName":"run","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.lang.Thread","methodName":"run","nativeMethod":false}]},"class":"java.util.concurrent.ExecutionException","stackTrace":[{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.FutureTask$Sync","methodName":"innerGet","nativeMethod":false},{"class":"java.lang.StackTraceElement","lineNumber":-1,"className":"java.util.concurrent.FutureTask","methodName":"get","nativeMethod":false},{"fileName":"Session.java","class":"java.lang.StackTraceElement","lineNumber":68,"className":"org.openqa.selenium.remote.server.Session","methodName":"execute","nativeMethod":false},{"fileName":"Session.java","class":"java.lang.StackTraceElement","lineNumber":54,"className":"org.openqa.selenium.remote.server.Session","methodName":"<init>","nativeMethod":false},{"fileName":"DriverSessions.java","class":"java.lang.StackTraceElement","lineNumber":76,"className":"org.openqa.selenium.remote.server.DriverSessions","methodName":"newSession","nativeMethod":false},{"fileName":"NewSession.java","class":"java.lang.StackTraceElement","lineNumber":46,"className":"org.openqa.selenium.remote.server.handler.NewSession","methodName":"handle","nativeMethod":false},{"fileName":"ResultConfig.java","class":"java.lang.StackTraceElement","lineNumber":144,"className":"org.openqa.selenium.remote.server.rest.ResultConfig","methodName":"handle","nativeMethod":false},{"fileName":"DriverServlet.java","class":"java.lang.StackTraceElement","lineNumber":271,"className":"org.openqa.selenium.remote.server.DriverServlet","methodName":"handleRequest","nativeMethod":false},{"fileName":"DriverServlet.java","class":"java.lang.StackTraceElement","lineNumber":256,"className":"org.openqa.selenium.remote.server.DriverServlet","methodName":"doPost","nativeMethod":false},{"fileName":"HttpServlet.java","class":"java.lang.StackTraceElement","lineNumber":727,"className":"javax.servlet.http.HttpServlet","methodName":"service","nativeMethod":false},{"fileName":"HttpServlet.java","class":"java.lang.StackTraceElement","lineNumber":820,"className":"javax.servlet.http.HttpServlet","methodName":"service","nativeMethod":false},{"fileName":"ServletHolder.java","class":"java.lang.StackTraceElement","lineNumber":428,"className":"org.openqa.jetty.jetty.servlet.ServletHolder","methodName":"handle","nativeMethod":false},{"fileName":"ServletHandler.java","class":"java.lang.StackTraceElement","lineNumber":677,"className":"org.openqa.jetty.jetty.servlet.ServletHandler","methodName":"dispatch","nativeMethod":false},{"fileName":"ServletHandler.java","class":"java.lang.StackTraceElement","lineNumber":568,"className":"org.openqa.jetty.jetty.servlet.ServletHandler","methodName":"handle","nativeMethod":false},{"fileName":"HttpContext.java","class":"java.lang.StackTraceElement","lineNumber":1530,"className":"org.openqa.jetty.http.HttpContext","methodName":"handle","nativeMethod":false},{"fileName":"HttpContext.java","class":"java.lang.StackTraceElement","lineNumber":1482,"className":"org.openqa.jetty.http.HttpContext","methodName":"handle","nativeMethod":false},{"fileName":"HttpServer.java","class":"java.lang.StackTraceElement","lineNumber":909,"className":"org.openqa.jetty.http.HttpServer","methodName":"service","nativeMethod":false},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":820,"className":"org.openqa.jetty.http.HttpConnection","methodName":"service","nativeMethod":false},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":986,"className":"org.openqa.jetty.http.HttpConnection","methodName":"handleNext","nativeMethod":false},{"fileName":"HttpConnection.java","class":"java.lang.StackTraceElement","lineNumber":837,"className":"org.openqa.jetty.http.HttpConnection","methodName":"handle","nativeMethod":false},{"fileName":"SocketListener.java","class":"java.lang.StackTraceElement","lineNumber":245,"className":"org.openqa.jetty.http.SocketListener","methodName":"handleConnection","nativeMethod":false},{"fileName":"ThreadedServer.java","class":"java.lang.StackTraceElement","lineNumber":357,"className":"org.openqa.jetty.util.ThreadedServer","methodName":"handle","nativeMethod":false},{"fileName":"ThreadPool.java","class":"java.lang.StackTraceElement","lineNumber":534,"className":"org.openqa.jetty.util.ThreadPool$PoolThread","methodName":"run","nativeMethod":false}]}

Как можно исправить эту ошибку?
  • 0

#13 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 26 июля 2011 - 09:08

Помогите пожалуйста решить проблему ооочень надо.
  • 0

#14 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 25 августа 2011 - 07:20

Теперь возникла другая проблема(использую пример тот который указан выше): после запуска появляется окошко загрузки, ищет файл с расширением cs. Какой файл ему нужен? потом он ищет файл Platform - где этот файлик находится должен? при дебаге у строчки:
"IWebDriver driver = new RemoteWebDriver(desiredCapabilities);" - появляется предупреждение "Невозможно загрузить файл или сборку "Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" или один из зависимых от них компонентов. Не удается найти указанный файл."

Как это можно исправить !!!????Прошу помочь...
  • 0

#15 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 25 августа 2011 - 07:59

Selenium рассчитан на работу с .Net 3.5, версия .Net 4.0 пока официально не поддерживается, хотя вроде бы уже все известные несовместимости устранены.
Воркэраунд читать тут или тут.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#16 R3VoLuT1OneR

R3VoLuT1OneR

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Житомирский Павер Игоревичь

Отправлено 25 августа 2011 - 08:30

Я бы использовал JMeter для нагрузочных тестов на сайт.
  • 0

#17 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 25 августа 2011 - 09:35

Я бы использовал JMeter для нагрузочных тестов на сайт.

Мне просто нужно найти инструмент для нагрузочного тестирования. Ищу разные варианты. Jmeter уже пробовал. Так же пробовал: WAPT,LoadComplete,Microsoft Web application stress tools.
Я сейчас тоже склоняюсь к JMeter )))
  • 0

#18 Lemur

Lemur

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Левиков Владимир Владимирович

Отправлено 25 августа 2011 - 09:46

Selenium рассчитан на работу с .Net 3.5, версия .Net 4.0 пока официально не поддерживается, хотя вроде бы уже все известные несовместимости устранены.
Воркэраунд читать тут или тут.

В студии я использую Microsoft .NET Fraemwork 3.5 SP1 . Может из-за того что SP1 ?
  • 0

#19 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 25 августа 2011 - 10:05

Есть такое слово -- AJAX. Тестировать сайты с динамическим контентом, используя традиционные (протоколо-ориентированные) инструменты генерации нагрузки, крайне сложно.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#20 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 871 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 25 августа 2011 - 10:08


Selenium рассчитан на работу с .Net 3.5, версия .Net 4.0 пока официально не поддерживается, хотя вроде бы уже все известные несовместимости устранены.
Воркэраунд читать тут или тут.

Я использую Microsoft .NET Fraemwork 3.5 SP1 . Может из-за того что SP1 ?

Может быть. Посмотрите, какая версия Newtonsoft.Json в него входит.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных