自动化测试框架 —— pytest框架入门篇

今天就给大家说一说pytest框架。

今天这篇文章呢,会从以下几个方面来介绍:

0 1、pytest框架介绍

pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持非常丰富的插件,同时兼容 unittest 框架。这就使得我们在 unittest 框架迁移到 pytest 框架的时候不需要重写代码。

pytest框架优点

1、简单灵活,容易上手

2、支持参数化

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

4、pytest具有很多第三方插件,并且可以自定义扩展,

02、pytest框架的安装

pytest框架的安装

复制代码
pip install pytest

pytest框架使用注意事项

.py 测试文件必须以test_开头(或者以_test结尾)

测试类必须以Test开头,并且不能有 init 方法

测试方法必须以test_开头

断言必须使用 assert

03、pytest运行方式

1、、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头的测试函数

2、当运行时指定测试文件的时候

1.此时目录一定要切换到测试文件所在的目录,否则pytest搜索不到测试,不会执行.

2.执行测试文件里的函数的时候,会搜索以test_开头的测试函数执行,不符合此规则的函数不会被执行

3.如果含有测试类,那么允许该测试文件时,会搜索类名以Test开头的类,且该测试类中的函数命名也必须符合要求才会被执行

4、运行的方式可以在命令行也可以在主方法上面运行

例如:如:指定运行pythonDemo目录下的test_01模块

......

if name == "main":

pytest.main(["pythonDemo/test_01.py"])

或者命令行模式:

pytest pythonDemo/test_01.py

其实呢,pytest的运行方式花样非常多,有很多参数可以使用,可以达到不同的效果。

04、pytest框架常用插件及安装

pytest框架提供非常多的插件,可以实现不同的功能,今天给大家例举一下最常用的几种插件。

pytest-xdist

当用例量很多时,运行时间也会变的很长,如果想缩短脚本运行的时长,就可以用多进程来运行。多cpu分布。

pytest-rerunfailures

在做测试时, 短时的网络波动会导致用例运行失败, , 此时就可通过重试运行用例的方式来解决问题。(用例失败后重跑

pytest-html

是一个pytest用于生成XML/HTML测试报告的插件。(HTML测试报告)

pytest-assume

Pytest中可用assert断言, 但一个失败后面的断言将不再执行;pytest-assume可以实现对多个断言多重校验的。

pytest-repeat

测试过程中会出现一些偶现的bug, 对于这种问题我们会针对此用例反复执行多次, 最终复现出问题来; pytest-repeat插件就能起到这个作用: 重复执行测试用例

pytest-ordering

pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)

用例之间的顺序是文件之间按照ASCLL码排序,文件内的用例按照从上往下执行

setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

但可以通过第三方插件pytest-ordering实现自定义用例执行顺序

好了,今天先给大家介绍到这里

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
CoderYanger7 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
덕화7 小时前
【面试宝典】线上问题逆向分析1
面试·职场和发展
美团程序员7 小时前
一篇文章教你搞定:”xx 功能如何测试?“常见面试题型!
测试工具·面试·职场和发展·测试用例
墨染点香9 小时前
LeetCode 刷题【172. 阶乘后的零】
算法·leetcode·职场和发展
郝学胜-神的一滴9 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发
铭哥的编程日记13 小时前
《斩获字节跳动offer 最详细的面试真题与破解思路》第一期
面试·职场和发展
小白程序员成长日记15 小时前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
少云清17 小时前
【功能测试】3_Web项目 _单功能模块测试
功能测试·模块测试
爱学测试的雨果18 小时前
收藏!软件测试面试题
开发语言·面试·职场和发展
Hacker_Fuchen18 小时前
POST请求提交数据的三种方式及通过Postman实现
自动化测试·软件测试·测试工具·postman