一文搞懂Python自动化测试框架!

news2024/9/23 19:26:55

一文搞懂Python自动化测试框架

如果你选用python做自动化测试,那么python测试框架的相关知识你必须要了解下。

首先我们先学习一下框架的基本知识。

什么是框架(百度百科)?

框架( Framwork )是构成一类特定软件可复用设计的一组相互协作的类。框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节。

什么是自动化测试框架?

自动化测试框架是一个工具脚本集合,用于组织和管理自动化基础功能(打开浏览器、鼠标点击、登录等)自动化测试用例、提供测试结果统计报告。

自动化测试框架能够提供可靠的测试服务,对于新需求能够快速扩展,能够让测试工程师简单高效的完成自动化测试任务。

测试框架的优点如下
  1. 代码复用 ,将基础的测试代码封装,从而降低代码的复杂性。
  2. 提高维护效率,有效组织和管理测试脚本。
  3. 快速实现项目的自动化测试,不用从0开始,一般测试框架完成后,其他类似程序也可以快速复用。
  4. 输出各种美观易懂的测试报告。
一个典型的自动化测试框架目录

典型自动化测试框架目录

  • config(配置文件目录):存放所有使用的配置文件,实现配置与代码分离。
  • common(公共函数):公共函数、方法以及通用操作的管理。
  • data(测试数据):将所有的用例参数化使用的文件放到这里,一般可采用xlsx、csv、xml等格式。实现数据与代码分离。
  • drivers(驱动目录):一般存放浏览器驱动,如如Chromedriver等。
  • logs(日志目录):日志记录和管理功能,存放运行时日志和错误日志error log等。
  • testcase(测试用例):测试用例管理功能,可以分模块编写,建相应的目录。
  • report(测试报告):管理和存放程序运行后生成的测试报告,一般可有html报告、excel报告等。

python主流测试框架

unittest

unittest框架是python内置的单元测试框架,unittest的设计灵感最初来源于Junit以及其他语言中具有共同特征的单元框架。它能编写组织用例、执行用例,还可输出测试报告等。

它具有如下优点:

  • 使用断言判断返回布尔值来判断期望值和实际值的差异。
  • 可以构建共同的初始化变量或实例。
  • 框架结构可以组织用例批量运行。

为了实现这些,unittest产生了以下几个概念:

  • test fixture: 一个test fixture 表示执行一个或多个测试前的准备工作,以及执行完成后清理工作。例如:创建临时或代理数据库或目录,或者是一个启动服务器进程。
  • test case: 一个test case是一个独立的测试单元,它检查特定输入是否响应特定的输出,unittest提供了一个基本类——TestCase,这个类用于创建一个或多个test case。
  • test suite: 一个test suite是test cases、或test suites、或者两者的一个集合,它用于把想执行tests放在一起。
  • test runner: 一个test runner 是由两部分成分:合理安排tests的执行、提供给user输出结果。runner可以用一个图形界面、文本、或者是一个特殊的值,代表tests执行的结果。

代码示例:

import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)

if __name__ == '__main__':
    unittest.main()
pytest

很好的强大的单元测试框架,实际上广泛使用在自动化单元、接口、功能等测试。

如果你的项目比较小、复杂度比较低,Pytest是最适合的自动化测试平台。非常多的Python开发者都喜欢它,他们大部分用它来进行单元测试。

Pytest最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的Python。它还兼容unittest、doctest和nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。

脚本执行示例:

# content of test_sample.py
def inc(x):
    return x + 1


def test_answer():
    assert inc(3) == 5

执行后的信息:

$ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-5.x.y, py-1.x.y, pluggy-0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR
collected 1 item

test_sample.py F                                                     [100%]

================================= FAILURES =================================
_______________________________ test_answer ________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_sample.py:6: AssertionError
========================= 1 failed in 0.12 seconds =========================
Robot Framework

Robot Framework- 通用的python测试框架,提供一个图形用户界面,方便管理和编辑测试用例,易于上手,生成的报告比较好看,支持关键字和数据等驱动。

Robot Framework是独立于操作系统和应用程序,支持跨平台,例如Windows、MacOS和Linux。这个产品是由世界上一些著名的测试人员创建的,拥有关键词驱动方案。它有丰富的工具和库,使得这个框架非常先进和健壮。

示例:

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

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

100V-50mA超高压低压差线性稳压器具有电流保护功能

产品概述 PC6001 是一款能够耐受超高电压的线性稳压器,不仅融合了耐热增强型封装的优势,还能够承受持续直流电压或最高达 100V 的瞬态输入电压。 PC6001 器件与任何高于 2.2F 的输出电容以及高于0.47F 的输入电容搭配使用时均可保持稳定(过…

mfc140u.dll丢失错误解决方法的基本思路——四种修复mfc140u.dll的方法

当遇到mfc140u.dll丢失的错误时,意味着你的系统中缺失了一个重要的动态链接库文件,该文件是微软 Visual C Redistributable for Visual Studio 2015 的一部分,对于运行那些用 Visual C 开发的程序是必需的。今天就教你mfc140u.dll丢失错误解决…

派单系统功能案例分析

派单系统是一种专门用于协调和分配任务的软件系统,它通过自动化和智能化的方式,确保任务能够高效地完成。以下是对派单系统功能的案例分析,主要从任务分配、实时监控、数据统计与分析以及行业应用等方面进行阐述。 一、任务分配 派单系统的核…

​线上教育_VR虚拟实验室​解决方案优缺点

线上教育的兴起也预示着对VR虚拟实验室的需求,这些虚拟实验室可以帮助学生学习他们研究的经验和进行实践,帮助学生更好地理解知识。但是,基于VR虚拟现实技术的虚拟实验室本质上是灵活的,它能让孩子们更轻松、更快速地探索各种新事…

【博主推荐】HTML5新闻,博客,官网网站源码文章瀑布流+详情页面

文章目录 1.设计来源1.1 主界面1.2 文章详情界面1.3 联系我们界面1.4 关于我们界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 【博主推荐】:前些天发现了一个巨牛的人工智能学习网站&…

mfc运行时报错内存不足闪退等问题

问题 mfc的打包程序源代码所在主机可以运行,在其他主机不能脱机运行,会报内存不足等莫名其妙的问题。 解决方法 排除其他代码上的问题后,看看是不是编译链的工具组件一致,我看新建项目的教程时没注意,红色框里的俩一…

Grok-2惊艳亮相,文生图功能竟然“无所不能“!

Grok-2 生成的图片 在人工智能的战场上,一场新的风暴正在酝酿。埃隆马斯克,这位科技界的"钢铁侠",再次以其独特的方式搅动了 AI 的风云。就在谷歌和OpenAI互相角力之际,马斯克的 xAI 公司悄然推出了新一代AI模型 Grok-2…

深度学习中之前馈神经网络

目录 基本结构和工作原理 神经元和权重 激活函数 深度前馈网络 应用场景 优缺点 深度前馈神经网络与卷积神经网络(CNN)和循环神经网络(RNN)的具体区别和联系是什么? 具体区别 联系 如何有效解决前馈神经网络…

微软开源库 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C软件异常排查从入门到精通…

Spring SSM框架--MVC

一、介绍 Spring 框架是一个资源整合的框架,可以整合一切可以整合的资源(Spring 自身和第三方),是一个庞大的生态,包含很多子框架:Spring Framework、Spring Boot、Spring Data、Spring Cloud…… 其中Spr…

全球海事航行通告解析辅助决策系统

“全球海事航行通告解析辅助决策系统”是一个针对海事行业设计的智能系统,旨在帮助海上导航和航运操作人员解析和应对全球发布的海事航行通告。 要做这样的系统我们必须要了解海事签派员的日常工作。 海事签派员,也称为船舶操作员或船运调度员&#xff0…

国产车规级TSN芯片获十万片订单,将步入规模化应用

近日,从北京科技企业东土科技获悉,其研发并孵化的我国首颗列入工信部国产汽车芯片名录的车规级时间敏感网络(TSN)交换网络芯片,于近期获得国家新能源汽车技术创新中心10万片芯片订单,将规模化应用于车载网关…

bluecmsphp代码审计

bluecms代码审计 (一) 运行环境需求: 可用的 httpd 服务器(如 Apache、Zeus、IIS 等) PHP 4.3.0 及以上 MySQL 4.1 及以上配置文件审计 看到uploads/install/include/common.inc.php 当然我们可能自己根本不知道那个是重要的文件&#x…

从送外卖到自学编程,再到AI绘画,我的副业之路助我一年还清房贷车贷

一、引言 在这个快速变化的时代,每个人都有可能通过自己的努力改变命运。我,一个普通的外卖员,通过自学编程,最终掌握了AI绘画技能,实现了下班后赚取额外收入,一年内还清了房贷和车贷。以下是我的故事&…

力扣题/二叉树/路径总和 III

路径总和 III 力扣原题 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能…

Nios II的BSP Editor

1.菜单打开BSP Editor (1) (2) (3) 项目文件夹 -> software文件夹 -> ... _bsp文件夹 -> settings.bsp文件 2.文件打开BSP Editor 选中项目文件,右键,Nios II -> …

【区块链+食品安全】海南省市场监管局:进口冷链食品可信追溯平台 | FISCO BCOS应用案例

2020 年 10 月,海南省市场监管局联合腾讯基于 FISCO BCOS 区块链底层技术建设“海南省进口冷链食品可信追 溯平台”( 简称“海南冷链”),在全国范围内首批实现了与市场监管总局数据对接。平台以冷 ( 冻 ) 库为抓手,从 进口冷链食品进入海南省…

Vatee万腾平台:数据驱动的决策新引擎

在数字化时代,数据已成为企业决策的核心驱动力。Vatee万腾平台,凭借其卓越的数据处理与分析能力,正逐步成为企业数据驱动的决策新引擎,引领着企业向更加精准、高效的决策模式迈进。 Vatee万腾平台深刻理解到,在数据爆炸…

爬虫:写了一个解析拖动滑块进行登录校验的伪代码

完成滑动拼图验证码是一个更复杂的任务,因为它通常涉及准确地将滑块拖动到正确的位置以匹配拼图缺口的位置。要实现这一点,通常需要进行以下步骤: 识别拼图缺口的位置。计算滑块的拖动距离。模拟人类行为完成拖动。 由于 Playwright 本身没…

Doxygen程序注释文档制作教程

Doxygen教程 Doxygen软件下载安装Doxygen软件的使用Doxygen Comments扩展参考文献Doxygen软件下载安装 首先,在官网下载windows环境下的doxygen,网址: Doxygen: Downloads 找到对应安装包点击下载 下载完成后傻瓜式一步一步安装就可以了。安装完成后在开始栏点击Doxywizar…