Test
(权)
1
已经尝试了课程中的threading和seleniumgrid,pytest-xdist来进行并发,都遇到了问题
threading:
遇到问题:
(1)假设并发4个浏览器,开启4个浏览器,但是每个浏览器的操作,都作用在了同一个浏览器上
(2)成功并发了多个浏览器,日志与测试报告混杂在一起,无法分辨
seleniumgrid:
遇到问题:
(1)课程上讲的是一个测试用例分发到多个node上执行,如果有多个测试用例时候,我应该怎么编写?是把这部分driver登录封装在conftest里面吗
(2)hub直接分发给node是测试用例,我如何告诉node节点,日志和报告存放的位置,并在最后进行回收?
pytest-xdist:
遇到问题:
(1)成功实现了单台机器上并发执行全部用例,但是如果用例均需要登录,如何指定登录不同的账号,以免造成登录被挤下线的问题
(2)上述实现了单台机器上并发不同测试用例,如果是并发相同测试用例,如何实现?
1)到底并发成功没,好像一会并发不成功,一会又成功了?
2)日志要分别保存在本地呀,多进程显示肯定要混在一起
pytest-xdist
1)参数化数据驱动,把账号密码数据存入 list ,用 pytest 的 parametrize
2) 参数化数据驱动填写多个假数据,或者直接多线程
Test
(权)
3
https://github.com/testQx/UI-BL.git
这是我第一个问题的项目代码
是有并发成功,不过打开4个浏览器,全部操作都作用在同一个浏览器上了
pytest-xdist这个参数化我试一下!谢谢老师
还有个问题就是seleniumgrid在老师录播时候,说分发给多个节点,通过多线程来实现,那么怎么去管理日志和报告呢
Test
(权)
4
使用pytest-xdist已经解决并发问题
seleniumgrid的node节点的日志和报告已解决(通过driver控制)
现在还有个问题:
还有threading能否解决在一台电脑上并发多个浏览器时作用于同一个浏览器
pytest-xdist 也是 threading ,我觉得是 driver 初始化的问题
Test
(权)
6
尝试看了一下,好像通过pytest.main去收集用例时候,是不允许并发的,其中一条会导致失败,pytest-xdist能够并发,是只因为收集了一次;通过打印详细日志,发现的确是有创建多个sessionid,但是由于用例收集失败了,导致所有请求都并发到了同一个sessionid