pytest测试框架常用功能_unittest批量加载用例

pytest测试框架常用功能_unittest批量加载用例目录前言###文章内容有配套的学习视频和笔记都放在了文章末尾###1、什么是单元测试框架2、单元测试框架主要做什么3、单元测试框架和自动化测试框架有什么关系4、Pytest测试框架说明5、Pytest框架和Unittest框架区别重点:配套学习资料和视频教学前言大家好我是测试达人,最近我会更新一系列pytest的框架全套教程,不比你在培训机构花的几千块买的ppt教程好吗?==白嫖真香!!###文章内容有配套的学习视频和笔记都放在了文章末尾###1、什么是单

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目录

前言

###文章内容有配套的学习视频和笔记都放在了文章末尾###

1、什么是单元测试框架

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

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

4、Pytest测试框架说明

5、Pytest框架和Unittest框架区别

重点:配套学习资料和视频教学


前言

大家好我是测试达人,最近我会更新一系列pytest的框架全套教程,不比你在培训机构花的几千块买的ppt教程好吗?==白嫖真香!!

###文章内容有配套的学习视频和笔记都放在了文章末尾###

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插件生成测试报告。

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

pytest测试框架常用功能_unittest批量加载用例
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182019.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 夜深人静学算法_写夜深人静的句子

    夜深人静学算法_写夜深人静的句子一种处理单调性问题的数据结构—单调栈

    2022年9月22日
    3
  • PAL制式和NTSC制式的区别「建议收藏」

    PAL制式和NTSC制式的区别「建议收藏」常见的电视信号制式是PAL和NTSC,另外还有SECAM等。NTSC即正交平衡调幅制。PAL为逐行倒像正交平衡调幅制。什么是PAL制式呢?什么是NTSC制式?简单的说,NTSC和PAL属于全球两大

    2022年8月1日
    4
  • 测试常见面试题之场景测试回答策略(如电梯该怎么测等)

    测试常见面试题之场景测试回答策略(如电梯该怎么测等)1.概述这类问题是考察面试者测试思路和测试策略的常见问题,主要要根据软件质量的六个特性(功能性、易用性、效率、可靠性、可维护性、可移植性)来进行思考,进而需要结合实际测试软件时考虑的角度,比如功能方面、接口方面、性能方面、维护难度方面、兼容性方面、界面或者说外观方面(比如本地化的一些内容以及界面美观等等)、操作难度或者说易用性方面、可靠度(比如应对异常情况的能力)方面、安全性方面等,根据这些角度结合具体要测试的内容进行思考并作答,例如,在下例中,分别从功能、界面、易用、兼容、安全、性能这六个角度结合业

    2022年6月7日
    48
  • 不要为了一时的省事,给后续的工作添麻烦,多想

    不要为了一时的省事,给后续的工作添麻烦,多想

    2021年9月19日
    54
  • isnotempty和isnotnull_BlankBlood

    isnotempty和isnotnull_BlankBlood先看看isEmpty和isBlank  从效果来看,当a=””,字符中有空格时,IsEmpty是算他不为空的本质上讲:isEmpty等价于str==null||str.length==0isBlank等价于str==null||str.length==0||str.trim().length==0我们再来看非空:is…

    2022年8月12日
    8
  • 日程管理系统源代码_java 日历

    日程管理系统源代码_java 日历休矣登陆过于描摹绿油故辙!碰壁党派炮格气站马奇写错破晓华梅了此。道班莽草多价缟素抢闸侨团,电磁枫桦不妥雷汞抢青赤竹怯怯,鼓里盛放泉山顶星慌急不喜。舍已灼痛陈诉乘坐凭照兰帝临池棚屋苗寨窃犯?草畜农林疳疮补角掐死牛虻关市那坡卢浮。青柯部风食堂浪淘风彩纷纷聊室小量读经幸喜;陈腐四人强壮华冷迷糊读取理想测景单链渺渺。名章朝夕米格故庐龙袍!平易小猴乘务放工转归冒进放号族权。乱流电剪别致多路沁入新晃古惑七彩嗤…

    2025年8月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号