测试之家
  • 社区
  • 问答
  • 招聘
  • 社区学堂新
  • 开源项目
  • 活动
  • Wiki
  • 注册
  • 登录
会员
q243899640 (罗罗)
第 86435 位会员 / 2023-10-07
2 篇帖子 • 7 条回帖
0 关注者
1 正在关注
0 收藏
测试猿
未设置 GitHub 信息.
  • 个人信息
  • 专栏
  • 话题
  • 回帖
  • 收藏
  • 关注中
  • 关注者
  • 怎么感觉最近聊测试技术的群越来越少了 at 2024年04月18日

    群这种东西别人不会教你真正的技术,浪费时间不说对别人没有任何收益

  • pytest 在并发的时候 后置处理的 teardown_class() 方法不受控制,也就是不是所有用例运行完成后才运行,大家有什么解决方法吗 at 2024年03月20日

    好的 我这边尝试下,看看能否满足我的场景,非常感谢您的帮助😃

  • pytest 在并发的时候 后置处理的 teardown_class() 方法不受控制,也就是不是所有用例运行完成后才运行,大家有什么解决方法吗 at 2024年03月20日

    1、test_n 不是在一个进程中执行,我用的是线程
    2、set_up 和 teardown_class 执行 1 次
    3、创建的测试数据相同
    4、xdist 有一个问题,就是没办法控制 conftest.py 文件中,@pytest.fixture(scope="session",autouse=True) 执行的次数,也就是说每个进程都会执行一次,导致一个问题,即:我需要在 conftest 中做全局的 token 初始化,我希望@pytest.fixture(scope="session",autouse=True) 只执行一次
    5、针对第 4 点我提的问题,您有什么解决方案吗

  • pytest 在并发的时候 后置处理的 teardown_class() 方法不受控制,也就是不是所有用例运行完成后才运行,大家有什么解决方法吗 at 2024年03月20日

    涉及到一些安全项 代码无法直接提供问题场景样例描述如下:

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    import pytest
    import logging
    
    class TestDemo():
    
    
        def setup_class(self):
            logging.info("这里做初始化操作,比如读取相关参数")
    
    
        def teardown_class(self):
            logging.info("后置操作:删除自动化创建测试项")
        # 此处批量删除,比如测试项是以AT-TEST开头的均会删除
    
    
    
        @pytest.mark.run(order=1)
        def test_1(self):
            # 创建了测试服务1,返回服务ID
            # 创建后需要根据ID,查询后续操作
            pass
    
       @pytest.mark.run(order=1)
        def test_2(self):
            # 创建了测试服务2,返回服务ID
            # 创建后需要根据ID,查询后续操作
            pass
    
    
        @pytest.mark.run(order=1)
        def test_3(self):
            # 创建了测试服务3,返回服务ID
            # 创建后需要根据ID,查询后续操作
            pass    
    
        # 省略更多类似的创建服务用例...
    

    在并发的时候,test_n 并没有全部执行完成,teardown_class 就会执行,导致部分用例需要根据 ID 做后续处理的时候,查询数据库已经无此 ID 数据了
    原因就是因为被批量删除了

  • pytest 在并发的时候 后置处理的 teardown_class() 方法不受控制,也就是不是所有用例运行完成后才运行,大家有什么解决方法吗 at 2024年03月20日

    您提到的这个方式我也尝试过,代码如下,在并发的时候也控制不住,整个类文件里的用例 还没执行完,就调用了后置处理部分用例需要用的数据被提前在数据库中删除了,导致这些用例报查询不到数据

    pytest.fixture(scope="class")
    def setup_and_teardown():
        logging.info("Setting up...")
        yield params
        logging.info("Tearing down...")
    
    
  • 使用 TestNG 做自动化框架的选型,有什么比较好的接口管理的方式? at 2024年03月12日

    看上去,大家对这个问题没有什么兴趣啊

关于 / 活跃用户 / 中国移动互联网测试技术大会 / 反馈 / Github / API / 帮助推广
TesterHome社区,测试之家,由众多测试工程师组织和维护的技术社区,致力于帮助新人成长,提高测试地位,推进质量发展。Inspired by RubyChina
友情链接 WeTest腾讯质量开放平台 / InfoQ / 掘金 / SegmentFault / 测试窝 / 百度测试吧 / IT大咖说
简体中文 / 正體中文 / English

©testerhome.com 测试之家   渝ICP备2022001292号
  渝公网安备 50022202000435号    版权所有 © 重庆年云聚力信息技术有限公司