Pytest框架测试用例规则和运行方式

news2025/1/21 9:34:34

目录

一、默认的测试用例规则

二、测试用例执行顺序

三、测试用例运行方式

3.1.主函数模式

3.1.1.主函数模式:4种运行方式 

3.1.2.文件框架如下图 

3.2.命令行模式

3.2.1.命令行模式:4种运行方式 

3.2.2.第2种运行方式框架

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

3.3.1.pytest.ini 文件注意事项

3.3.2.pytest.ini 文件释义

3.3.3.pytest.ini文件源码 


一、默认的测试用例规则

1.1.模块名【test_login】:必须以 test_开头 或者 _test结尾
1.2.测试类【Testlogin】:必须以 Test开头,并且不能有init方法
1.3.测试方法【test_01_baili】:必须以 test开头
1.4.所有的包 package 必须要有__init__.py 文件

 

二、测试用例执行顺序

unittest:按ASCII码的大小来绝对的执行顺序

pytest:默认从上到下

改变用例默认的执行顺序:使用mark标记

三、测试用例运行方式

运行参数含义详情见:Pytest框架运行常用参数解析_沫沫18S的博客-CSDN博客

3.1.主函数模式

if __name__ == '__main__':
    pytest.main(['-vs','-m smoke','test_01_baili'])

3.1.1.主函数模式:4种运行方式 

#1.运行所有
pytest.main()
#2.指定模块[文件]
pytest.main(['-vs','test_login.py'])
#3.指定目录文件夹
pytest.main(['-vs','./interface_testcase'])
#4.指定目录文件夹2;通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
   执行函数:无类名
pytest.main(['-vs', './interface_testcase/test_interface.py::test_01_func'])
   执行方法
pytest.main(['-vs', './interface_testcase/test_interface.py::TestInterface::test_01'])

3.1.2.文件框架如下图 

3.2.命令行模式

3.2.1.命令行模式:4种运行方式 

#1.运行所有文件:
pytest
#2.执行某个文件的【冒烟】用例;-m后也可以使用表达式,在标记之间添加and,or,not关键字
pytest -vs test_login.py
pytest -v -m smoke test_login.py
#3.指定目录文件夹
pytest -vs ./interface_testcase
#4.指定目录文件夹2;通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
   执行函数:无类名
pytest -vs ./interface_testcase/test_interface.py::test_01_func
   执行方法
pytest -vs ./interface_testcase/test_interface.py::TestInterface::test_01

3.2.2.第2种运行方式框架

 备注:第4种运行方式框架,同主函数模式的

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

3.3.1.pytest.ini 文件注意事项

pytest.ini 一般在企业自动化测试落地中使用的方式,也是pytest单元测试框架的核心配置文件

  1. 位置:一般放在项目的根目录;
  2. 名字:必须是 pytest.ini
  3. 编码格式:必须是 ANSI,可以使用notpad++修改编码格式
  4. 作用:可以改变pytest默认的测试用例规则
  5. 运行规则:不管是主函数的模式运行,命令行模式运行,都会去读取pytest.ini这个配置文件

3.3.2.pytest.ini 文件释义

注意:含中文执行时会报错 ,去掉所有中文后,可以使用notpad++修改编码格式

3.3.3.pytest.ini文件源码 

[pytest]
addopts = -vs -m "smkoe"
testpaths = ./testcase/
python_files = test_*.py
python_classes = test*
python_functions = test

 备注:修改【pytest.ini文件源码 】模块名、类名、方法名的命名规则,对应模块、类、方法的名字也需要跟着pytest.ini的规则修改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JAVA】抽象类和接口

🏆今日学习目标:抽象类和接口 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰本期期数:第二期 🎉专栏系列:JAVA 文章目录一、抽象类抽象类的定义规则示例二、接口接口定义与语…

Volatile关键字简述

Volatile关键字前言前置知识程序、进程、线程程序进程线程并发所涉及的一些特性线程安全原子性可见性Volatile案例环境代码展示可见性测试原子性测试前言 最近在看《Java并发编程实战》,期望对一些并发的知识点做一些总结。最好有一定的Java基础、并发的基础。 前…

Qt 一个信号对应多个槽,多个信号对应一个槽的执行顺序

前言: Qt独创的信号槽机制,不仅可以一个信号连接一个槽,而且可以一对多或多对一。 这其中存在两个最基本的问题: 1.一个信号对应多个槽时,槽函数的执行顺序是怎样的??? 2.多个信号对…

【操作系统三】图解网络IO(bio\nio\slect\epoll)

【操作系统三】图解网络IO实战一、计算机组成二、系统中断三、晶振(时间中断、分时复用)四、事件中断1、DMA2、事件中断3、网卡也会产生中断?五、linux系统知识1、linux下一切皆文件?1.1、nc启动一个服务端,端口号80801.2、linux下…

vulnhub靶机:matrix:1

目录 查看靶机的ip 开放端口扫描 解密 字典生成爆破 ssh登录 rbash逃逸 下载地址:Matrix: 1 ~ VulnHub Kali地址:192.168.174.128 靶机地址:192.168.174.139 这个靶机是我在刷到的一个视频,讲解这个靶机的博主比较有趣&a…

web网页设计期末课程大作业:水果网站设计——HTML+CSS+JavaScript水果超市(带论文)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

大一学生Web课程设计 HTML+CSS保时捷汽车介绍(可以很好的应付老师的作业)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

2022CTF培训(八)ARM PWN 环境搭建ARM PWN 入门

附件下载链接 环境搭建 QEMU qemu是一款可执行硬件虚拟化的虚拟机,与他类似的还有Bochs、PearPC, 但qemu具有高速(配合KVM)、跨平台的特性 qemu主要有两种运行模式:qemu-user 和 qemu-system qemu-system 可以进行…

[附源码]Python计算机毕业设计高校互联网班级管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

[附源码]Nodejs计算机毕业设计基于的开放式实验室预约系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

k8s编程operator实战之云编码平台——④web后端实现

文章目录1、简介1.1 目录结构1.2 开发模式2、数据库设计2.1 user表2.2 space_template和space_kind表2.3 space和spacespec表3、gRPC客户端4、数据库访问4.1 mysql4.2 redis5、缓存加载5.1 通用缓存5.2 数据加载6、功能开发6.1 用户登录6.2 获取所有模板6.3 创建工作空间6.4 创…

如何进行C++动态转换

📒博客主页: ​​开心档博客主页​​ 🎉欢迎关注🔎点赞👍收藏⭐留言📝 📌本文由开心档原创! 📆51CTO首发时间:🌴2022年12月12日🌴 ✉…

如何评价「仙剑奇侠传六」使用Unity 3D引擎?

2022年看到问题,根据2022年Unity3D、Unreal Engine及仙剑六来一波“穿越马后炮式”回答。 1: 2022年看到问题,根据2022年Unity3D、Unreal Engine及仙剑六来一波“穿越马后炮式”回答。 1: 仙剑奇侠传六确为unity引擎制作&#…

大学生简单静态HTML网页模板源码——家乡介绍美丽乡村11页

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

【leetcode】将有序数组转换为二叉搜索树

一、题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1: 输入:nums …

微信对接chatGPT,实现自动回复消息、在线答疑等功能

前言 近来chatGPT挺火的,也试玩了一下,确实挺有意思。这里记录一下在在微信中也可以使用chatGPT,顺带可以自动回复微信消息、实时答疑等。。。 上一篇文章回顾:https://frica.blog.csdn.net/article/details/128316712 本文章在u…

Spark3.3.0的DataFrame及Spark SQL编程的性能对比【单机模式下】

Spark3.3.0的DataFrame及Spark SQL编程的性能对比【单机模式下】 前言 Spark3.3.0较老早的2.4.0有极大的性能优化,尤其是对SQL做了大量的优化【数据倾斜等】,恰好近期遇到一些性能问题,特意写个Demo测试下DataFrame和Spark SQL在获取到相同…

c#入门-接口的抽象成员和虚成员

接口的抽象成员 接口的成员如果不指定主体,那么就是抽象成员。 你可以主动为他们加抽象修饰符,不过没什么用。 interface I属性 {public abstract int Hp { get; set; }public abstract int Mp { get; set; } }接口的虚成员 接口的成员可以指定主体。…

Jina 开箱即用的云原生多模态系统解决方案

Jina 是一个基于云原生的多模态应用框架,开发者使用 Jina 可以轻松构建、部署和维护高性能的云原生应用。你可能认为这些都只是空泛的营销口号,甚至产生疑问,到底什么是云原生?对构建多模态应用有什么帮助?它是否只是 …

Linux CentoOs7中用命令打开并修改文本文件

概述:VI/VIM VI 是 Unix 操作系统和类 Unix 操作系统中最通用的**文本编辑器**。 VIM 编辑器是从 VI 发展出来的一个性能更强大的**文本编辑器**。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。 我们常常用vim命令…