首页技术pytest框架详细介绍 pytest框架和selenium一样吗

pytest框架详细介绍 pytest框架和selenium一样吗

编程之家2026-06-23784次浏览

很多朋友对于pytest框架详细介绍和pytest框架和selenium一样吗不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

pytest框架详细介绍 pytest框架和selenium一样吗

Pytest测试框架知识

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:

1.简单灵活,容易上手

2.支持参数化

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

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

5.测试用例的skip和xfail处理

pytest框架详细介绍 pytest框架和selenium一样吗

6.可以很好的和jenkins集成

7.report框架----allure也支持了pytest

使用命令

查看是否安装成功及安装的版本信息

pytest官方文档:

注意pytest有如下约束:

pytest框架详细介绍 pytest框架和selenium一样吗

1、测试模块文件(.py文件)命名应该以 test_开头或者以_test结尾。

2、测试类命名应当以Test开头。表示一个项目或者一个模块的用例集合

3、测试用例(函数)命名,测试函数的方法命名应该以test_开头。

注意:测试类的不应该有构造函数,也就是不能有 __init__出现

案例新建一个python文件,命名为:test_example1:

执行后,可以看到,运行了test_example1文件下Test_Login测试类和Test_Login2测试类中的三个测试用例

参数详解:

-s:表示输出调试信息,包括print打印的信息

-v:显示更详细的信息

-vs:两个参数一起用

-n:支持多线程或分布式运行用例

-return NUM:失败用例重跑,num失败后重跑的次数

-x:表示只要有一个用例报错,那么测试停止

--maxfall=2:出现两个用例失败就停止

-k:根据测试用例的步伐字符串指定测试用例

如:pytest-vs./testcase-k"ao"

--html./report/report.html:会在之指定路径下生成html的报告

pytest.ini这个文件它是pytest单元测试框架的核心配置文件

1、位置:一般放在项目的跟目录下

2、编码:必须是ANSI,可以使用notpad++修改编码格式

3、作用:改变pytest默认的行为

4、运行规则:不管是主函数的模式运行,命令模式运行,都会去读取这个配置文件

unittes框架:是根据ASCII的大小来决定执行的顺序

pytest框架:默认从上到下

pytest自动化框架的5个层级架构

pytest自动化框架的5个层级架构

pytest提供了相对自由和层次丰富的setup与teardown框架结构,即测试用例的前后置处理机制。这些层次结构有助于在不同阶段进行必要的准备和清理工作。pytest的5个层级架构包括:session会话级、module模块级、class类级、function函数级、method方法级。以下是每个层级的详细解释:

session会话级

session层级是pytest中最高的层级,它表示整个测试会话的生命周期。在整个测试会话过程中,setup和teardown方法只会被执行一次。

用途:适用于需要在整个测试会话开始时进行全局资源初始化(如数据库连接、配置加载等),以及在测试会话结束时进行资源释放(如关闭数据库连接、清理临时文件等)的场景。

module模块级

module层级针对的是单个测试模块。在每个测试模块开始执行前,会执行setup_module方法;在所有测试用例执行完毕后,会执行teardown_module方法。

用途:适用于模块级别的资源初始化与清理,如模块级别的配置加载、模块级别的资源申请与释放等。

注意:这些方法不存在于类中,而是直接定义在模块级别。

class类级

class层级针对的是测试类。在每个测试类开始执行前,会执行setup_class方法;在该类的所有测试用例执行完毕后,会执行teardown_class方法。

用途:适用于类级别的资源初始化与清理,如类级别的数据库连接、类级别的资源申请与释放等。

注意:这些方法必须定义在测试类中,且在整个类中只会被执行一次。

function函数级

function层级针对的是单个测试用例函数。在每个非类函数测试用例开始前,会执行setup_function方法;在每个测试用例执行完毕后,会执行teardown_function方法。

用途:适用于函数级别的资源初始化与清理,如测试用例的输入准备、测试用例执行后的环境恢复等。

注意:这些方法适用于非类函数测试用例,即直接定义在模块中的函数。

method方法级

method层级针对的是测试类中的单个测试方法。在每个测试方法开始前,会执行setup_method方法;在每个测试方法执行完毕后,会执行teardown_method方法。

用途:适用于方法级别的资源初始化与清理,如测试方法的输入准备、测试方法执行后的环境恢复等。

注意:这些方法必须定义在测试类中,且会在每个测试方法执行前后分别被调用。此外,在pytest v7以后的版本中,如果类中同时存在setup_method/teardown_method和setup/teardown方法,只会执行setup_method/teardown_method方法。

兼容类/函数方法setup/teardown

pytest还提供了一种兼容性的setup/teardown方法,这些方法可以在类中定义,用于在每个测试用例方法前后执行。然而,需要注意的是,在pytest的新版本中(如v7及以后),如果类中同时存在setup_method/teardown_method和setup/teardown方法,只会执行前者。用途:这种方法提供了一种兼容性的写法,使得在旧版本的pytest代码中编写的测试用例能够在新版本中继续运行。然而,为了代码的清晰性和可维护性,建议在新版本的pytest中优先使用setup_method/teardown_method方法。以下是pytest 5个层级架构的简要总结:

session会话级:整个测试会话的生命周期,全局资源初始化与释放。module模块级:单个测试模块的生命周期,模块级别的资源初始化与清理。class类级:单个测试类的生命周期,类级别的资源初始化与清理。function函数级:单个非类函数测试用例的生命周期,函数级别的资源初始化与清理。method方法级:测试类中的单个测试方法的生命周期,方法级别的资源初始化与清理。通过合理利用pytest的5个层级架构,可以更加高效地编写和管理测试用例,提高测试代码的可读性和可维护性。

Python测试框架pytest入门基础

通过官方网站介绍我们可以了解到,pytest是一个非常成熟的全功能的python测试框架,主要有

以下几个特点:

1.直接使用pip命令安装

2.验证安装结果

3.在pytest测试框架中,要遵循以下约束:

pytest进行测试比较简单,我们来看一个实例:

这里我们定义了了两个测试函数,直接打印出结果,下面执行测试:

输出结果中显示执行了多少条案例、对应的测试模块、通过条数以及执行耗时。

pytest断言主要使用Python原生断言方法,主要有以下几种:

可以看到运行结果中明确指出了错误原因是"AssertionError",因为PHP不在str1中。

1.运行指定案例

2.运行当前文件夹包括子文件夹所有用例

3.运行指定文件夹(code目录下所有用例)

4.运行模块中指定用例(运行模块中test_add用例)

5.执行失败的最大次数

使用表达式"--maxfail=num"来实现(注意:表达式中间不能存在空格),表示用例失败总数等于num时停止运行。

6.错误信息在一行展示

在实际项目中如果有很多用例执行失败,查看报错信息将会很麻烦。使用"--tb=line"命令,可以很好解决这个问题。

本地写一个查询用户信息的接口,通过pytest来调用,并进行接口断言。

关于pytest框架详细介绍和pytest框架和selenium一样吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

台服 战网(暴雪亚服官网)marquee boost?boost椰子