测开实战分享,pytest从入门到放弃,面试备用

admin 2025-07-25 44人围观 ,发现220个评论

今天主要介绍:

1、pytest是干什么的,优点是什么

2、pytest与unittest的区别

3、pytest安装

pytest是干什么的,优点是什么

Pytest是python中的测试框架。要安装pytest,我们需要使用命令pipinstallpytest。安装后,我们可以通过pytest–version命令验证是否已安装python。pytest的版本应该是已知的。

Pytest可用于创建和执行测试用例。它可以用于广泛的测试API,UI,数据库等。pytest的测试文件具有一个命名约定,它以test_开头或以_test关键字结尾,并且每一行代码都应位于一个方法内,该方法应以test关键字开头。同样,每个方法都应具有唯一的名称。

语法

deftest_f():print("Nhooo")

要运行上面的代码,我们需要移至终端并使用命令。但是,从执行的角度来看,这不会提供太多细节。要获取有关执行的信息,我们应该使用命令–v。v代表冗长。

为了打印控制台日志,我们需要使用命令–v–s。同样,如果我们要从特定的pytest文件运行测试,则命令为。

pytest框架的优点在下面列出-

Pytest能够同时执行多个测试用例,从而减少了执行时间。

Pytest能够在执行期间从一组测试方法中跳过一种测试方法。

Pytest是免费的,没有许可费用。

Pytest快速且易于学习。

Pytest可以根据条件选择运行特定的测试方法或特定测试文件的所有测试方法。

Pytest能够在测试执行期间从所有测试方法中跳过一些测试方法。

Pytest可用于在API,数据库等上测试各种应用程序。

pytest与unittest的区别

Pytest是基于Python语言的单元测试框架,也是一个命令行的工具,可以自动的找到测试用例执行和反

象的编程语言。并且它的断言使用的是Python原生的assert关键字,同时Pytest测试框架可以很完美的

和unittest整合应用到一起,能够很好地进行兼容。Pytest比起unittest来说比较自由,使用unittest首先

要继承TestCase的类,但是pytest是不需要的,安装成功后,直接编写测试函数或者测试⽅法就可以使用了。下面具体来说Pytest测试框架与unittest测试框架的区别。

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

简单灵活,容易上手

支持参数化

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

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

测试用例的skip和xfail处理

可以很好地和jenkins集成

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

在pytest框架中,有如下约束:

所有的单测文件名都需要满足test_.py格式或_格式。

在单测文件中,测试类以Test开头,并且不能带有init方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的)

在单测类中,可以包含一个或多个test_开头的函数。

此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。

一、用例设计规则

1.unittest

(1)测试类必须继承

(2)测试函数必须以”test_”开头

(3)测试类必须有()方法

2.pytest

(1)测试文件的文件名必须以”test_”开头,或者以”_test”结尾

(2)测试类命名必须以”Test”开头

(3)测试函数名必须以”test”开头

(4)测试类里面不能使用”init”方法

总结:pytest是基于unittest衍生出来的新的测试框架,使用起来相对于unittest来说更简单、效率来说更高,pytest兼容unittest测试用例,但是反过来unittest不兼容pytest,所以说pytest的容错性更好一些!在使用交互逻辑上面pytest比unittest更全一些!

unittest是python自带的测试库,自我感觉的话,如果对python只是了解基础知识,学unittest框架相对于来说要好理解些,unittest框架也完全可以实现市场上大部分的业务测试!建议可以先了解下unittest框架,然后在学pytest框架,可以更好地去感受一下两个框架的优缺点

二、断言对比

1.unittest断言

assertEqual(a,b)判断a不等于b

assertTrue(a)判断a是否为False

assertIn(a,b)a不包含在b里面

……

2.pytest断言

pytest只需要用assert来断言就行,assert后面加需要断言的条件就可以了,例如:asserta==b判断a不等于b、assertainb文件名:test_:deftest_01(self):assert1断言失败

输出结果:

4、调用pytest方式

4.1、测试类主函数模式

if__name__=='__main__':("-stest_")例如:pytest./test_文件路径/测试文件名将执行_something而不是_method_simple将执行使用@装饰器的所有测试用例

4.3.6、按包名执行测试

5、管理插件

查看插件

可以在命令行中使用-p选项查看下载的插件(内部和外部):

pytest-pmypluginmodule

禁用插件:

禁用指定的插件使用-pno:选项

pytest-pno:doctest#禁用doctest插件
猜你喜欢
不容错过