IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> pytest框架 -> 正文阅读

[Python知识库]pytest框架

pytest框架

pytest不能实现web/app/接口任意一种自动化测试,它是用来管理用例,执行用例,获得一份执行结果的工具

  • 模块:pytest

    • pip install pytest
  • 基本使用方法

    • 说明:
      • 函数名需要以test开头
      • 类名需要以Test开头,类中的方法需要以test开头,
        • 类中不能有构造方法
      • 使用assert进行断言
      • 脚本名需要以test开头
  • 作用于函数

import pytest
def test_1():
    print("44444")
    assert 1==1

def qtest_1(): #函数名不是以test开头,故不能被pytest加载
    print('不能被执行')

if __name__ == '__main__':
        #pytest.mian(['-s',__file__]) #-s, 将print语句的结果输出
        #pytest.mian(['-v', __file__])  # -v, 以详细信息显示每条用例执行结果
        pytest.mian(['-q', __file__])  # -q, 以极简形式显示测试结果

  • 作用类
import pytest
class Test_add():#测试类名必须以Test开头!!!
    # def __init__(self):#测试类中不能用构造方法!!!
    #     pass
    def test_1(self):
        assert 1+1==2
# def qtest_1(): #函数名不是以test开头,故不能被pytest加载
#     print('不能被执行')
if __name__ == '__main__':
        pytest.mian(['-v', __file__])  # -v, 以详细信息显示每条用例执行结果
  • 用例执行
    • 方式

      • 脚本: pytest.main([参数1,参数2,......])
      • 命令行:用命令行执行,如果有配置文件,会默认走配置文件
        • pytest 参数 脚本
        • py.pytest 参数 脚本
        • python -m pytest 参数 脚本
          在这里插入图片描述
    • 参数

      • -s, 将print语句的结果输出
      • -v, 以详细信息显示每条用例执行结果
      • -q, 以极简形式显示测试结果
      • -k, 通过关键字匹配脚本,函数名,类名,方法名
        在这里插入图片描述
      • -x, 如果测试执行过程中有fail的用例,则测试立即停止
        在这里插入图片描述
      • –maxfail=n,当失败的用例达到执行的数量n时,停止测试
        在这里插入图片描述
      • -m, 对用例进行标记,执行指定的用例
        • 1、在项目根目录下新建文件pytest.ini

        • 2、在pytest.ini文件中添加标记

          [pytest]
          markers=a
          		b
          		c
          		smoke_case
          
        • 3、使用装饰器标记测试用例@pytest.mark.a
          在这里插入图片描述

        • 4、执行测试时,使用-m 标记即可执行指定的用例
          在这里插入图片描述

      • 跳过用例
        • @pytest.mark.skip(reason=xxxxx) ,无条件跳过指定用例
        • @pytest.mark.skipif(条件,reason=xxxxx) ,有条件跳过指定用例
          在这里插入图片描述
    • 参数化

      • @pytest.mark.parametrize('参数1,参数2',值)

        • 参数,与被装饰的函数行参相同
        • 值,传递给参数的数据,通常为一个列表,如果需要给多个参数传数据可以将这些数据封包到元组或列表中
      • 例1:1个参数

        import pytest
        @pytest.mark.parametrize('a',[1,2,3,4,5])
        def test(a):
            print(a)
        
      • 例2:多个参数

        import pytest
        @pytest.mark.parametrize('a,b,c',[(1,2,3),(2,3,4),(4,5,6)])
        def test(a,b,c):
            assert a+b ==c
        
    • 前置后置

      • setup和teardown主要分为:模块级,类级,功能级,函数级。
      • 函数级别setup()/teardown()
        运行于测试方法的始末,即:运行一次测试函数会运行一次setup和teardown
      • 类级别setup_class()/ teardown_class()
        运行于测试类的始末,即:在一个测试内只运行一次setup_class和teardown_class,不关心测试类内有多少个测试函数。
    • fixture修饰器
      - 创建:@pytest.fixture([name,scope,params,autouse])
      - name ,指定fixture名称,如果不指定则默认为被装饰的函数名
      - scope , 指定fixture作用范围,module、class、function(默认)、session、package
      - params , 参数
      - autouse, 设置为True,设置为True自动运行
      - params, (list类型)提供参数数据,供调用标记方法的函数使用
      - yield , yield在fixture中起到了唤起teardown的作用,在返回结束后,后续的代码仍可执行
      在这里插入图片描述
      - 全局fixture
      - 1、在项目下创建conftest.py文件,在改文件中实现fixture
      在这里插入图片描述
      - 2、调用
      在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:09:05  更:2022-05-07 11:09:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:27:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码