Selenium python+selenium grid 并发执行测试用例,不能并发

电工 · 2020年09月01日 · 最后由 liqi629 回复于 2020年10月13日 · 2406 次阅读

最近想模拟多个用户同时登录,我在本机上启动了一个 hub 和 2 个 node,但是执行时,还是先启动一个浏览器执行了登录 jiayu,在开启第二个浏览器登录 admin,没有并发执行,想请教下各位大佬,如何操作,我看不是默认的 node 最大启动 5 个 chrome,selenium console 如下:

代码如下:

最佳回复

并不是,pytest 可以支持并发多少个线程执行的,和你的 selenium 代码没啥关系

共收到 8 条回复 时间 点赞

你的 pytest case 不是并发执行的,和 selenium 的设置没关系

Jerry li 回复

意思我在代码里面还是要写多线程才能并发哇

Jerry li 回复

那其实我在一台机器上面并发多个浏览器,并不需要 grid 哇,直接代码里面写并发就行了哇

并不是,pytest 可以支持并发多少个线程执行的,和你的 selenium 代码没啥关系

残枫 回复

没太明白,大佬可以详细说一下吗,感谢

电工 回复

pytest 安装个 pytest-xdist 就能并发执行测试。 这种并发和 grid 的区别有二:

  1. pytest 并发只能是单机运行,有性能瓶颈。 grid 的方式通过搭建浏览器集群可部署在多台机器上,多节点分布式运行可以解决单机性能瓶颈的问题。 同时 grid 也有故障检测能力,某个点挂了,它可以检查出来,使用别的节点运行测试
  2. grid 的方式可以有更好的资源利用率和团队协作方式。 通过 grid 搭建的浏览器集群可以给团队中所有项目使用。
孙高飞 回复

是的,最后我用了 pytest-xdist,
大佬居然给我回帖了,今天的心情好一天,

lZ 你好,pytest-xdist 的并发,应该是无序的吧。即同一个测试类里面的 case,不是按照写好的顺序运行

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