pytest常用命令

pytest常用命令

pytest真的是一个很方便的库,十分方便我们去进行自动化测试工作,结合我目前的工作场景来看,我没办法去用那些更好用的pytest的扩展工具,因为公司的堡垒机装新库很难,那么我就去看了一下pytest的原生的一些东西,首先就从pytest进行一些梳理吧

setup与teardown

这部分其实是我目前工作就开始用的一部分了,setup的话,就是开始前所做一些准备,常用的肯定就是类的setup和方法的setup,同理,也对应着类的teardown和方法的teardown,teardown就可以想象成收尾工作。这里我目前是写了一个大类,然后一个case是一个自定义函数这样,然后利用setup和teardown进行一些预处理的工作。下面是一个小例子:
setup和teardown
这里如果不使用 -s 的话,我们就看不到程序的输出了,只能看到一个结果,然后有错的话也是会标出来的,如下:
在这里插入图片描述

一些常用命令

在之前为了使用,就简单用了一下 ‘-s’命令,使用来打印出来信息的,但其实pytest还有很多很好用的命令。
当我写好了整个测试用例的时候,我可能为了调试,并不想将所有的case都执行,那么如果脱离pytest的话,我会选择备注,暂时注释掉其他内容,只留一小部分进行调试,pycharm提供了快捷键 ‘ctrl + /’来进行注释的操作。
但是还是不够简便,不够快捷,这时候就用到了pytest里的**‘-m’命令,这个命令是用来打标签的,我们可以预先给想用的用例打好标签,然后用其进行运行,打标签的时候用到的就是python的修饰符@**,大体如下图所示
在这里插入图片描述
可以看到在上面的基础上,我多加了 一行 ,用来打标记,这种 修饰器的使用,是pytest扩展用法的常用手段,基本都是@pytest.xxx
然后我们去使用的时候就可以pytest -m 标签名 文件名这样去使用,如下图所示
在这里插入图片描述

当然其他办法也有,pytest提供了-k + 字符串的命令,这个命令主要是用来筛选指定字符串的case,然后匹配的就进行执行,其实如果case写的很有条理的话,可以用这样的命令指定执行某部分代码。

之后我们看一下 pytest -x,这个是在执行错误的时候就会直接退出,不会进行接下来的case,其实可以直接来理解pytest --maxfail=x,这个x是一个数字,可以指定执行到第几个fail就退出。
在这里插入图片描述
pytest -v这个命令就是更简化直观了,我比较喜欢这样的一个输出形式,他上面先会是一个汇总,然后下面是错误信息这样。
在这里插入图片描述
而之后的这个pytest --tb=native也是我比较喜欢的格式,这种也比较直观,上面是运行汇总情况,下面是指出具体的错误,比较像python原生的一种报错。
在这里插入图片描述
pytest -vv --durations=0 这个命令主要用来查看每个用例的执行时间,方面我们更直观的统计数据,以及之后有可能要对执行过久的用例进行一些处理。

在这里插入图片描述
如果这里的0改为其他会如何,如果改为2的话,就是输出两个时间最长的,如下
在这里插入图片描述
–collect-only 这个命令会只收集用例,并不会真正去执行用例,这个命令可以让我们清除目前会执行的用例有哪些。

@pytest.mark.parametrize()这是是参数化的方法,从最靠近该方法的一条向外扩展,可以快速实现相同用例的不同参数的排列组合,可以加ids,用于修改名称

可能还有一些比较好用的我没总结到,不过pytest功能是真的多,尤其是使用装饰器的拓展功能,感觉之前的代码其实还有很多可以优化的地方,尤其是利用上pytest,不过还是优先做出来为第一位吧,之后再学习pytest的拓展功能,例如它的fixture,pytest-xdist,pytest-html。pytest-xdist也是一种并发测试手段,启动多线程共同测试。pytest-html就是一个更好的展示,把结果以网页的形式展现出来。

在使用pytest的时候,发现了一个很有趣的现象,以下这段代码的输出让我十分困惑,之前我理解可能是每个case独立空间,我在setup_class里设置了self.countint型变量和self.list_a一个空列表,然后我执行以下case时,输出如下方图示,每个case里,self.count的值还原了,但列表却不停填充了,这让我有所疑惑,待排查

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值