@pytest.mark.notconcurrent 装饰器给用例增加了标记,这部分用例是等并发用结束后,再运行就可以了
你的 python 是什么版本的,可能是 python 的版本有关系,我是 python 3.8 可以正常运行
我这边没遇到过这个问题,有截图吗?没安装这个插件之前你的用例运行正常吗?是安装完这个插件就有问题了吗?
一个简单的方法,你在主线程,启动多个子线程去执行 pytest.main(["你的测试包路径"]),
这种方法,allure 也是能汇总测试报告的
上面的代码例子就是 demo 代码,你这个运行方式有问题,这样运行,获取不到输入参数
现在 notconcurrent 的用例统一是在并发用例之前执行,暂不支持让它在并发后执行,这样有什么问题吗?要改下才能支持让 notconcurrent 的用例在并发结束后再允许
不要在用例加上@pytest.mark.notconcurrent 装饰器,它就会参与并发执行呀
这个现在改好了,升级就行了,pip install --upgrade pytest-multithreading-allure
你这个现在还有问题吗?这个看起来和插件没什么关系的
嗨,这个现在改好了,升级就行了,pip install --upgrade pytest-multithreading-allure
你是在什么系统下安装的呢?我测试过了在 windox 和 linux 都可以安装成功
看起来是你的 python 环境没有 os.environ.putenv() 这个函数,你直接运行这个 os.environ.putenv("test","test") 应该会报错。你是什么系统?什么 python 版本的?我去测试下。
看起来是你的 python 环境没有 os.environ.putenv() 这个函数,你直接运行这个 os.environ.putenv("test","test") 应该会报错。你是什么系统?什么 python 版本的?我去测试下。
嗨,多线程运行用例,用例就是可能交叉执行的,你想用例不允许交叉执行,就不能用多线程了
你 20 个线程,发 80 个请求,前面的请求如果处理慢了,就会发的慢,你可以用 80 个线程试下,
由于公司的电脑是 windox,没在 mac 运行过,上面文章也写了要在 windox 或者 linux 运行。linux 报错是某次改代码改错了,感谢提醒,我只测试了 windox 本地运行,远程 linux 运行,没测 linux 本地运行,所以没发现,用 pip3 install --upgrade auto-mock-server 升级到最新的 1.0.9 的版本就好了
你好,暂时没有做 route 到真实 server 这个,你想的是某些自动化用例里对接真实的 server 是吧。我现在是把模拟服务和真实服务部署到同一台机器,然后在想对接真实服务的用例里把模拟服务关调,启动真实的服务,这样就可以对接到真实服务了。你说的这个方式好像是方便一点。后面考虑增加一下。
你好,你说的是 cpython 的多线程实际并没法用到 cpu 的多核性能吗?我这个是用在大量 IO 等待的场景,不是用在 CPU 密集型的,所以暂时单进程就够用了。后续在改成支持多进程 + 多线程
你好,没懂你的意思,IO 操作的流程单独一条线程出来,单线程运行不是还是会阻塞吗?
你好,文件锁的方式,我之前有了解过,但是你这个例子是不是写错了呢?你这样加锁,只是 with 里的代码不允许并行运行,实际每个进程都会进去 with 里的代码,还是执行多次了。文件锁的方式应该是在执行完一次的时候把数据写到一个文件,其它进程发现有这个文件的时候,就不执行了。才能实现仅执行一次。我这个方式就不用在每个 fixture 做这个事情了,我在框架代码里加锁了