[pytest] 运行方式、常用参数、前后置条件

视频教程传送门 -> 2022最新pytest接口自动化测试框架,三天带你精通pytest,带你写出最好的代码!(已更新2022新版)_哔哩哔哩_bilibili

目录

一、pytest单元测试框架

二、pytest简介

三、使用pytest,默认的测试用例的规则以及基础应用

四、pytest测试用例的运行方式

1.主函数的运行方式

参数-v,-s说明

运行指定模块

运行指定目录下的用例

通过nodeid指定用例运行

2.命令行运行方式

常用参数

多线程运行

失败用例重跑

有一个用例报错,测试停止

据测试用例的部分字符串指定测试用例

生成html报告

3.通过读取pytest.ini配置文件运行

五、pytest执行测试用例的顺序

六、跳过测试用例

七、如何分组执行(冒烟、分模块执行)

八、pytest前后置条件

1.setup/teardown,setup_class/teardown_class

2.fixture装饰器

autouse=True 自动执行

scope标记fixture的作用域

params数据驱动

3.conftest.py和@pytest.fixture()结合使用

一、pytest单元测试框架

单元测试框架主要做什么
1.发现用例:从多个py文件收集并加载测试用例。
2.执行用例:按照一定的顺序执行并生成结果。
3.判断结果:通过断言判断预期结果和实际结果是否一致。
4.生成报告:统计测试进度、耗时通过率等。

二、pytest简介

1.pytest是一个非常成熟的python单元测试框架,比unittest更灵活,容易上手。
2.pytest可以和自动化测试工具或框架selenium,requests,appium等实现web自动化、接口自动化、app自动化。
3.pytest可以和allure生成美观的报告。
4.pytest可以和jenkins实现持续集成。
5.pytest有很多的强大的插件
pytest-html 生成html格式的自动化测试报告
pytest-xdist 测试用例分布式执行(多线程)
pytest-orderding 控制测试用例的执行顺序
pytest-rerunfailures 失败用例重跑
pytest-base-url 基础路径的配置
allure-pytest 生成allure报告

pytest安装命令:
pip install pytest

查看安装是否成功/查看版本
pytest –version

[root@k8s-node2 testcase]# pytest --version
pytest 7.1.2
[root@k8s-node2 testcase]#

批量插件安装命令:
(将上述待安装组件写入文件requirements.txt)

[root@k8s-node2 pytest]# cat requirements.txt
pytest-html
pytest-xdist
pytest-ordering
pytest-rerunfailures
pytest-base-url
allure-pytest
[root@k8s-node2 pytest]#

pip install -r requirements.txt

三、使用pytest,默认的测试用例的规则以及基础应用

1.模块名必须以test_开头或_test结尾
2.测试类必须以Test开头,并且不能有init方法
3.测试方法必须以test开头

四、pytest测试用例的运行方式

主函数模式
命令行模式
通过读取pytest.ini配置文件运行

【例】test_date.py内容如下

-*- coding:utf-8 -*-
import pytest

class TestLogin:

    def test01date(self):
        print("Today is Sep 2st.")

if __name__ == '__main__':
    pytest.main()

目录结构(需要安装tree,yum install tree)

[root@k8s-node2 pytest]# tree pytestdemo/
pytestdemo/
└── testcase
    ├── __init__.py
    └── test_date.py

1 directory, 2 files
[root@k8s-node2 pytest]#

执行结果(主函数模式和命令行模式)

[pytest] 运行方式、常用参数、前后置条件

1.主函数的运行方式

(1)运行所有 pytest.main()
(2)指定模块 pytest.main([‘-vs’,’test_date.py’])
(3)指定目录 pytest.main([‘-vs’,’./interface_tc’])
(4)通过nodeid指定用例运行:nodeid由模块名、分隔符、类名、方法名、函数名组成
pytest.main([‘-vs’,’./interface_tc/test_interface.py::test_04_func’])
pytest.main([‘-vs’,’./interface_tc/test_interface.py::RestInterface::test_03_func’])

参数-v,-s说明

if name == ‘main‘:
pytest.main([‘-v’])

输出结果中可以看到模块、类、方法的信息

[pytest] 运行方式、常用参数、前后置条件

if name == ‘main‘:
pytest.main([‘-s’])

输出结果中打印了函数中print的信息

[pytest] 运行方式、常用参数、前后置条件

if name == ‘main‘:
pytest.main([‘-vs’])

[pytest] 运行方式、常用参数、前后置条件

【例】执行全部用例

`
1) 目录结构
[root@k8s-node2 pytest]# tree pytestdemo/
pytestdemo/
└── testcase
├── all.py
├── init.py
├── test_date.py
└── test_plan.py

1 directory, 4 files
[root@k8s-node2 pytest]#

3) test_date.py内容

– coding:utf-8 –
import pytest

class TestDate:

def test01date(self):
    print("Today is Sep 2st.")

def test02day(self):
    print("Today is Friday.")

2) all.py内容

– coding:utf-8 –
import pytest
if name == ‘main‘:
pytest.main([‘-vs’,’./interface_tc’])

Original: https://blog.csdn.net/wy_hhxx/article/details/126576341
Author: wy_hhxx
Title: [pytest] 运行方式、常用参数、前后置条件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/773106/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 2023我们如何做好网络安全

    虽然新的一年刚开始, 但是从去年一年的频繁发生的网络攻击事件能看出,今年的网络安全事件也不会少,网络环境是日益严峻。目前用户对安全需求只会越来越多,那么我们该怎么做好网络安全,来预…

    Python 2023年11月6日
    039
  • Python数据分析之pandas(保姆级教程)

    一、前言 一般情况下,numpy总是和pandas一起出现。如果numpy处理的数据类似于list类型的话,那么pandas处理的数据就类似于dictionary类型。 二、前提准…

    Python 2023年8月8日
    052
  • pod(八):pod的调度——将 Pod 指派给节点

    服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker ver…

    Python 2023年10月16日
    045
  • 2023跨年代码(烟花+雪花)

    一眨眼,马上就2023年了,祝大家在新的一年里:身体健康平安,生活充实饱满,事业步步高升,心情阳光灿烂,财运滚滚而来,家庭美满幸福,新年开心快乐! 本文将给大家分享一些跨年代码,基…

    Python 2023年9月15日
    0109
  • Java多线程详解(通俗易懂)

    一、线程简介 1. 什么是进程? 电脑中会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。例如图中的微信、酷狗音乐、电脑管家等等。 2. 什么是线程? …

    Python 2023年10月12日
    047
  • pandas 两列相乘 dataframe

    import numpy as np import pandas as pd from IPython.core.interactiveshell import Interacti…

    Python 2023年8月16日
    038
  • pythong小知识列表

    1、输出结果字段名数据对齐: pd.set_option(‘display.unicode.ambiguous_as_wide’, True) pd.set_option(‘dis…

    Python 2023年8月7日
    051
  • MATLAB作图颜色

    matlab默认配色 参考链接 https://zhuanlan.zhihu.com/p/492683309matlab的默认配色也是很漂亮的,其RGB三元组和十六进制代码可以在 …

    Python 2023年8月1日
    0217
  • 功能强大的国产API管理神器 Eolink,亲测好用

    目录 * – 前言 – 一、Eolink 工具介绍 – + 1.Eolink是什么 + 2.Eolink独创的DTDD + 3.API 全生命周…

    Python 2023年9月30日
    059
  • 【机器学习】Pandas入门

    目录 一、基本概述 二、重要的两个数据结构 三、创建方法 四、参数解析 五、读取文件的方法 六、查看df属性的操作 七、基本操作 八、缺失值处理 一、基本概述 Pandas 库是一…

    Python 2023年8月17日
    065
  • 极智AI | centos7源码编译tensorflow

    欢迎关注我的公众号 [极智视界],获取我的更多笔记分享 大家好,我是极智视界,本文介绍一下 centos7 源码编译 tensorflow 的方法。 之前这篇《极智开发 | cen…

    Python 2023年9月26日
    029
  • MySQL数据库:2、MySQL的下载与安装、基本使用、系统服务制作

    一、MySQL简介 二、安装与下载 1、下载流程 2、配置环境变量 三、主要目录介绍 四、基本使用 五、系统服务的制作 六、密码相关 1、修改管理员密码 2、忘记密码 一、MySQ…

    Python 2023年10月14日
    048
  • python打包exe

    python写的程序要怎么办才能使没有没有python环境的人使用 pyinstaller是一个非常简单的打包python的py文件的库。用起来就几条命令就够了 PyInstall…

    Python 2023年9月19日
    034
  • Mysql 安装及连接

    ubuntu安装mysql 从官方提供的mysql-apt-config.deb包进行APT源设置 APT源下载地址:https://dev.mysql.com/downloads…

    Python 2023年6月10日
    071
  • Python 爬虫 爬取斗鱼视频

    一、模块使用 requests >>> pip install requestsre win + R 输入cmd 输入安装命令 pip install 模块名 (…

    Python 2023年5月24日
    0136
  • 二叉树的最小深度问题

    原文地址: 题目描述 给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。 本题可以用两种方法来解,第一种方…

    Python 2023年10月13日
    037
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球