今天主要介绍:

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

2、与的区别

3、安装

是干什么的,优点是什么

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

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

语法

def test_f():
print("Nhooo")

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

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

框架的优点在下面列出-

与的区别

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

馈反馈测试结果信息,在编写测试点方面比较自由,可以使用函数式的编程等语言,也可以使用面向对

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

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

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

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

简单灵活,容易上手

支持参数化

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

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

测试用例的skip和xfail处理

可以很好地和集成

框架—- 也支持了

在框架中,有如下约束:

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

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

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

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

pytest接口自动化框架_pytest框架_pytest

一、用例设计规则

1.

(1)测试类必须继承.

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

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

2.

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

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

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

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

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

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

二、断言对比

1. 断言

(a, b) # 判断a和b是否相等

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

(a) # 判断a是否为Ture

(a) #判断a是否为False

(a, b) # a 包含在b里面

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

……

2. 断言

只需要用 来断言就行, 后面加需要断言的条件就可以了,例如: a = = b # 判断a是否等于b、

a != b # 判断a不等于b、 a in b # 判断b包含a

总结:从断言上面来看,的断言比要简单些,断言需要记很多断言格式,只有一个表达式,用起来比较方便

三、用例前置和后置

1.前置和后置

(1)通过setup每个用例执行前执行,每个用例执行后执行

(2)通过类里面所有用例执行前执行,类里面所有用例执行后执行

2.前置和后置

(1)模块级别:/,整个.py全部用例开始前执行/全部用例执行完后执行

(2)函数级别:/,只对函数级别生效,每个用例开始前和结束后执行一次

(3)类级别:/,只对类级别生效,类里面所有用例开始前执行一次,所有用例执行完执行一次

(4)方法级别:/,只是类里面方法级别生效,方法开始前执行一致,方法结束后执行一次

(5)方法级别:setup/,这个与/用法很类似,但是级别比级别要低,也就是说在同一个方法中会先执行再执行setup,方法结束后先执行再执行

自定义设置前置和后置:

通过可以自定义的前置和后置,格式(scope=””, =None, =False, ids=None, name=Noe)

scope:有四个级别,(默认),class,,

:参数列表

:False为默认值,意思代表需要根据设置的条件(scope级别)来激活,如果为Ture,则表示所有级别的都被激活

ids:每个字符串id的列表,感觉没啥实质性作用

name:的名字

四、参数化

1.参数化

可以通过来实现,格式:@..(data), ‘data’为list格式的参数化的数据

2.参数化

通过装饰器@.mark.来实现

五、生成报告方式

1.

通过生成

2.

(1)通过-html生成html格式报告

(2)通过生成方案(很详细)

安装

1、安装

在cmd命令行以下命令:

pip install -U pytest

检查你安装的版本是否正确:

pytest --version

2、命名规则

所有单测文件名以test_*.py或者*_test.py命名,将会运行当前目录或者子目录下所有这些文件。

测试类以Test作为类的前缀,不能带init方法

测试类可以包含一个或多个带有test_前缀的函数,并且执行顺序按Ascii码字符集

3、第一次运行demo

# 文件名:test_demo.py
import pytest
class TestDemo:
def test_01(self):
assert 1 # 断言成功
def test_02(self):
assert 0 # 断言失败

输出结果:

pytest接口自动化框架_pytest_pytest框架

4、调用方式

4.1、测试类主函数模式

if __name__ == '__main__':
pytest.main("-s test_abc.py") # 调用pytest的main函数执行测试

4.2、命令行模式

pytest 文件路径/测试文件名 # 例如:pytest ./test_demo.py
pytest -q 文件路径/测试文件名 # -q使结果简洁格式输出

4.3、控制测试用例执行

4.3.1、按模块执行测试用例

pytest test_mod.py

4.3.2、按目录名执行当前目录下的所有测试用例

pytest testing/

4.3.3、按关键字执行测试

pytest -k "MyClass and not method"
# 将执行TestMyClass.test_something而不是testmyclass.test_method_simple
# 执行包含与给定字符串表达式(大小写不敏感)匹配的名称的测试用例,其中可以包括文件名、类名和函数名

4.3.4、按node id执行测试

该由模块文件名后面跟类名、函数名和参数化参数等说明符组成,用::字符分隔。

执行指定的类:

pytest test_mod.py::test_func
例如:
pytest test_demo.py::TestDemo1

执行指定的函数:

pytest test_mod.py::TestClass::test_method
例如:
pytest test_demo.py::TestDemo::test_01

4.3.5、按标记表达式执行测试

pytest -m slow
# 将执行使用@pytest.mark.slow装饰器的所有测试用例

4.3.6、按包名执行测试

pytest --pyargs pkg.testing

5、管理插件

查看插件

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

pytest -p mypluginmodule

禁用插件:

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

pytest -p no:doctest
# 禁用doctest插件

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666