zoukankan      html  css  js  c++  java
  • pytest基础简介及实践举例

    一、pytest简介

    pytest 是 python 的第三方单元测试框架,比自带的 unittest 更简洁和高效,同时兼容 unittest 框架。它还有如下优点:

    1、简单灵活,容易上手,文档丰富;

    2、支持参数化,可以细粒度地控制要测试的测试用例;

    3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);

    4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;

    5、测试用例的skip和xfail处理;

    6、可以很好的和CI工具结合,例如jenkins。

    二、pytest的安装

    pytest是python的一个第三方类库,可以直接使用pip install pytest 在线安装,或者下载离线包安装。

    三、pytest测试用例编写规则

    • 测试文件以test_开头(以_test结尾也可以)
    • 测试类以Test开头,并且不能带有 init 方法
    • 测试函数以test_开头
    • 断言必须使用 assert

    编写规则举例:

    四、pytest的基础应用

    4.1  pytest中的fixture:

    fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面。

    fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活。

    fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,它自身也可以调用其他的fixture。

    可以把fixture看做是资源,在你的测试用例执行之前需要去配置这些资源,

    执行完后需要去释放资源。类似unittest中的setup和teardown功能。

    4.2   fixture方法详解

    fixture(callable_or_scope=None,*args,scope="function",params=None,autouse=False,ids=None,name=None):

    • scope: 作用范围,设置范围后,会根据设置的范围去触发执行。范围可选值:
    • function:每个方法(函数)都会执行一次。(默认)
    • class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行。
    • module:一个 .py 文件执行一次。一个.py 文件可能包含多个类和方法。
    • package/session:多个文件调用一次,可以跨 .py 文件。
    • params:传入参数,接收一个列表,列表中每个数据都作为用例的输入
    • autouse:在一个session内所有的test都会自动调用当前的fixture,默认为false
    • 备注:
    • ids:测试字符串id的列表,每个测试字符串id对应于params,默认为参数值
    • name:fixture的名称,默认为装饰函数的名称

    4.3   fixture方法实际举例

    4.3.1 fixture方法实战之测试初始化及清理操作

     运行后执行结果:

    4.3.2 fixture方法实战之作用范围设置

     以上测试结果:

    4.3.3  fixture方法autouse 使用:

     

    4.3.4  fixture方法name使用:

    4.3.5  fixture方法之参数化, params 与ids结合使用:

     注意:request 不能写成其他的。

    运行结果:

  • 相关阅读:
    oracle unwrap解密工具
    介绍一款国产的矢量图形设计软件--百绘大师
    windows10上安装OpenSSL_1.1.1d_x64
    centos7上安装phantomjs并对页面截屏
    如何用Java Socket实现一个简单的Redis客户端
    cenos上通过yum安装mariadb
    windows上杀掉指定名称的进程
    centos磁盘满时查找大文件清理掉
    为Vertica数据库增加自定义函数to_base64和from_base64
    解决Vertica集群某节点出现Clock skewed告警
  • 原文地址:https://www.cnblogs.com/123anqier-blog/p/13547049.html
Copyright © 2011-2022 走看看