pytest框架1---安装与简单使用pytest
一、简介
1. 什么是pytest
python的测试框架 第三方 成熟的 功能齐全的
官网地址:https://docs.pytest.org/en/7.1.x/
2. 安装方法
pip install pytest
二、基本使用
1、发现用例的规则
- 如果不给参数,默认从当前目录或者配置中的
testpath
下收集测试用例 - 默认会递归所有目录,二级以上的目录要加
__init__.py
- 在目录中收集所有
test_*.py
和*_test.py
的模块 - 在上述模块中收集
- 以test作为前缀的类外面的函数
- 以Test作为前缀的类(不能包含__init__方法)里面的以test作为前缀的方法
2. 如何执行用例
2.1 命令行执行
pytest [options] [file_or_dir] [file_or_dir]
2.2 代码执行
- 执行某个目录下下的所有用例--- pytest.main(["-s", "-v", "./testcases"])
- 执行单个个模块--- pytest.main(["-s", "-v", "./testcases/test_a.py"])
- 执行单条用例--- pytest.main(["-s","-v","./testcases/test_a.py::test_f"])
- 执行所有---pytest.main()
-v 参数
打印详细运行日志信息,一般在调试的时候加上这个参数,终端会打印出每条用例的详细日志信息,方便定位问题。
-s 参数
带控制台输出结果,当你的代码里面有 print
输出语句,如果想在运行结果中打印 print
输出的代码,在运行的时候可以添加 -s
参数,一般在调试的时候使用
也可携带如下参数:
-k 参数
应用场景:在测试场景中,开发人员有一部分功能代码还没实现,测试人员已经将测试用例设计出来,或者测试人员发现了某功能上的 bug 需要开发人员修复之后再测试这部分有缺陷的测试用例,可以将这部分测试用例在运行的时候暂时跳过,等功能实现或者 bug 解决之后再加入运行
跳过运行某个或者某些用例。
- pytest -k '类名',
- pytest -k '方法名' ,
- pytest -k '类名 and not 方法名' //运行类里所有的方法,不包含某个方法
-m 参数
应用场景:在自动化测试过程中可以将测试用例添加标签进行分类,比如登录功能、搜索功能、购物车功能、订单结算功能等,在运行的时候可以只运行某个功能的所有的测试用例,比如这个版本只想验证登录功能,那就在所有登录功能的测试用例方法上面加上装饰符 @pytest.mark.login
,运行的时候使用命令添加一个 -m
参数,将运行有 @pytest.mark.标记名
@pytest.mark.标记名在需要标记的用例上
pytest.main("-m","login","./testcases")
-x 参数
应用场景:在回归测试过程中,假如一共有10条基础用例,当开发人员打完包提交测试的时候,需要先运行这10条基础用例,全部通过才能提交给测试人员正式测试。如果有一条用例失败,都将这个版本打回给开发人员。这时就可以添加 -x
参数,一旦发现有失败的用例即中止运行。
遇到用例失败立即停止运行
3. 执行顺序
在模块级别采用模块名的ascii码排序,在模块的内部根据从上往下的定义顺序
执行结果顺序
4. 断言
使用python自带断言,assert进行断言
def test_f(): assert 1==2
本文来自博客园,作者:大头~~,转载请注明原文链接:https://www.cnblogs.com/xiaoying-guo/p/16080565.html