【自动化测试】Pytest框架 —— Pytest测试框架介绍

【python篇】pytest框架(图文详解) pytest是纯python编写的自动化测试框架,可以支持python语法编写测试用例,是一个非常成熟的全功能的Python测试框架。简单灵活,容易上手;支持参数化;能够支持简单的单元测试和复杂的功能测试,还可以结合selenium、requests做自动化测试pytest具有很多第三方插件,并且可以自定义扩展。 阅读详情

1、什么是单元测试框架

单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。

2、单元测试框架主要做什么

  • 测试发现:从多个文件里面去找到我们需要的测试用例。

  • 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果。

  • 测试判断:通过断言判断预期结果和实际结果的差异。

  • 测试报告:统计测试进度,耗时,通过率等数据,并生成测试报告。

3、单元测试框架和自动化测试框架有什么关系

(1)自动化测试框架作用:

  1. 提高测试效率,降低自动化用例的维护成本。

  2. 减少人工干预,提高测试的准确性,增加代码的重用性。

  3. 核心思想是让不懂代码的人,也能够通过这个框架去实现自动化测试。

(2)Pytest单元测试框架和自动化测试框架的关系

单元测试框架:只是自动化测试框架中的组成部分之一。

pom设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控、SeleniumRequests的二次封装、报告邮件、断言体系的设计封装等,都是自动化测试框架中的组成部。

4、Pytest测试框架说明

Pytest是Python的⼀种单元测试框架,全功能且非常成熟,同⾃带的Unittest测试框架类似,相⽐于Unittest框架使⽤起来更简洁,效率更⾼。

Pytest测试框架,主要有以下几个特点:

  • Pytest是一个非常成熟的Python的单元框架,比Unittest更灵活,容易上手。

  • Pytest支持参数化配置。

  • Pytest能够支持简单的单元测试和复杂的功能测试,还可以和Selenium,Requests,Appium结合实现web自动化,接口自动化,APP自动化。

  • 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败,也支持重复执行失败的case。(跳过用例和reruns失败用例重试)

    即:支持测试用例的skipxfail处理。

  • Pytest可以很好的和Jenkins进行持续集成。

  • Pytest可以和allure生成非常美观的测试报告。

  • 在Pytest框架下可以执行Unittest框架的用例。

  • Pytest有很多非常强大的第三方插件,并且这些插件能够实现很多实用的操作。

    并且也可以自定义Pytest插件。

Pytest官方文档:https://docs.pytest.org/en/latest/contents.html

5、Pytest框架和Unittest框架区别

(1)Unittest

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest框架则是Python语言的标准单元测试框架。

Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。

(2)Pytest

Pytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。

(3)区别

1)用例编写规则:

  • Unittest测试框架:

    1、提供test.casestest suitestest fixturestest rurner相关类,让测试更加明确、方便、可控。

    2、测试文件编写前,必须先导入Unittest测试框架,import unittest

    3、测试类必须继承unittest.TestCase类,且测试类要Test_开头。(可去掉横线,下同)

    4、测试方法要以test_开头。

    5、测试类必须要用unittest.main()方法执行。

  • Pytest测试框架:

    1、基于Unittest的扩展框架,比Unittest更简洁、更高效。

    2、测试文件必须test_开头。

    3、测试类命名必须以test_开头。

    4、测试方法必须test_开头(函数也一样)。

    (规则可自定义。)

  • 总结:

    Unittest:用例格式复杂,不能兼客Pytest用例。

    Pytest:用例格式简单,可以兼容Unittest用例。

2)用例的前置和后置:

  • Unittest测试框架:

    提供了setUp/tearDowm方法,只能针对所有用例。

  • Pytest测试框架:

    1、Pytest提供了模块级、函数级、类级、方法级的setup/teardown,比Unittest的setup/tearDowm方法更活。

    • 模块级setup_module/teardown_module:开始于模块始末,全局。

    • 类级setup_class/teardown_class:只在类中前后运行一次(类中)。

    • 函数级setup_function/teardow_function:只对函数用例生效(不在类中)。

    • 方法级setup_method/teardown_method:开始于方法始末(在类中)。

    • 类里面的setup/teardown:运行在调用方法的前后。

    2、函数前加@pytest.fixtures()装饰器,在测试用例中使用Fixture函数。

    可作用于function\module\class\session中。

    fixture相对于setup/teardown来说的优势,如下:

    • 命名方式灵活,不局限于setup/teardown

    • conftest.py配置里可以实现数共享,无需import就可自动找到配置数据,可供多个.py文件调用。

    • scope="module",可以实现多个.py文件跨文件共享前置。

    • scope="session",可以实现多个.py文件跨文件使用一个session来完成用例。

    • 使用yeild返回,相当于teardown的作用。

3)参数化:

  • Unittest测试框架:结合DDT实现参数化。

  • Pytest测试框架:直接使用@pytest.mark.parametrize装饰器。

4)断言:

  • Unittest测试框架:可使用提供的assertEqualassertInassertTrueassertFalse断言方法。

  • Pytest测试框架:直接使用Python语言内置的assert表达式。

5)用例分类执行:

  • Unittest测试框架:默认执行全部用例,可以通过加载testsuite执行部分模块的用例。

  • Pytest测试框架:可以通过@pytest.mark来标记测试用例,执行命令前加上参数"-m",即可运行标记的用例。

6)失败重运行:

  • Unittest测试框架:无。

  • Pytest测试框架:支持用例执行失败重跑,提供了pytest-rerunfailures插件。

7)报告:

  • Unittest测试框架:使用HTMLTestRunnerNew库生成测试报告。

  • Pytest测试框架:使用pytest-HTMLallure插件生成测试报告。

END

END绵薄之力

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

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

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

pytest自动化测试框架基础篇 pytest是一个基于Python语言的自动化测试框架,它可以帮助测试人员更加高效地管理和执行测试用例,并提供了丰富的插件和扩展功能。使用pytest可以使我们更加轻松地编写测试脚本,自动化执行测试,快速完成测试工作,并且pytest支持使用各种主流的Python测试库(如unittest)编写的测试代码,使得我们可以平滑地从使用其他测试框架过渡到使用pytest。1、pytest是一个非常成熟的单元测试框架,灵活和简单。2、它可以结合selenium、request、appium完成各种不同的自动化。 阅读详情

相关推荐

pytest框架

定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要用test_开头,跟用例区分开。用例才是test_开头的命名;fixture装饰器里的scope有四个级别的参数:function(不写默认这个)、class、module、session;fixture可以有返回值,如果没有return,默认会是None;用例调用fixture的返回值,就是直接把fixture的函数名称作为参数传入;

lqm1234567的博客 1644

pytest测试框架

pytest是Python的高效测试框架,具备五大优势:1)灵活组织测试用例,支持模块化管理和批量执行;2)参数化功能实现数据驱动测试,避免重复代码;3)自动重试失败用例提升稳定性;4)内置HTML/XML报告生成,直观展示结果;5)支持多线程加速测试执行。其简洁语法和丰富插件生态显著提升测试效率,成为Python自动化测试的首选工具。(150字)

weixin_43724711的博客 254

【AI对话学习】Pytest框架的比较&&应用&&学习

pytest是一个流行的Python测试框架,它使得编写和组织测试代码变得简单。pytest通过插件系统支持断言、 fixtures (用于设置和清理测试环境)、参数化测试等高级功能。其特点包括:语法简洁、自动发现测试用例、强大的插件生态系统。使用pytest,你可以快速执行测试,并在测试失败时提供详细的错误报告,有助于快速定位问题。对于Python开发者来说,pytest是提高代码质量和保证软件健壮性的重要工具。核心内容具体内容详细介绍1-Pytest的Fixture概念和用法。

u013177528的博客 1318

pytest框架-详解(学习pytest框架这一篇就够了)

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:1、简单灵活,非常方便的组织自动化测试用例;2、支持参数化,可以细粒度地控制要测试测试用例;3、能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试、request接口自动化测试4、pytest具有很多第三方插件,并且可以自定义扩展,比如测试报告生成,失败重运行机制5、测试用例的skip和fail处理;6、结合业界最美的测试报告allure+Jenkins,持续集成。

kkkkk19980517的博客 7万+

自动化测试Pytest框架 —— Pytest测试框架介绍_pytest框架详解

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest框架则是Python语言的标准单元测试框架。Unittest支持自动化测试测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。1、基于Unittest的扩展框架,比Unittest更简洁、更高效。1、Pytest提供了模块级、函数级、类级、方法级的。

2401_84247423的博客 843

自动化测试Pytest框架 —— Pytest测试框架介绍_pytest框架详解(1)

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest框架则是Python语言的标准单元测试框架。Unittest支持自动化测试测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。的二次封装、报告邮件、断言体系的设计封装等,都是自动化测试框架中的组成部。pom设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控、

2401_84247423的博客 1555

从 0 到 1 搭建完整 Python 语言 Web UI自动化测试学习系列 17--测试框架Pytest基础 1--介绍使用

Web UI自动化测试学习系列第十七篇

测试开发 1300

python pytest测试框架

测试框架是指为自动化测试而设计的一组工具、库;提供了一种标准的方法来编写、运行和维护自动化测试用例。自动化测试框架由一个或多个模块集合组成,例如测试用例的管理、测试环境的配置和管理、测试数据的准备、测试结果的分析和报告等方面。使用自动化测试框架可以有效地提高软件测试的效率和质量,缩短测试周期。

h091616的博客 1504

pytest 框架介绍

什么是框架?简单来说就是一套抽象出来的工具集合,可以提供大量组件、工具和功能等。一般把重复工作通过代码封装好,实现多次重复调用。对于测试框架而言,通常包含用例发现、用例管理、用例执行、配置管理、日志管理、数据管理、测试报告等功能。

伤心的辣条 885

pytest测试框架——数据驱动

声明:本文全部摘抄自作者 Wu_Candy,原文链接Pytest 测试框架——数据驱动_Wu_Candy的博客-CSDN博客_pytest数据驱动引言前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理。今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest 自带的pytest.mark.parametrize()来实现的。pytest.mark.parametrize 实现数据驱动pytest.mark.parametri

wbk0905的博客 3036

Python接口自动化测试框架(实战篇)-- 进阶pytest测试框架

怎么来说这一章节呢,有点什么感觉(多此一举),其实在咱们设计框架的时候,很难确定某个组件突然会不满足框架的功能使用了,但是应该保障框架的扩展性,除非重构否则应该兼容原来的框架设计,既然选择了使用unittest测试框架,那么说明它已经能满足当下的需求,如果在中途硬要使用pytest框架替换,题主并不建议重构框架,可以使用pytest测试框架并按它的使用规则开发测试用例类即可。为什么这么说呢?因为Pytest是向下兼容unittest框架的;

我先测了 961

Python —— pytest框架

1、搭建自动化测试框架的思路和流程,任意测试手段流程都是一致的:手工测试自动化测试、工具测试不需要安装,不能自动发现测试用例,手动收集用例pytest:第三方库,需要安装导入使用:智能自动收集所有用例,使用更广泛- 安装: pip install pytest- 导包:import pytest3. unittest和pytest都是单元测试框架,都可以用来编写测试用例,运行用例,生成报告,实现测试前置和后置等。

南夏一木子的博客 4198

Pytest自动化测试框架---(单元测试框架

unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发一些功能(报告,初始化webdriver,或者http请求方法)便可实现。

软件自动化测试技术交流、资源分享 3020

Pytest自动化测试框架详解

今日之失,未必不为后日之得。大家好,刚才在翻看之前整理的一些关于自动化测试的文档,突然发现一个比较详细的关于pytest框架介绍和使用文章,对于打算使用python进行自动化测试编写的小伙伴,还是很值得一看的,希望对大家有所帮助。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 6104
上一篇: 自动化测试 —— Airtest
下一篇: 【自动化测试】Pytest框架 —— Pytest的基本使用
程序员 小濠
博客等级 码龄4年 2243粉丝 757原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值