pytest框架运行时的参数,以及多线程分布式运行用例、运行指定模块用例

一、运行时的参数

在上一篇博客中写了pytest最为核心的运行时前后置如何设置,细心的朋友可能也会发现其实我们当时就加过运行时的参数-vs。
pytest.main([‘-s’]):能打印出调试信息,print()或者日志都可以直接打印在控制台上。
在这里插入图片描述
在这里插入图片描述
pytest.main([‘-v’]):能打印出运行用例时的详细信息。
我们日常在工作中呢一般都使用这两个参数,而这两个参数我们一般结合起来一起使用。

if __name__ == '__main__':
    pytest.main(['-vs'])

在这里还要说一下,一个参数那就是-k,只执行或者只不执行带有对应关键字的用例。
只执行带有关键字oa的用例:

import pytest
import time


class TestLogin_01:
    def test_01_hujian(self):
        print('运行用例1')

    def test_02_hujianoa(self):
        print('运行用例2')
if __name__ == '__main__':
    pytest.main(['-vs', '-k=oa'])

运行结果:
在这里插入图片描述
如果想只运行不带关键字oa的用例呢:

if __name__ == '__main__':
    pytest.main(['-vs', '-k not oa'])

运行结果:
在这里插入图片描述

二、多线程分布式运行用例

当我们存在多条用例时,而用例执行又没有前后关系,这时候就可以使用分布式运行用例的方法。
在使用该方法前需要先安装:

pip install pytest-xdist

我们在使用时不需要导入该模块。
这是我们正常运行用例时。

import pytest
import time


class TestLogin_01:
    def test_01_hujian(self):
        print('运行用例1')
        time.sleep(2)

    def test_02_hujian(self):
        print('运行用例2')
        time.sleep(2)


if __name__ == '__main__':
    pytest.main(['-sv', 'test_login_02.py'])

运行时间4s。
在这里插入图片描述
接下来我们加参数分布式运行用例,

import pytest
import time


class TestLogin_01:
    def test_01_hujian(self):
        print('运行用例1')
        time.sleep(2)

    def test_02_hujian(self):
        print('运行用例2')
        time.sleep(2)


if __name__ == '__main__':
    pytest.main(['-sv', 'test_login_02.py', '-n=2'])

两个线程运行跑用例可以看到运行时间是2s相对于上次缩减了一半。
在这里插入图片描述

运行指定模块用例

在我们一般自动化测试过程中,一般会有一个调用一个模块所有用例的入口方法,如果我们想只运行某个测试类或者测试用例该这么做呢:
只运行某个测试用例:
层级分别是py文件对应的类以及方法。

import pytest


if __name__ == '__main__':
    pytest.main(['-vs', 'test_login_02.py::TestLogin_01::test_01_hujian'])

我们还可以指定文件夹去运行用例:pytest会自动找对应文件下的用例文件,前提是命名规则要对哦。

import pytest


if __name__ == '__main__':
    pytest.main(['-vs', '文件夹名称'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值