我目前的设置是我在Windows机器上运行作为集线器的selenium RC(假设机器名称是machine.name.com).我使用以下命令启动它
java -jar selenium-server2.15.jar -role hub -port 5555
Run Code Online (Sandbox Code Playgroud)
我有一个在同一台机器上运行的selenium节点,它注册到上面的节点.我使用以下命令启动节点
java -jar selenium-server2.15.jar -role node -port 5554 -hub http://machine.name.com:5555/grid/register
Run Code Online (Sandbox Code Playgroud)
此节点已成功注册,我也可以运行此节点的测试.
现在我有另一台机器(LINUX一个 - 让我们假设这台机器的IP地址是10.123.123.123),表格我希望在5555端口的windows(machine.name.com)机器上运行注册到集线器的另一个节点我使用以下命令启动节点.
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX,maxInstances=5
Run Code Online (Sandbox Code Playgroud)
问题是该节点没有被HUB注册.
我确实知道Hub和Node已经检测到对方,因为当我在浏览器上点击 http://machine.name.com:5555/console时,两个节点都会显示出来.但Linux机器旁边有一条错误信息" 在http://10.123.123.123:5572上收听(目前无法联系) "
并且不能从该节点运行硒测试.
我在这里阅读seleniumgroups ,远程节点也必须定义-hubHost键值对.所以我也尝试了以下命令,但没有成功
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com"
Run Code Online (Sandbox Code Playgroud)
但是这也没有注册节点.
请注意,linux机器上的控制台上没有抛出任何错误.所有显示的是 -
13:20:55.891 INFO - starting auto register thread. Will try to register every 5000ms
13:20:55.891 …Run Code Online (Sandbox Code Playgroud) 我正在使用具有13个节点的selenium网格,每个节点仅限于一个chrome实例.我的项目在不同时间使用大多数节点.
将来,我需要添加更多节点 - 由于更多的测试,并行执行,不同的浏览器等.问题是我无法确切地知道网格节点的利用率是多少.
有没有办法从网格中获取以下统计信息:
谢谢Tizki
我有本地运行良好的Protractor测试(directConnect:true),但是当我尝试在远程Selenium服务器(Grid)上运行它们时,我总是收到以下消息.
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
Run Code Online (Sandbox Code Playgroud)
查看故障,消息和堆栈显示以下所有测试用例:
Message:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Stack:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at Timer.listOnTimeout (timers.js:92:15)
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,例如增加jasmine超时间隔,将更早的超时(例如getPageTimeout和allScriptsTimeout)添加到conf,但它仍然会抛出jasmine超时错误.该日志显示以下错误:
00:03:18.328 INFO - Done: [execute async script: try { return (function (rootSelector, ng12Hybrid, callback) {
var el = document.querySelector(rootSelector);
try {
if (!ng12Hybrid && window.getAngularTestability) {
window.getAngularTestability(el).whenStable(callback);
return;
}
if (!window.angular) {
throw new Error('window.angular is …Run Code Online (Sandbox Code Playgroud) 是否有一个很好的教程或有没有人有设置这个的经验?我有一个Testsuite.html,它在一个浏览器atm中启动我的测试.这是在maven selenium插件的集成测试生命周期中完成的.我想在多个浏览器上运行我的测试.我找不到关于selenium grid + maven的任何文档.我希望有人可以帮助我.
提前谢谢,kukudas
我的一个测试用例是将文件上传到应用程序.通过创建伪造文件并获取文件的绝对路径并填充输入字段并单击上载,可以轻松完成Witouth网格.但是,当我使用网格时,该文件不在托管该节点的计算机上.无论如何要么将文件发送到节点或告诉节点创建文件并获取绝对路径.
任何人都可以帮助解决阻止Karma javascript测试运行器连接和使用我的selenium网格/服务器的问题?
我有一个成功运行的selenium网格环境,我已经使用python selenium绑定进行Web应用程序系统测试.我目前正在运行Selenium Server v.2.34.0,它有4个独立的网格节点连接到它.
我还想利用和重用这个资源来针对多个浏览器进行javascript测试.具体来说,我正在使用基于node.js的Karma测试运行器执行基于jasmine的单元测试.我已经安装了" karma-webdriver-launcher "插件.我可以运行我的javascript测试与karma本地产生firefox,chrome或IE浏览器就好了.
当我尝试使用远程selenium服务器从池/服务器场使用浏览器时,它无法找到浏览器,我收到以下警告输出:
DEBUG [config]: autoWatch set to false, because of singleRun
DEBUG [plugin]: Loading karma-* from C:\nodedebug\itpt\node_modules
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-chrome-launcher.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-firefox-launcher.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-html-reporter.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-ie-launcher.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-jasmine.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-phantomjs-launcher.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-typescript-preprocessor.
DEBUG [plugin]: Loading plugin C:\nodedebug\itpt\node_modules/karma-webdriver-launcher.
DEBUG [plugin]: Loading inlined plugin (defining launcher:firefox).
INFO [karma]: Karma v0.12.16 server started at http://localhost:9876/ …Run Code Online (Sandbox Code Playgroud) 我得到以下stacktrace:
{
"status": 13,
"value": {
"class": "java.lang.NullPointerException",
"stackTrace": [
{
"fileName": "ExternalSessionKey.java",
"className": "org.openqa.grid.internal.ExternalSessionKey",
"methodName": "fromWebDriverRequest",
"lineNumber": 77
},
{
"fileName": "WebDriverRequest.java",
"className": "org.openqa.grid.web.servlet.handler.WebDriverRequest",
"methodName": "extractSession",
"lineNumber": 62
},
{
"fileName": "RequestHandler.java",
"className": "org.openqa.grid.web.servlet.handler.RequestHandler",
"methodName": "getSession",
"lineNumber": 237
},
{
"fileName": "RequestHandler.java",
"className": "org.openqa.grid.web.servlet.handler.RequestHandler",
"methodName": "process",
"lineNumber": 119
},
{
"fileName": "DriverServlet.java",
"className": "org.openqa.grid.web.servlet.DriverServlet",
"methodName": "process",
"lineNumber": 83
},
{
"fileName": "DriverServlet.java",
"className": "org.openqa.grid.web.servlet.DriverServlet",
"methodName": "doGet",
"lineNumber": 61
},
{
"fileName": "HttpServlet.java",
"className": "javax.servlet.http.HttpServlet",
"methodName": "service",
"lineNumber": 707
}, … 如何通过RemoteWebDriver从公司代理服务器后面连接到诸如BrowserStack之类的selenium网格?
被测试的应用程序在代理之外,可以从BrowserStack免费访问.
这个使用Selenium RemoteWebDriver背后的企业代理(Java) stackoverflow问题提出了同样的问题,但我无法按照接受的答案.
我是 Selenium 的新手,并且正在使用 Selenium 在维护会话的同时同时导航到同一网站的多个页面。我可以通过以下两种方式创建控制器:
我了解 Selenium Grid 通过使用集线器节点概念来支持分布式执行;但与选项 1 相比,我将获得哪些主要好处。
我看到有人使用选项 1,但面临一些问题。参考:Selenium 中没有网格的多个 WebDriver 实例?
是否建议在多线程环境中使用 Grid over Selenium WebDriver?如果是这样,为什么?此外,Selenium Grid 是否会负责清除其节点中的任何陈旧浏览器实例(开箱即用)?
java selenium multithreading selenium-grid selenium-webdriver
我正在使用 Docker 容器执行自动化测试。我必须在同一服务器上运行多个应用程序的测试套件。但是,如果每个 selenium hub docker 容器都有相同的端口,那么我无法同时运行所有这些套件。因此我想为每个 selenium/hub docker 容器分配不同的端口。有什么方法可以更改集线器容器的端口吗?或者我是否需要编写自己的 dockerfile 而不是使用 selenium/hub docker 镜像?
我的 docker-compose 文件看起来像这样
version: "3"
services:
selenium-hub:
restart: always
image: selenium/hub:latest
ports:
- "4444:4444"
environment:
- GRID_BROWSER_TIMEOUT=300
- GRID_TIMEOUT=300
selenium-chrome:
restart: always
image: selenium/node-chrome:latest
depends_on:
- selenium-hub
volumes:
- /dev/shm:/dev/shm
links:
- selenium-hub:hub
environment:
- HUB_PORT_4444_TCP_ADDR=selenium-hub
- HUB_PORT_4444_TCP_PORT=4444
- JAVA_OPT=-Xmx512m
- DBUS_SESSION_BUS_ADDRESS=/dev/null
- no_proxy=localhost
- HUB_ENV_no_proxy=localhost
- GRID_BROWSER_TIMEOUT=300
- GRID_TIMEOUT=300
selenium-firefox:
restart: always
image: selenium/node-firefox:latest
depends_on:
- selenium-hub
volumes:
- /dev/shm:/dev/shm
links:
- selenium-hub:hub
environment: …Run Code Online (Sandbox Code Playgroud)selenium automated-tests selenium-grid docker docker-compose
selenium-grid ×10
selenium ×7
java ×3
selenium-rc ×2
angularjs ×1
chef-infra ×1
docker ×1
javascript ×1
karma-runner ×1
maven-2 ×1
node.js ×1
protractor ×1