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

Фотография

Запуск тестов Selenium 2.0 на другом хосте


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

#1 contestar

contestar

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:Алексей

Отправлено 21 октября 2010 - 14:21

Привет,
Сейчас пробую selenium 2.0 (Webdriver) для тестирования web-приложений. До этого использовал seleniumRC + java +junit. Тесты запускал на виртульной машине путём указания её ip в setUp(). Каким образом запустить тесты не на localhost, а допустим на виртуалке с ip 192.168.1.51?
  • 0

#2 LarianVonLich

LarianVonLich

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

  • Members
  • Pip
  • 46 сообщений


Отправлено 16 сентября 2011 - 14:55

к стати да. это тоже очень интересно. как с делать?
  • 0

#3 barancev

barancev

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

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


Отправлено 16 сентября 2011 - 15:06

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

#4 Svetlanka

Svetlanka

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Svetlanka

Отправлено 02 декабря 2011 - 14:16

RemoteWebDriver


При этом для запуска тестов от Selenium2 необходимо запускать на этой удаленной машине StandaloneServer?(Как если бы тесты были написаны на RC)
  • 0

#5 barancev

barancev

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

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


Отправлено 05 декабря 2011 - 12:00

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

#6 Svetlanka

Svetlanka

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

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Svetlanka

Отправлено 09 декабря 2011 - 10:32

Да, на удаленной машине нужно запускать Selenium Server.
Сейчас Selenium Server единый, он поддерживает оба протокола -- и для WebDriver, и для RC, можно запускать старые и новые тесты одновременно и вперемежку.

Спасибо за ответ!
Возникает более детальный вопрос:

При запуске теста удаленно, с браузером htmlunit и capabilities:
Capabilities [{platform=ANY, cssSelectorsEnabled=true, javascriptEnabled=true, browserName=htmlunit, version=}]
- при вызове сайта с редиректом и возвращающем данные в куки, получаю ошибку:
"org.openqa.selenium.WebDriverException: TypeError: Cannot call method "U" of null (https://plus.google.com/_/apps-static/_/js/widget/gcm_ppb,googleapis_client,plusone/rt=j/ver=e2aeFIS-OiU.ru./sv=1/am=!OArIw3zIwiaIHKXKcg/d=1/#2);"

Аналогичный вызов того же сайта с удаленным firefox-браузером проходит успешно.
Как-то можно решить данную проблему?Пробовала отключить javascriptEnabled - не удалось: актуальные Capabilities вернулись такие:
Capabilities actualCapabilities = ((RemoteWebDriver) driver).getCapabilities();--->
Capabilities [{platform=ANY, cssSelectorsEnabled=true, javascriptEnabled=true, browserName=htmlunit, version=}]
_
Сама строка, на которую ругается WebDriver, при вызове пытается загрузить файл...

Привожу полную простыню Exception'а - вдруг поможет:
________________________________________________________________________________
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: TypeError: Cannot call method "U" of null (https://plus.google.com/_/apps-static/_/js/widget/gcm_ppb,googleapis_client,plusone/rt=j/ver=e2aeFIS-OiU.ru./sv=1/am=!OArIw3zIwiaIHKXKcg/d=1/#2)
Build info: version: '14666', revision: 'unknown', time: '2011-11-10 19:22:03'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_29'
Driver info: driver.version: EventFiringWebDriver
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1057)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:854)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:429)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:267)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3183)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:490)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:589)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499)
at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:973)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:349)
at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:642)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$400(JavaScriptEngine.java:79)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:590)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499)
at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:973)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:349)
at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:642)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$400(JavaScriptEngine.java:79)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:590)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:474)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:870)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeInlineScriptIfNeeded(HtmlScript.java:302)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:368)
at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230)
at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:240)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:598)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:556)
at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1142)
at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1044)
at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3018)
at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2005)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:908)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:789)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:225)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:179)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:221)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:106)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:433)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:345)
at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:332)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:99)
at $Proxy1.get(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.get(EventFiringWebDriver.java:153)
at org.openqa.selenium.remote.server.handler.ChangeUrl.call(ChangeUrl.java:39)
at org.openqa.selenium.remote.server.handler.ChangeUrl.call(ChangeUrl.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
  • 0

#7 barancev

barancev

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

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


Отправлено 12 декабря 2011 - 08:16

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


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

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