Appium 问下大家 appium+pytest 多并发都是怎么传递 driver 参数的

Time · 2021年06月09日 · 最后由 驭我 回复于 2021年06月10日 · 3978 次阅读



想法:这边已经把 connectDevice() 函数写在了 conftest.py 文件里面了,定义为 session 级别,我看了下 session 级别是任何 py 文件里都可以调用,但是这边我想在 setup_class 前去调用到获取到的 driver,然后方便执行用例,可是这边提示缺少 connectDevice。请问大家都是怎么解决的,谢谢

共收到 7 条回复 时间 点赞

有点不理解,还能在同一台设备上同时跑多条用例呢?

可以把 diver 封装到 conftest.py 文件中,将其作为参数传递用例中。fixture 中的 conftest, fixture 中返回应该用 yield 吧,好像不能用 return. 直接 scope=function,传入方法试一试呢,我一般这样实现的

conftest 里定义的方法是作为前置或者后置处理的,函数名已_fixture 结尾,如 “xxx_fixture”,在 case 执行前调用,使用@pytest.mark.parametrize(xxx_fixture) 即可实现处理

Time #4 · 2021年06月09日 Author
木月 回复

不是的哦,这是多台设备的并发执行

Time #5 · 2021年06月09日 Author
驭我 回复

感谢,换成 yield 配合 function 可以使用

Time #6 · 2021年06月09日 Author


更改 return 为 yield,把 scope 级别从 session 改成 function 可行

Time 回复

没事儿没事儿,一起在 testerhome 中成长

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