请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

pytest框架下如何往base_driver里传多线程的i?

老师,你好,我是采用的pytest框架,不是unittest框架,那从哪里能获取到传到android_driver方法里的“i”呢?有什么建议么?
我的理解是:既然已经能够做到把所有设备信息写入到yaml文件里了,那就是执行的问题了,视频里我看是在执行的时候启用多线程,测试类继承unittest,然后把线程i传禁区,最后根据线程,分别执行测试用例,但是在pytest里,因为是命令行开始执行的测试用例,那就不需要在写多线程的代码去执行测试用例了,那这个“i”应该如何获取呢?

正在回答 回答被采纳积分+3

1回答

Mushishi 2020-07-02 11:23:14
0 回复 有任何疑惑可以回复我~
  • 提问者 无名_丁 #1
    老师,看完这个文章后,总体思路是不是用fixture和conftest来把值传进来?
    我的android_driver方法里是按照视频里的来写的,需要传i,然后server.py的代码也是按照视频写的,是不是我就需要再用conftest来把server.py的代码和android_driver连接起来?
    我conftest文件是放到testcase包下面了,里面的代码是:
    params=["0", "1"]
    @pytest.fixture(params=params)
    def get_devices_list(request):
        # Server().main()
        driver = BaseDriver().andriod_driver(i=request.param)
        yield driver
    PS:因为我想调试用,所以上面就写死了0,1
    但是在程序运行到android_deriver里的deviceName = write_file.get_value('user_info_'+str(i), 'deviceName')时,提示get_value方法读yaml文件时,缺少self,这个应该怎么破呢?感觉还是对这块有点没明白,如果您觉得回答起来比较麻烦,那能不能说一个大体的思路?或者略微详细点的方案?谢谢!~
    回复 有任何疑惑可以回复我~ 2020-07-06 17:45:06
  • Mushishi 回复 提问者 无名_丁 #2
    额,你参数传递成功了,然后其他地方报错了,解决你读取yaml报错问题就行。两个错误不是一回事。
    回复 有任何疑惑可以回复我~ 2020-07-06 20:19:36
  • 提问者 无名_丁 回复 Mushishi #3
    老师,我现在是“勉强”可以进行多设备启动了,有个问题,就是现在我的多设备是“依次顺序”执行“相同测试用例”的,比如说,设备A启动-->执行登录账号A操作-->断言-->结束-->设备B启动-->执行登录账号A操作-->断言-->结束
    1.两个设备可不可以同时执行测试任务?
    2.可不可以设备A登录账号1,设备B登录账号2?这样避免互斥情况
    回复 有任何疑惑可以回复我~ 2020-07-07 17:01:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信