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

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

最近想模拟多个用户同时登录,我在本机上启动了一个 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,不是按照写好的顺序运行

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