『德不孤』Pytest框架 — 1、Pytest测试框架介绍

文章目录

      • 1、什么是单元测试框架
      • 2、单元测试框架主要做什么
      • 3、单元测试框架和自动化测试框架有什么关系
      • 4、Pytest测试框架说明
      • 5、Pytest框架和Unittest框架区别
        • (1)Unittest
        • (2)Pytest
        • (3)区别

1、什么是单元测试框架

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

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

  • 测试发现:从多个文件里面去找到我们需要的测试用例。
  • 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果。
  • 测试判断:通过断言判断预期结果和实际结果的差异。
  • 测试报告:统计测试进度,耗时,通过率等数据,并生成测试报告。

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

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

  1. 提高测试效率,降低自动化用例的维护成本。
  2. 减少人工干预,提高测试的准确性,增加代码的重用性。
  3. 核心思想是让不懂代码的人,也能够通过这个框架去实现自动化测试。

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

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

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

4、Pytest测试框架说明

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

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

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

  • Pytest支持参数化配置。

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

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

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

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

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

  • 在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)用例编写规则:

  • 测试框架:

    1、提供,,,相关类,让测试更加明确、方便、可控。

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

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

    4、测试方法要以开头。

    5、测试类必须要用方法执行。

  • 测试框架:

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

    2、测试文件必须开头。

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

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

    (规则可自定义。)

  • 总结:

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

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

2)用例的前置和后置:

  • 测试框架:

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

  • 测试框架:

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

    • 模块级:开始于模块始末,全局。
    • 类级:只在类中前后运行一次(类中)。
    • 函数级:只对函数用例生效(不在类中)。
    • 方法级:开始于方法始末(在类中)。
    • 类里面的:运行在调用方法的前后。

    2、函数前加装饰器,在测试用例中使用Fixture函数。

    可作用于中。

    相对于来说的优势,如下:

    • 命名方式灵活,不局限于。
    • 配置里可以实现数共享,无需就可自动找到配置数据,可供多个文件调用。
    • ,可以实现多个文件跨文件共享前置。
    • ,可以实现多个文件跨文件使用一个来完成用例。
    • 使用返回,相当于的作用。

3)参数化:

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

  • 测试框架:直接使用装饰器。

4)断言:

  • 测试框架:可使用提供的,、,断言方法。
  • 测试框架:直接使用Python语言内置的表达式。

5)用例分类执行:

  • 测试框架:默认执行全部用例,可以通过加载执行部分模块的用例。
  • 测试框架:可以通过来标记测试用例,执行命令前加上参数”-m”,即可运行标记的用例。

6)失败重运行:

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

7)报告:

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

  • 测试框架:使用、插件生成测试报告。

参考:https://www.cnblogs.com/cuitang/p/11635103.html

来源:Liuyuelinjiayou

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月3日
下一篇 2021年2月3日

相关推荐