问题标签 [zalenium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2110 浏览

node.js - 从另一个 Docker 容器为 Zalenium 运行 Selenium 命令

由于我当前项目的情况,我需要一起使用 2 个 docker 图像进行硒测试。

一种叫做扎伦铵。我通过 docker-compose 演示完成并工作。它基本上类似于 selenium docker repo,只是它可以录制视频并显示实时进度。

另一张图片是一个 NodeJS 服务器,预装了 Mocha 和 selenium-webdriver 的 nodejs(npm 包),这样我就可以运行命令来触发浏览器自动化。详细信息在这里(https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver)和这里(https://hub.docker.com/r/qmu1/selenium-webdriver-节点/ )

您可以在这里看到从 docker compose 运行的 Zalenium。我可以正确地看到每秒更新的时间,因此它肯定会显示实时视图。

在此处输入图像描述

根据我正在使用的另一个 docker 容器的文档(https://hub.docker.com/r/qmu1/selenium-webdriver-node/),我应该能够简单地使用 docker 运行测试像这样的命令。

我更改了这个命令以满足我的需要,直到它看起来很有效。

我得到了回应:

问题是......在 Zalenium 上,我没有看到查看器发生任何事情来验证它是否正常工作?

我的硒脚本如下所示。

我尝试不使用 --net 命令并使用...但没有运气。这样您就可以看到网络详细信息和正在运行的容器。您可以看到 zalenium 已添加到 distributiontech_default 网络。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

如何将运行 selenium 代码的 docker 容器连接到运行 Zalenium 的 docker hub?

我尝试将其更改为...

但也没有运气。我可以将任何我想要的假地址放在它说 localhost 的地方,而且它似乎没有抛出任何错误或任何奇怪的东西。

0 投票
2 回答
3760 浏览

java - Selenium-Webdriver NodeJS 等价于 DesiredCapabilities 的 Java 代码

我已经搜索了位于此处( http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_Capabilities.html )的 selenium-webdriver 的文档(几乎没有)

我不知道从 Java 到 NodeJS 的等效代码是什么。

这是 JAVA 中的代码(我从这里的测试配置选项部分复制,https://github.com/zalando/zalenium/blob/master/docs/usage_examples.md#initial-setup

特别是我想设置功能“名称”,以便我可以使用 Zalenium 命名我的测试。

我如何在 NodeJS 中做到这一点?

这是我当前的 selnium webdriver 代码,它可以工作(并且被编辑以删除敏感信息)但没有设置测试名称。我已经尝试过这个 .withCapabilities(webdriver.Capabilities.chrome(),{"name","chrometest"}) 并且它可以编译,但我认为它没有任何作用?

0 投票
1 回答
365 浏览

docker - Docker & Zalenium:由于无效引用格式错误而无法启动

对 docker 和 docker 基础设施来说真的很新。所以从官方的Zalenium github 页面我成功地遵循了所有步骤,直到我明白了这一点:

执行后我得到:

在对 SOF 进行研究时,我已经在这里这里登陆,但在我的情况下似乎没有任何效果。我试图替换--rm -ti到表达式的末尾:没用

我确定我必须遵循特定的格式,但找不到线索(缺少逗号、错误的反斜杠、不必要的空格)。感谢您的帮助。

0 投票
1 回答
3035 浏览

docker - Windows 上的 Docker-for-selenium

目前 selenium HQ/docker-for-selenium 可用于 Linux 操作系统。

在这里,他们试图在 Linux 上使用 docker 实现 selenium 网格。

我的主要目标是在 Windows 中实现相同的目标。我不知道我将在这里面临什么挑战。

所以创建这个线程来讨论实施时的挑战。

0 投票
1 回答
642 浏览

docker - 从另一个 Docker 实例运行 Zalenium 测试

出于自动化测试的目的,我尝试使用 Zalenium Docker 系统运行 UI 测试。

测试在 Jenkins slave 上执行,并从 Pipeline 脚本执行:

然后我使用另一个 Docker 容器来执行测试:

当我执行测试时,我看到以下错误:

我不确定正确的地址应该是什么。有任何想法吗?

0 投票
1 回答
933 浏览

c# - Zalenium,不能使用超过 3 个容器

我正在使用 zalenium/docker 为 selenium 网格创建一个 dockerized 解决方案。在第一次启动时,测试在所有创建的容器上正常运行(容器是在测试运行之前创建的)。但是,当我第二次运行测试时,我无法获得超过 3 个容器来运行我的测试。我对这个话题很陌生,也许我对测试本身做错了。我并行运行它们(C#)。测试本身确实一直在完成,但是通过更多容器可以改善完成它们所需的时间。这是我的命令和参数:

docker run --rm -ti --name zalenium -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/videos:/home/seluser/videos --特权dosel/zalenium 启动--desiredContainers 8 --maxDockerSeleniumContainers 8 --maxTestSessions 4

我现在已经在 Windows 10 机器上安装了 docker。

更新:在 /grid/console 视图中有这一行:

1 请求等待插槽空闲。功能 {browserName: firefox, platform: LINUX, zal:name: myTestName2}

0 投票
2 回答
252 浏览

capybara - Capybara tests being run against Zalenium can't find images

I have been working on using Zalenium for running our capybara tests against.

The tests run, but I am unable to upload images for testing image uploads.

I have mounted the folder with the images in the Zalenium containers and I have checked that the images are there, but I get a file not found error when using the file path to the images within the containers.

Zalenium config:

Browser config:

0 投票
1 回答
371 浏览

docker-volume - 如何设置 zalenium 卷访问模式:ReadWriteMany

我是码头工人的新手。我想与 zalenium 共享文件,但如何通过 accessModes:ReadWriteMany?

我的测试用例需要文件上传。

我像下面一样运行zalenium

我有一个文件要与 zalenium contaniers 共享。

我的共享文件夹:-v /d/shared_folder:/data

当我查看 zalenium 网站时,他们提到了共享文件夹

和 Docker 版本的 Zalenium 一样,Kubernetes 版本可以自动挂载共享文件夹,唯一需要注意的是,当你使用持久卷时,需要确保将 Access Mode 设置为 ReadWriteMany,否则 selenium 节点将无法安装它。

我没有找到任何例子。

感谢您的先进。

0 投票
1 回答
412 浏览

docker - Zalenium grid container returns 403 forbidden -nginx

I am running selenium tests on the zalenium grid. Currently configured to run 4 grid docker containers to run the Selenium tests. 2 containers seems to run the tests fine against the application URL and 2 other containers return 403 Forbidden from nginx while running the tests against the same application URL.

The traffic is routed to application via ingress which has the IP whitelisted range of the kubernetes nodes where the container is currently running.

0 投票
2 回答
1508 浏览

kubernetes - Zalenium 就绪探测失败:HTTP 探测失败,状态码:502

我正在尝试在 Azure 中新部署的 aks Kuberbetes (1.9.6) 集群中部署 zalenium helm 图表。但我不让它工作。该吊舱正在给出以下日志:

[bram@xforce zalenium]$ kubectl logs -f zalenium-zalenium-hub-6bbd86ff78-m25t2 找到 Kubernetes 服务帐户。正在为仪表板复制文件... cp:无法创建常规文件“/home/seluser/videos/index.html”:权限被拒绝 cp:​​无法创建目录“/home/seluser/videos/css”:权限被拒绝 cp:​​无法创建目录'/home/seluser/videos/js':权限被拒绝正在启动 Nginx 反向代理......正在启动 Selenium Hub..............08:49:14.052 [main] INFO oogrid.selenium。 GridLauncherV3 - Selenium 构建信息:版本:'3.12.0',修订:'unknown' 08:49:14.120 [main] INFO oogrid.selenium.GridLauncherV3 - 在端口 4445 ...08:49:15.125 上启动 Selenium Grid 集线器 [ main] INFO dzezckKubernetesContainerClient - 初始化 Kubernetes 支持 ..08:49:15.650 [main] WARN dzezck KubernetesContainerClient - 初始化 Kubernetes 支持时出错。io.fabric8.kubernetes.client.KubernetesClientException:操作:[get] for kind:[Pod] with name: [zalenium-zalenium-hub-6bbd86ff78-m25t2] in namespace: [default] 失败。在 io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62) 在 io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:71) 在 io.fabric8.kubernetes.client.dsl.base .BaseOperation.getMandatory(BaseOperation.java:206) 在 io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:162) 在 de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient.( KubernetesContainerClient.java:87) 在 de.zalando.ep.zalenium.container.ContainerFactory.createKubernetesContainerClient(ContainerFactory.java: handleResponse(OperationSupport.java:379) 在 io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:344) 在 io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport. java:313) 在 io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:296) 在 io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet(BaseOperation.java:770)在 io.fabric8.kubernetes.client.dsl.base.BaseOperation.getMandatory(BaseOperation.java:195) ... 省略了 16 个常见框架 08:49:15.651 [main] INFO dzezckKubernetesContainerClient - 即将清理任何剩余的 selenium pod由 Zalenium 创建 用法:[选项] 选项:--debug,-debug :启用 LogLevel.FINE。默认值:false --version, -version 显示版本并退出。默认值:false -browserTimeout 以秒为单位:WebDriver 命令运行时允许浏览器会话挂起的秒数(例如:driver.get(url))。如果在 WebDriver 命令仍在处理时达到超时,会话将退出。最小值为 60。未指定、零或负值表示无限期等待。-matcher, -capabilityMatcher 类名:实现 CapabilityMatcher 接口的类。指定集线器将遵循的逻辑来定义是否可以将请求分配给节点。例如,如果您希望匹配过程在指定浏览器版本时使用正则表达式而不是完全匹配。然后,网格生态系统的所有节点将使用相同的能力匹配器,如此处所定义。-cleanUpCycle in ms :指定集线器轮询正在运行的代理以查找超时(即挂起)线程的频率。还必须指定“ 等待节点可用的新测试将超时。发生这种情况时,测试将在尝试启动浏览器之前引发异常。未指定、零或负值表示无限期等待。默认值:600000 -port:服务器将使用的端口号。默认值:4445 -prioritizer 类名:实现 Prioritizer 接口的类。如果要在有队列时对处理新会话请求的顺序进行排序,请指定自定义优先级。默认为 null ( no priority = FIFO ) -registry 类名:实现 GridRegistry 接口的类。指定集线器将使用的注册表。默认值:de.zalando.ep.zalenium.registry.ZaleniumRegistry -角色选项是 [hub]、[node] 或 [standalone]。默认值:集线器 -servlet,-servlets :网格(集线器或节点)将提供的额外 servlet 列表。在命令行上指定多个:-servlet tld.company.ServletA -servlet tld.company.ServletB。servlet 必须存在于路径中: /grid/admin/ServletA /grid/admin/ServletB -timeout, -sessionTimeout in seconds :指定服务器自动终止在过去 X 秒内没有任何活动的会话之前的超时时间. 然后将释放测试槽以供另一个测试使用。这通常用于处理客户端崩溃。对于网格集线器/节点角色,还必须设置 cleanUpCycle。-throwOnCapabilityNotPresent true 或 false :如果为 true,如果当前没有注册兼容代理,集线器将拒绝所有测试请求。如果设置为 false,则请求将排队,直到支持该功能的节点向网格注册。-没有Servlet,-withoutServlets :要禁用的默认(集线器或节点)servlet 列表。仅限高级用例。并非所有默认 servlet 都可以禁用。在命令行上指定多个:-withoutServlet tld.company.ServletA -withoutServlet tld.company.ServletB org.openqa.grid.common.exception.GridConfigurationException:使用 de.zalando.ep.zalenium.registry.ZaleniumRegistry 创建类时出错:null在 org.openqa.grid.web.Hub.(Hub.java:97) 在 org.openqa.grid.selenium.GridLauncherV3$2.launch(GridLauncherV3.java:291) 在 org.openqa.grid.selenium.GridLauncherV3.launch (GridLauncherV3.java:122) at org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:82) 原因:de.zalando.ep.zalenium.registry.ZaleniumRegistry.(ZaleniumRegistry. java:74) 在 de.zalando.ep.zalenium.registry.ZaleniumRegistry.(ZaleniumRegistry.

描述 pod 给出:Warning Unhealthy 4m (x12 over 6m) kubelet, aks-agentpool-93668098-0 Readiness probe failed: HTTP probe failed with statuscode: 502

Zalenium 图像版本:dosel/zalenium:3

如果使用 Kubernetes,请指定您的环境,如果相关,您的清单:我使用来自https://github.com/zalando/zalenium/tree/master/docs/k8s/helm的模板

我猜它与 rbac 有关系,因为这部分“初始化 Kubernetes 支持时出错。io.fabric8.kubernetes.client.KubernetesClientException: Operation: [get] for kind: [Pod] with name: [zalenium-zalenium-hub-命名空间中的 6bbd86ff78-m25t2]:[默认] 失败。在“

我为 Helm 图表自动创建的服务帐户 zalenium-zalenium 创建了一个 clusterrole 和 clusterrolebinding。