首页 > 其他分享 >超详细的 pytest 教程(一)使用入门篇

超详细的 pytest 教程(一)使用入门篇

时间:2023-07-19 10:56:37浏览次数:33  
标签:教程 用例 py demo1 入门篇 pytest test 测试用例

前言

  • pytest到目前为止还没有翻译的比较好全面的使用文档,很多英文不太好的小伙伴,在学习时看英文文档还是很吃力。本来去年就计划写pytest详细的使用文档的,由于时间关系一直搁置,直到今天才开始写。本文是第一篇,主要介绍pytest的入门使用,后续会分篇针对pytest中的各个功能出详细的使用教程。

一、环境安装

pytest是python中的第三方库,使用之前需要先安装,在命令行中运行以下安装命令 :pip insatll pytest 检查安装是否成功以及安装的版本,命令行命令如下:pytest --version 执行上述命令,能够输出版本信息,那就说明安装成功啦

二、用例编写

  • 当我们通过pytest执行用例时,pytest会自动递归遍历执行路径下所有的目录,根据pytest中默认用例的识别的规则,自动收集测试用例。所有在使用pytest编写测试用例之前,我们首先需要了解一下pytest收集用例时默认的用例识别规则。

1、默认的用例识别的规则

  1. 用例文件:所有文件名为 test_ 开头 或者 _test 开头的文件会被识别为用例文件。
  2. 用例类,测试文件中每个Test开头的类就是一个测试用例类。
  3. 测试用例:测试类中每个test开头的方法就是一条测试用例,测试文件中每个test开头的函数也是一条测试用例.
备注:上述默认的用例查找规则,可在pytest的配置文件进行修改(后续章节会详细介绍配置文件的使用)
另外pytest兼容unittest,以unittest的用例编写规范写的用例,pytest都能够识别出来
  • 通过了解上述pytest中用例识别的规则,可以知道pytest中用例编写,能使用函数的形式,也能使用类的形式,那么接下来就分别给大家介绍一下这两种方式编写用例。

2、函数形式编写用例

  • 规则:用例方法名以test开头即可
# \testcases\test_demo1.py

def test_demo():
    assert 100 == 100
  • 使用命令pytest就可以执行测试函数,输出结果如下:
C:\testcases>pytest 
======================test session starts ======================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:\testcases
plugins:  testreport-1.1.2
collected 1 item                                                           
test_demo1.py .    [100%]
====================== 1 passed in 0.26s ======================

3、以类的形式编写用例

  • 规则: 测试类命名以Test开头,用例方法以test开头
# test_demo2.py
class TestDome:

    def test_demo1(self):
        assert 11 == 11

    def test_demo(self):
        assert 22 == 21
  • 使用命令pytest就可以执行测试函数,输出结果如下:
====================== test session starts ======================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:\testcases
plugins:  testreport-1.1.2
collected 2 items                                                                   
test_demo1.py .F                  [100%]
====================== FAILURES ======================
___________ TestDome.test_demo ____________
self = <test_demo1.TestDome object at 0x0445F450>
    def test_demo(self):
>       assert 22 == 21
E       assert 22 == 21
test_demo1.py:25: AssertionError
====================== short test summary info =======================
FAILED test_demo1.py::TestDome::test_demo - assert 22 == 21
====================== 1 failed, 1 passed in 0.53s ======================
  • 上面的运行结果可以看出来,一条用例执行通过,一条执行失败

三、执行测试

  • 在上面我们使用的是 pytest这个命令去执行测试用例。关于pytest执行测试,有两种方式,一种是命令行通过pytest这个命令执行,另外在代码中可以通过pytest.main()这个方法来执行测试。接下来就和大家分别详细的介绍一下pytest执行测试的方式和常用的参数

1、执行参数

# 测试用例
class TestDome:

    def test_demo1(self):
        print('----测试用例执行-----------')
        assert 11 == 11
  • 参数:-v      显示测试的详细参数信息
C:\testcases>pytest -v
========================== test session starts ==========================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0 
cachedir: .pytest_cache
rootdir: C:\git_project\pytest-report-me-main\testcases
plugins: testreport-1.1.2
collected 1 item                                                                         test_demo1.py::TestDome::test_demo1 PASSED          [100%]
========================== 1 passed in 0.27s ==========================
  • 参数:-s    显示测试执行的输出信息
C:\testcases>pytest -s
=========================== test session starts ===========================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:\testcases
plugins: testreport-1.1.2
collected 1 item     
test_demo1.py::TestDome::test_demo1 ----测试用例执行---输出1--------
----测试用例执行---输出2--------
PASSED
=========================== 1 passed in 0.28s ===========================

2、pytest.main执行的参数传递

  • pytest.main方法执行测试参数传递方式:
import pytest

args = ['-v','-s']
pytest.main(args)
  • 所有的参数放在列表中,每个参数就是列表中的一个元素
  • 详细的参数可以使用命令pytest -h查看

3、指定执行的测试目录

  • 命令:pytest 测试目录路径
import pytest

args = ['-v','-s','testcase/']
pytest.main(args)
  • pytest会执行指定目录路径下所有的测试用例

4、指定执行的测试文件

  • 命令:pytest 测试文件路径
import pytest

args = ['-v','-s','testcase/test_demo1.py']
pytest.main(args)
  • pytest会执行指定测试文件中下所有的测试用例

5、指定执行的测试类

  • 命令:pytest 测试文件::测试类
import pytest

args = ['-v','-s','testcase/test_demo1.py::TestClass']
pytest.main(args)
  • pytest会执行指定测试类里面所有的测试用例

6、指定执行的测试用例

  • 命令:pytest 测试文件::测试类::测试方法
import pytest

args = ['-v','-s','testcase/test_demo1.py::TestClass::test_method']
pytest.main(args)
  • pytest会执行指定的测试方法

标签:教程,用例,py,demo1,入门篇,pytest,test,测试用例
From: https://www.cnblogs.com/xiaoxiao-wu/p/17564972.html

相关文章

  • [转] C# SuperSocket 手把手教你入门 傻瓜教程 7~8
    7(自定义CommandLineProtocol---命令行协议) 目录一、前言二、创建一个自定义命令行协议的工程项目三、安装SuperSocket和SuperSocket.Engine 1、进入【管理NuGet程序包】2、安装SuperSocket3、安装SuperSocket.Engine四、自定义AppSession类1、工程项目中添加一个自定......
  • [转] C# SuperSocket 手把手教你入门 傻瓜教程 5~6
    5(探索自定义AppServer、AppSession,Conmmand,用配置文件App.comfig启动服务器) 目录一、为什么要使用自定义类AppServer、AppSession,Conmmand二、为什么要通过配置文件App.comfig启动服务器三、创建工程项目四、下载SuperSocket动态库1、安装SuperSocket组件2、安装SuperSoc......
  • [转] SuperSocket 手把手教你入门 傻瓜教程
    1(服务器单向接收客户端发送数据)  目录一、SuperSocket 简介二、Socket调试工具 SocketTool三、移植C#SuperSocket 简介四、移植五、验证致谢:    我是一名单片机嵌入式软件开发工程师,之前从来没有接触过PC端的编程工作,只是这二年由于工程项目有需求,因此匆......
  • Excel数据分析教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Excel数据分析入门教程-从基本到高级概念的简单步骤了解Excel数据分析,其中包括概述,流程,Excel数据分析概述,使用范围名称,表格,使用文本功能清理数据,清洁数据包含日期值,使用时间值,条件格式,排序,过滤,带范围的小计,快速分析,查找功能,数据透视表,数据可视化,验证,财务分析,使用多个表......
  • pytest测试实战
    电子pdf下载链接:目录: ......
  • PlayWright(十九)- Pytest之fixture测试夹具
    fixture是Pytest的测试夹具,相当于unittest的setup和teardown,这个在之前我们也有介绍setup和teardown详情可看:https://www.cnblogs.com/nuomituan/p/17541815.html  那为什么我们不用setup和teardown呢,因为我们使用fixture更加灵活,具体有独立的命名,然后呢,还可以按模块化的方......
  • 【CJsonObject】C++ JSON 解析器使用教程
    能选封装的尽量不使用底层的一、CJsonObject简介CJsonObject是Bwar基于cJSON全新开发一个C++版的JSON库。CJsonObject的最大优势是轻量、简单好用,开发效率极高,尤其对多层嵌套json的读取和生成、修改极为方便。CJsonObject比cJSON简单易用得多,且只要不是有意不......
  • npm安装教程 搭建vue
    一、相关概念npm:Nodejs下的包管理器。webpack:它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。vue-cli:用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要npminstall......
  • sqoop安装教程
    Sqoop的安装注意:在安装Sqoop之前要配置好本机的Java环境和Hadoop环境先把spoop的安装包sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz拷贝在系统目录下的/root/softwares下面解压配置环境变量#解压tar.gz包[root@qianfeng01local]tar-zxvf/root/sqoop-1.4.7.bin__hadoop-......
  • 超详细OA系统功能测试分析学习教程
    OA系统可以简单快速地建立企业级的办公自动化系统。办公自动化系统是员工及管理者使用频率最高的应用系统,可以极大提高公司的办公效率,帮助企业节省数字化、信息化办公的成本。本文中的OA系统来自于下面的资源:https://www.gougucms.com/home/pages/detail/s/gouguoa.html包含诸多......