内容目录:
1. 安装
2. 运行
3. 执行结果
4. 常用参数说明
5. 测试文件、用例命名规则
1. 安装
1>pycharm中安装
- 点击File->Settings
- 在setting页面中点击project:xxx下拉菜单Python interpreter
- 点击页面右边底部“+” 进入搜索安装页面
Available Packeges页面搜索“pytest”,在结果列表中选择需要的包,点击底部“Install Package”按钮即可开始安装
2>命令行安装
pip3 install pytest
2. 运行
1>界面运行
- 点击File->Settings进入设置页面
- Tools下拉菜单中点击“Python Integrated Tools”
- 选择项目,右侧Testing-Default test runner默认是“Unittests”,这里设置成“pytest”
设置完成之后,编辑区域中识别到的用例左侧会显示绿色三角,执行测试时和正常Python文件一样执行就行。
2> 命令行执行
多数时候,我们在执行测试的时候会有一些需求,比如说打印详细执行结果、有用例失败即停止运行或者仅执行测试文件中的一个或多个用例等等,这个时候就需要使用命令行来执行了
pytest [options] [file_name] [file_name] [file_name]....
- 这里的options是可选的,如果没有给到任何参数,pytest会执行在当前目录及其子目录下收集到的所有测试用例(稍后我们再来说一下常用的一些参数)
- 测试文件这里可以指定多个测试文件,如果需要执行测试文件中的指定用例,在测试文件名后加上::test_name就可以了
eg: pytest testfile.py::testcase_name
3. pytest运行结果
一般来说,可能出现的执行结果有几下几种:
- PASSED 通过
- FAILED 不通过
- SKIPPED 用@pytest.mark.skip()或@pytest.mark.skipif()指定跳过的用例
- XFAILE 预期测试失败,实际失败的用例,是符合预期的。使用@pytest.mark.xfail()指定预期结果就是失败的用例,用于测试逆向用例场景,我们下次再详细说明
- XPASS 预期测试失败,但实际通过,是不符合预期的
- ERROR 出现断言失败外的error
4. 常用参数说明
我们现在知道怎么用命令行执行测试了,接下来咱们来看一下常用的参数
- -v:显示详细执行结果,会打印每个被执行用例名和结果
- -p:简化执行结果,不会列举执行的用例名,结果中通过的是绿色原点,以下途中是第1、4、5、8条用例通过了,其他不通过
- -k: 指定需要执行的用例,这里指定的用例名不是完整匹配,是模糊匹配。下面示例里面,使用 -k "d"匹配到了名称中含d的用例
- -x:执行测试过程中只要有用例失败了,就停止执行。示例中找到8条用例,但只执行了2条,因为使用了-x参数,第二条失败后停止了执行
- --maxfail:哈哈~~聪明的你是不是知道这个参数是干嘛的啦?上面的-x是只要有失败用例就停止,这里是失败用例达到多少就停止。可以用在冒烟测试的时候,例如冒烟测试有2个不通过我们认为这是没有达到可测标准的,那就可以使用--maxfail参数,而不需要完整执行所有用例。
注意这里是两个“-”哦!!
- --collect-only:统计被执行的用例,不实际执行
- -m: 执行被指定标记标记上的用例。示例中用例标记为“need_run”在执行的时候加上参数 -m need_run即可执行
这里也可以在标记前加上“not”,即可执行所有未被标记为“need_run”的用例
5. 什么样的测试文件与测试用例能被识别执行--------命名规则
- 测试文件:以test_开头或者_test结尾的.py文件
- 测试类:以Test开头,注意测试类中不能有__init__方法
- 测试方法:以test_开头的测试方法,不在测试类里面的测试方法也能被搜索到