自动化工具 请教,UI 自动化执行,并发用例执行解决方案

白纸 · 2020年12月26日 · 最后由 Thirty-Thirty 回复于 2020年12月29日 · 3517 次阅读

现状

  • 自动化框架:Selenide
  • 现在的 Selenium Grid: zalenium
  • 测试框架:TestNg

使用服务器
Jenkins:4U16G
zalenium: 32U64G

用例执行

测试用例:257
TestNg :thread-count="5"
zalenium:

docker run -tid --restart always --name zalenium -p 4444:4444  -v /var/run/docker.sock:/var/run/docker.sock  -v /tmp/videos:/home/seluser/videos  --privileged dosel/zalenium start  --timeZone "Asia/Shanghai"  --videoRecordingEnabled true  --keepOnlyFailedTests true  --desiredContainers 10  --maxDockerSeleniumContainers 50

TestNg :thread-count="10"需要时间 10 分钟
TestNg :thread-count="20"还是需要时间 10 分钟

然后我这边有 10 个环境需要验证,这样的执行效率完全不理想!

请教一下

各位大佬的公司在大用例情况下,并发执行 UI 自动化测试的解决方案用的是啥.
如何实现多用例 UI 自动化 高效的执行,压缩一下执行时间.

共收到 9 条回复 时间 点赞

并行级别是什么 运行时确定是 20 个线程在跑吗

fiskeryang 回复
<suite verbose="2" preserve-order="true" name="Marketing Test" parallel="classes" thread-count="20">

testngxml

@zailushang @Lihuazhang @seveniruby @ycwdaaaa 各位大佬有方案可以分享下吗

白纸 回复

你的 class 有多少个呢? 感觉这个并发是基于 class 的

用例并发执行和分布式执行是两个概念。
首先你确认你是要并发执行吗?

白纸 回复

分析下日志 看看为什么增加了并行数 速度没有增加

Jerry li 回复

250+ 个

Thirty-Thirty 回复

用例并发执行
gird 浏览器 --desiredContainers 10 --maxDockerSeleniumContainers 50 最大 50

白纸 回复

suite verbose="2" preserve-order="true" name="Marketing Test" parallel="classes" thread-count="20"
改成 parallel="tests"或"methods"试试吧。
也可以参考https://blog.csdn.net/taiyangdao/article/details/52159065?utm_source=blogxgwz3
另外说句,你就算真的把并发搞起来了,你很可能也就掉进另一个坑了,很可能用例并行执行的时候存在互相干扰和资源争夺问题。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册