pytest 中,进行多进程跑时,我想定义在 conftest 文件中的 fixture 夹具只在一个线程中跑一次即可,而不想多次进行跑,如图,具体怎么实现

€¶婷姐儿♛ 测试交流1 145字数 10阅读模式

软件测试功能测试报告文章源自玩技e族-https://www.playezu.com/213856.html文章源自玩技e族-https://www.playezu.com/213856.html
玩技站长微信
添加好友自动发送入群邀请
weinxin
rainbow-shownow
玩技官方公众号
官方微信公众号
weinxin
PLAYEZU
 
  • 版权提示:本站仅供存储任何法律责任由作者承担▷诈骗举报◁▷新闻不符◁▷我要投稿◁
    风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系2523030730
    免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加联系方式以免受骗。
  • 原创转载:https://www.playezu.com/213856.html
    转载说明: 点我前往阅读>>>
    • 赵晨成
      赵晨成 9

      写个单例你的线程是怎么设计的?
      pytest 中,进行多进程跑时,我想定义在 conftest 文件中的 fixture 夹具只在一个线程中跑一次即可,而不想多次进行跑

      具体确定想怎样呢?正好前段时间用 pickle 和 FileLock 做了这个改造,步骤大概如下(代码暂时没办法贴上来):

      封装一个登录方法,并把登录结果保存到 pickle 文件中,同时通过 filelock 来做锁定保护。
      在登录的 fixture 中,先尝试去读取 pickle 中的登录结果。
      如果文件已锁定且读取成功,就返回登录结果。这时候说明其他 session 已经登录成功;
      如果文件已锁定但登录结果为空,则说明其他 session 正在登录但是还没完成。这时候会返回 none,并在上层做一个 30 秒的 for 循环进行轮询等待。
      如果文件不存在,则说明还没有 session 尝试登录。这时候就调用步骤 1 的封装方法进行登录并写入登录结果。
      官方是有例程的,根据业务改造一下就可以用了我也是基于这个官方教程去改造的,把保存的文件从 JSON 改成 pickle 就可以了

    匿名

    发表评论

    匿名网友
    确定