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

Time · June 09, 2021 · Last by 驭我 replied at June 10, 2021 · 4807 hits



想法:这边已经把 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 · June 09, 2021 Author
木月 回复

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

Time #5 · June 09, 2021 Author
驭我 回复

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

Time #6 · June 09, 2021 Author


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

Time 回复

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up