pytest框架详解,pytest测试框架和unittest
本文主要介绍python测试框架pytest,这是一个非常成熟、功能齐全的Python测试框架。它简单、灵活、易用,支持参数化等。供大家参考,请参考下面的相关内容。
00-1010 I Pytest二介绍、Pytest三安装、py test四执行、test类五主要功能、断言方法六、常用命令详解七、接口调用
目录
Pytest是一个成熟的全功能Python测试工具,可以帮助你编写更好的程序。pytest框架使得编写小型测试变得容易,而且可以扩展以支持应用程序和库的复杂功能测试。
通过官网的介绍,我们可以知道Pytest是一个非常成熟、功能齐全的python测试框架,具有以下特点:
简单灵活易用,支持参数化,支持简单的单元测试和复杂的功能测试,也可用于自动化测试。有很多第三方插件,可以自定义扩展测试用例的skip和xfail处理,可以和Jenkins很好的集成,支持运行Nose和UnitTest编写的测试用例。
一、Pytest简介
1.直接使用pip命令安装:
Pip-u pytest #-u是最新版本,如果安装,将自动升级。
2.验证安装结果:
Pytest - version #显示当前安装的版本。
C:Usersedisonpytest -版本
pytest 6.2.5
3.在pytest测试框架中,要遵循以下约束:
测试文件的名称应该符合test_的格式。py或_test.py(例如test_min.py)。
测试应以Test开始,不能有init方法。
在单个测试类中,您可以包含一个或多个以test_
二、Pytest安装
pytest进行测试比较简单,我们来看一个实例:
导入pytest #导入pytest包
Test_ 001 () : #函数以Test_开始
打印(“测试_01”)
定义测试_002():
打印(“测试_02”)
if __name__==__main__:
Test.main ([-v , test _ 1214.py]) #调用pytest的main函数来执行测试。
这里我们定义了两个测试函数,直接打印出结果,下面执行测试:
==========================测试会话开始=========================
平台win32 - Python 3.8.0,pytest-6.2.5,py-1.11.0,pluggy-1 . 0 . 0-d : Code venv Scripts Python . exe
cachedir:pytest_cache
rootdir: D:Code
收集.收集了2个项目
test_1214.py:test_001通过[ 50%]
test_1214.py:test_002通过[100%]
============================2传入0.11s==================
========
Process finished with exit code 0
输出结果中显示执行了多少条案例、对应的测试模块、通过条数以及执行耗时。
四、测试类主函数
pytest.main(["-v","test_1214.py"])
通过python代码执行pytest.main():
直接执行pytest.main()
【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】;
设置pytest的执行参数 pytest.main([’–html=./report.html’,‘test_login.py’])【执行test_login.py文件,并生成html格式的报告】。
main()
括号内可传入执行参数和插件参数,通过[]进行分割,[]内的多个参数通过‘逗号,’进行分割:
运行目录及子包下的所有用例 pytest.main([‘目录名’])
运行指定模块所有用例 pytest.main([‘test_reg.py’])
运行指定模块指定类指定用例pytest.main([‘test_reg.py::TestClass::test_method’])
冒号分割
-m=xxx: 运行打标签的用例
-reruns=xxx:失败重新运行
-q: 安静模式, 不输出环境信息
-v: 丰富信息模式, 输出更详细的用例执行信息
-s: 显示程序中的
print/logging
输出
–resultlog=./log.txt 生成log
–junitxml=./log.xml 生成xml报告
五、断言方法
pytest断言主要使用Python原生断言方法,主要有以下几种:
== 内容和类型必须同时满足相等
in 实际结果包含预期结果
is 断言前后两个值相等
import pytest # 导入pytest包
============================= test session starts =============================
可以看到运行结果中明确指出了错误原因是AssertionError,因为PHP不在str1中。
六、常用命令详解
1.运行指定案例:
if __name__ == __main__:
2.运行当前文件夹包括子文件夹所有用例:
if __name__ == __main__:
3.运行指定文件夹(code目录下所有用例):
if __name__ == __main__:
4.运行模块中指定用例(运行模块中test_add用例):
if __name__ == __main__:
5.执行失败的最大次数
使用表达式"–maxfail=num"来实现(注意:表达式中间不能存在空格),表示用例失败总数等于num 时停止运行。
6.错误信息在一行展示。
在实际项目中如果有很多用例执行失败,查看报错信息将会很麻烦。使用"–tb=line"命令,可以很好解决这个问题。
七、接口调用
本地写一个查询用户信息的接口,通过pytest来调用,并进行接口断言。
# -*- coding: utf-8 -*-
到此这篇关于Python测试框架pytest介绍的文章就介绍到这了,更多相关Python测试框架pytest内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。