测试新手如何去学习接口自动化测试 ?从这一套测试框架开始 。

news2025/1/13 2:37:50

接口自动化测试框架系列之整体介绍

    • 1.接口自动化测试
      • 1.自动化框架概述
      • 2.搭建自动化测试框架
      • 3.测试框架中所使用到的技术

1.接口自动化测试

自动化测试虽然是测试中比较热的一门技术 ,但凡一个测试岗位,你几乎都能看到有自动化测试的要求 。但不得不说,最入门的自动化测试其实已经烂大街了 ,就像国产神车H6 ,随处可见 。当然,对于没有接触过但又想接触的同学来说 ,肯定也是从最基础的开始。

个人计划连载一套自动化测试的技术文章 ,带你从零学会如何搭建其一套自动化测试框架 ,感兴趣的同学可以点赞收藏 。这里就以使用最为广泛的接口自动化测试为例 。

1.自动化框架概述

想要了解自动化框架 ,你可以从下面两个问题入手 :

  1. 什么是自动化测试框架 ?
  2. 为什么使用它,它对我们进行接口测试有何帮助 ?

什么是自动化测试框架 ?这是由两个问题组成 ,分别是什么是自动化测试 ?和什么是框架组成 ?

所谓的自动化测试 ,其实就是由机器来代替人工来执行测试用例,来比对结果 ,一些列的操作都是自动完成 。这里很重要的一点就是执行测试用例 ,这个测试用例是谁写的呢 ? 答案肯定还是由人工来完成编写 ,再交由机器执行 。所以 ,自动化更多的是用来做回归测试 ,至于让它单独去编写测试用例或发散测试 ,目前来说它还是很难做到的 。

什么是框架 ? IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。也就是说:

1)框架本身一般不完整到可以解决特定问题;

2)框架天生就是为扩展而设计的;

3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries)或工具(tools)。

约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性

如果你不理解上面的描述 ,那么就可以简单的记住框架为解决问题而生,尤其当代码多了以后需要大量扩展的时候 ,框架的效果就会更加明显 。

所以 ,自动化测试框架就是为了解决自动执行测试用例而设计的一套具有约束性的框架 ,简单的说就是为了自动执行编写好的测试用例,这也是我们为啥要编写自动化测试框架的目的。

2.搭建自动化测试框架

同样接口自动化测试框架 ,其实就是自动调用接口 ,通过在调用时输入不同参数 ,再验证其输出结果的正确性就是接口测试框架。它其实有三步组成 :

  1. 调用被测系统的接口 ,
  2. 对接口的返回结果进行断言(测试)
  3. 输出测试结果,以便查看
    在这里插入图片描述

所以,你的框架组成应该是如下 :

①、你的在框架中至少有一个接口包,用来存放各种被测系统接口 ,以方便调用 。

②、必须有一个测试用例包,用例存放各种接口的返回并进行测试 。当然在实现测试用例的时候,你可能还会用到自定义测试数据、以及数据库的数据

③、针对输出结果来说,一般就是指测试日志和测试报告 ,所以你还的有测试日志包测试报告包

④、当然还有就是为了其它各包提供方便,必须还的有个实用工具包,即公共类库包 。

⑤、最后还的为一些常量或变量提供一个配置的地方,及配置文件,以及最后执行该框架的一个入口脚本 。

将以上黑色部分的内容组装起来就构成了一个最基本的框架,具体如下 :在这里插入图片描述
虽然是搭建起来了框架 ,但是它们之间的关系是啥呢 ?我们可以总结为以下几个关键字,分别是 :

  • 两调用 :是指调用被测试系统的接口和数据库 ,调用接口为了测试使用、调用数据库为了数据初始化以及断言使用
  • 两输出 : 输出测试报告和测试日志 ,都是为了方便查看 。
  • 两测试 : 测试用例和测试数据 ,都是测试里的必选项 。
  • 一公共: 为框架所编写的公共功能、辅助功能等 。在这里插入图片描述

3.测试框架中所使用到的技术

从上面我们也可以看到 ,几乎每一层都会使用到一个或多个模块或包 ,当然它们所解决的问题也不一样 。具体所使用的包如下 :在这里插入图片描述
其中,以上是完成一套自动化框架中所使用到的主要包 ,所以想要将这套框架搭建起来,首先的把以上包都搞熟悉了 。当然,这里面的每个包都并非是唯一的体现,都可以有可替换的包。比如:

用于做测试框架的unittest也可以使用pytest或nose替代 ;测试数据管理也可以使用json或者excel代替 ; 测试报告也可以使用HTMLTestRunner替代 ;日志模块也可以使用logging替换 ; 数据参数化也可以使用ddt去管理 。在这里我选取了一套最简单的来介绍。在这里插入图片描述

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

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

相关文章

关于深度学习方面的一些概念

1、自学习(self-taught learning)与半监督学习   自学习(self-taughtlearning)是不要求未标注数据 X u X_u Xu​和已标注数据 X l X_l Xl​来自同样的分布。另外一种带限制性的方式也被称为半监督学习,它要求 X u X_u Xu​和 X l X_l Xl​服…

[快速入门前端17] CSS 选择器(6) 选择器总结

基本选择器 选择器说明语法通配符作用范围为所有标签,用于页面整体样式* { color: red }元素作用于同种标签,不能进行差异化样式设定p { color: red }类别作用于我们自行设定的类别,是使用频率最高的选择器.myClass { color: red }ID选取当前…

15JS06——流程控制-循环

目标: 1、循环 2、for循环 3、双重for循环 4、while循环 5、do while循环 6、continue break 7、命名规范以及语法格式 一、循环 1、循环的目的 可以重复执行某些代码 2、JS中的循环 for循环 while循环 do…while循环 二、for循环 在程序中,一…

机器学习 - 决策树

决策树是一种流程图,可以帮助我们根据以前的经验进行决策 比如,一个人将尝试决定他/她是否应该参加喜剧节目 下面是要用到的数据集 AgeExperienceRankNationalityGo36109UKNO42124USANO2346NNO5244USANO43218USAYES 读取并打印数据集 import pandas…

Transformer、Bert、Gpt对比系列,超详细介绍transformer的原理,bert和gpt的区别

一、Transformer架构图 Transformer 是一种用于序列到序列学习的神经网络模型,主要用于自然语言处理任务,如机器翻译、文本摘要等。它在2017年由 Google 提出,采用了注意力机制来对输入序列进行编码和解码。 Transformer 模型由编码器和解码…

随身WIFI折腾日记(五)---远程视频监控

六、远程视频监控 为了实现基于随身WIFI的网络摄像头,我参考了如下视频课程: 韦东山老师手把手带你从0开始自己做一个视频监控项目 系统由三部分组成:推流端(随身WIFI)、流媒体服务器(云服务器)、拉流端(浏览器/VLC播放器) 方案&#xff1…

NetworkInterface类

文章目录 1. 简介2. 工厂方法3. 获取方法 1. 简介 NetworkInterface类表示一个本地IP地址。这可以是一个物理接口,如额外的以太网卡(常见于防火墙和路由器),也可以是一个虚拟接口,与机器的其它IP地址绑定到同个物理硬…

ensp实践dhcp服务

ensp实践dhcp服务 1、dhcp接口分配模式2、dhcp接口地址池分配模式3、dhcp布拉布拉布拉 1、dhcp接口分配模式 1.1、路由器AR1配置dhcp动态获取 <Huawei>system-view [Huawei]interface g0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 10.1.1.1 24 [Huawei-GigabitEthe…

PixiJS 源码解读:绘制矩形,底层都做了什么?

大家好&#xff0c;我是前端西瓜哥&#xff0c;今天带大家看一下 PixiJS 的源码实现。 PixiJS 是一个非常流行的 Canvas 库&#xff0c;start 数将近 4w。 使用 PixiJS 简单易用的 API&#xff0c;我们可以在浏览器页面的 Canvas 元素上高性能地绘制图形&#xff0c;实现流畅…

基于深度学习的交通标志检测和识别(从原理到环境配置/代码运行)

项目是一个基于Python和OpenCV的交通标志检测和识别项目,旨在使用计算机视觉和深度学习技术对交通标志进行检测和分类。本文将从介绍项目原理和框架开始,详细介绍该项目的实现过程和技术细节,最后给出项目的安装和使用方法。 前后结果对比 识别前 识别后 一、 项目原理和框…

随身WIFI折腾日记(一)---霓虹灯

引言 通过对高通410芯片的随身WIFI刷写Debain系统&#xff0c;我们已经拥有了一台带4G功能的迷你ARM64单板电脑。现在我们可以基于此此平台进行一下二次开发。 随身WIFI的优势就是价格低廉&#xff0c;性能和树莓派zero2、树莓派3b差不多。 硬件配置如下&#xff1a; msm89…

随身WIFI折腾日记(二)---文件传输和软件安装

二、文件传输 我们可以通过SCP和SFTP工具和随身WIFI(USB连接)进行数据传输&#xff0c;上图以scp工具为例。 将本地电脑文件传输至随身WIFI&#xff0c;本地电脑上输入如下指令即可&#xff1a; scp /path/to/local/file user192.168.68.1:/path/to/remote/directory/注意&…

RK3568平台开发系列讲解(驱动基础篇)10min带你获取、了解与编译Kernel源代码

🚀返回专栏总目录 文章目录 一、Kernel获取二、Kernel根目录2.1 Documentation/2.1 arch/2.2 block/2.3 boot.its2.4 drivers/2.5 firmware/2.6 fs/2.7 include/2.8 init/2.9 ipc/2.10 kernel/2.11 lib/2.12 lo

(转载)从0开始学matlab(第13天)—画图进阶

我们将讨论简单的二维图象(之前已有所介绍)的附加特性。这些特性将允许我们控制 x&#xff0c;y 轴上的值的范围&#xff0c;在一个坐标系内打印多个图象&#xff0c;或创建多个图&#xff0c;或在一个图象窗口内创建多个子图像&#xff0c;或提供更加强大的轨迹文本字符控制。…

【c语言】全部知识点总结

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

前端如何做单元测试? 看这篇就入门了

前言 对于现在的前端工程&#xff0c;一个标准完整的项目&#xff0c;通常情况单元测试是非常必要的。但很多时候我们只是完成了项目而忽略了项目测试。我认为其中一个很大的原因是很多人对单元测试认知不够&#xff0c;因此我写了这边文章&#xff0c;一方面期望通过这篇文章…

基于DDSRF正负序分离方法的不平衡电网PQ控制策略_平衡电流控制

0.前言 对于并网逆变器而言&#xff0c;电网会存在不平衡的情况。在这种情况下&#xff0c;不平衡的电网电压可以分解成为正序、负序和零序分量。并网逆变器通常期望能够实现单位功率因数并网&#xff0c;向电网注入对称的正弦电流&#xff0c;所以此时的微电网逆变器控制策略显…

DC-9靶机-简单谈一下端口敲门技术 (Port Knocking)

前言 在打靶机DC-9时&#xff0c;爆破SSH时一直显示失败&#xff0c;经过查阅才知道原来是对端口做了“隐藏”&#xff0c;需要通过 Port Knocking 来主动开启&#xff0c;由于平时接触到的机会不多&#xff0c;所以这里简单记录一下&#xff0c;加强一下印象&#xff0c;也希…

Systrace系列7 —— Vsync 解读

本文主要是是介绍 Android 中的 Vsync 机制。文章会从 Systrace 的角度来看 Android 系统如何基于 Vsync 每一帧的展示。Vsync 是 Systrace 中一个非常关键的机制,虽然我们在操作手机的时候看不见,摸不着,但是在 Systrace 中我们可以看到,Android 系统在 Vsync 信号的指引下…

Tomcat系统架构浅析

大家好&#xff0c;我是易安&#xff01; 今天咱们就来一步一步分析Tomcat的设计思路&#xff0c;看看Tomcat的设计者们是如何设计一个复杂系统&#xff0c;怎么设计顶层模块&#xff0c;以及模块之间的关系。 Tomcat总体架构 我们知道如果要设计一个系统&#xff0c;首先是要…