pytest框架1---安装与简单使用pytest

一、简介

1. 什么是pytest

python的测试框架 第三方 成熟的 功能齐全的

官网地址:https://docs.pytest.org/en/7.1.x/

2. 安装方法

pip install pytest

二、基本使用

1、发现用例的规则

  1. 如果不给参数,默认从当前目录或者配置中的testpath下收集测试用例
  2. 默认会递归所有目录,二级以上的目录要加__init__.py
  3. 在目录中收集所有test_*.py*_test.py的模块
  4. 在上述模块中收集
    • 以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

 

posted @ 2022-03-31 13:35  大头~~  阅读(126)  评论(0编辑  收藏  举报