学习目标:

1、pytest的不同的运行方法

2、pytest常见的命令行参数

3、如何添加自定义的pytest命令行参数

学习内容:

1、pytest的不同的运行方法

1.1主要有三种情况的运行方式:

1.1.1没有使用pytest框架,但是要运行包含test开头的用例

方法:在py文件的最后,添加main方法,使用pytest.main([‘文件名(要执行的用例)’、’参数1’、‘参数2’、‘参数n’])

例如:pytest.main(['demo.py::test','-s'])

1.1.2 已经有pytest框架,要运行test文件,直接右键放到代码的test函数上选择py.test运行即可

1.1.3 在终端运行pytest用例,直接在终端输入:pytest 文件名 参数1 参数n

1.2 如何添加pytest运行器?

方法:设置默认的运行器:file->Setting->Tools->Python Integrated Tools->项目名称->Default test runner->选择py.test

1.3 当存在pytest运行器,但是右键运行pytest用例一直默认使用python的普通运行方式时候如何处理?

方法:点击上方的设置->点击‘+’ ->python tests -> py.test-> 添加相关的信息和相关参数

2、pytest常见的命令行参数

2.1 执行特定的用例的参数

2.1.1 运行指定的函数(使用两对冒号 : 分隔)

pytest 模块名::类名::函数名,pytest demo.py::test1

2.1.2 假如期望执行的用例有唯一名或者是测试名的后缀相同,可以使用-k “关键词”定位,再结合—collect-only验证筛选情况(这个参数作用只收集用例,不执行),-k只运行与给定字符串表达式匹配的测试用例

2.2.2 如果想要把用例分组,然后一起执行相同分组的用例,可以使用-m参数。具体做法:先使用@pytest.mark.xxx给用例做标记,xx填写分组标记,这里可以自己定义不做限制。然后使用pytest -m xxx,就可以执行相关分组的用例

2.2 查看运行结果是否详细的参数(下面的比较常用就不举例了)

-s :显示标准输出,例如print()的语句;

-v :显示详细报告;

-q :显示简洁报告;

2.3 设置什么时候结束执行用例的参数

2.3.1 --m参数,正常的用例执行都是失败会跳过继续执行下个用例,如果想要失败后不执行后面的用例可以使用参数-m

注意:使用@pytest.mark参数,需要在根目录下建立一个pytest.ini文件并且写入markers选项,否则会保持war

 

2.3.2 --lf(last fail)参数,可以把上次执行使用的用例重新执行

2.3.3 –-ff参数,把上次执行失败的用例执行完后,在继续执行剩下成功的用例

3、如何添加自定义的pytest命令行参数

3.1 如何添加自定义参数选项

在conftest文件里面定义pytest_addoption函数,里面添加自定义的参数

parser.addoption() 参数说明

name:自定义命令行参数的名字,可以是:“foo,“-foo” 或 “–foo”;

action:在命令行中遇到此参数时要采取的基本操作类型;action=“store”:默认,只存储参数的值,可以存储任何类型的值,此时 default 也可以是任何类型的值,而且命令行参数多次使用也只能生效一个,最后一个值覆盖之前的值;

nargs:应该使用的命令行参数的数量;

const:某些操作和nargs选择所需的常量值;

default:如果参数不在命令行中,则生成的默认值。

type:命令行参数应该转换为的类型;

choices:参数允许值的容器;

required:命令行选项是否可以省略(仅可选);

help:对参数作用的简要说明;

metavar:用法消息中参数的名称;

dest:要添加到 parse_args() 返回的对象中的属性的名称;

3.2 如何引用添加的自定义参数选项

使用fixture把要自定义的函数全局化使用,下次使用这个自定义的参数时,直接取它的返回值即可

需要使用这个自定义参数的返回值,可以在函数的参数里面加上步骤2的函数名称即可

3.3 如何设置自定义参数的默认配置

在pytest里面有两个非test文件非常重要

1、pytest.ini:pytest的主配置文件,可以改变pytest的默认行为

2、conftest.py:测试用例的一些fixture配置

在pytest.ini里面可以设置addopts参数:addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作

除了上述的ini配置,还可以参考这篇文章设置其他的配置:https://www.cnblogs.com/poloyy/p/12702294.html

备注:参数和值之间不能有空格

4、如何添加指定执行的case目录

4.1 pytest.ini文件下指定要执行的目录

4.2 根目录创建run_all.py文件,执行全部的文件和生产报告

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: