php - PHP、Docker、Selenium Grid:如何运行测试?
问题描述
有 Docker 容器:本地项目(php-framework)、Selenium Grid、Selenium Nodes(Chrome、Opera ...)。如何运行使用 Selenium IDE (Python) 生成的测试?
来自 docker-compose.yml 的设置如下:
selenium-hub:
image: selenium/hub:latest
volumes:
- ./project/tests/Selenium:/tests
container_name: selenium-hub
ports:
- 4444:4444
chrome:
image: selenium/node-chrome:latest
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
links:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
ports:
- 5900
解决方案
有几种方法可以运行您的测试。我最喜欢的 WebApplications 是使用 Selenium IDE 记录测试并将其导出为 .side 文件。
你可以在这里获得 Selenium IDE: https ://www.selenium.dev/selenium-ide/
现在,请务必检查 selenium-side-runner 的语法和安装说明: https ://www.selenium.dev/selenium-ide/docs/en/introduction/command-line-runner
之后,您可以使用selenium-side-runner对您的集线器运行测试,例如:
selenium-side-runner --server http://127.0.0.1:4444/wd/hub --debug -c "browserName='chrome'" --output-directory ~/out ~/myrecordedtest.side
Side runner 可以在本地机器上启动,也可以在运行 docker 容器的主机上启动,也可以在容器内启动。
如果这可行,您可以开始编写一些测试,这是生成测试的另一种方式。
我真的很喜欢使用 Zalenium,它是 Zalando 开源的一个堆栈。也有一些很好的教程可以与普通硒集线器一起使用: https ://opensource.zalando.com/zalenium/
推荐阅读
- python - 试图弄清楚如何传递函数,以便它可以显示值
- database - 保存用户是否在 MongoDB 中做过某事的条件:我应该使用哪种字段类型?
- javascript - 为页面上多种类型的元素添加监听器和值
- spring - 在 Feign 客户端中设置 cookie
- go - go env 显示 GOPATH 不匹配
- javascript - 如何在 react.js 中传递数据/值名称
- deep-learning - 是否应该保持小批量中输入数据的序列性质?
- powershell - 使用 Powershell 解析 .msg 文件以获取收件人、发件人、主题和日期
- react-native - 无法从 Tab.Navigator 中删除 Tab.Screen
- python - 如何将数组的每个元素分配给python中的不同变量