探索接口测试:SOAP、RestFul规则、JMeter及市面上的接口测试工具

引言

  在当今软件开发领域,接口测试扮演着至关重要的角色。随着系统变得日益复杂和互联,对于内部和外部接口的测试变得愈发关键。接口测试不仅仅是验证接口的正确性,更是确保系统的稳定性、安全性和性能优越性的关键一环。

  本篇博客将带您深入了解接口测试的分类、不同架构的设计、关键测试重点以及目前市面上常用的接口测试工具。我们将探讨从 SOAP、RPC、RestFul 到 HTTP 协议的架构演变,并聚焦于 JMeter 这个强大的接口测试工具,详细介绍其简介、安装、常用组件以及执行接口测试的步骤。


一、接口测试分类

内部接口:
测试被测系统各个子模块之间的接口,或被测系统提供给内部使用的接口

外部接口:

  1. 被测系统调用外部的接口
  2. 系统对外提供的接口

接口测试重点:检查接口参数传递的正确性,接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错处理,以及权限控制、分页,调用次数限制.

二、目前接口架构设计

  1. 基于SOAP架构,基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾。

  2. 预计RPC架构,基于dubbo协议,thrift协议。SpringCloud微服务。

  3. 基于RestFul架构,基于json规范,预计http协议。

RestFul规则:

接口地址:http://127.0.0.1/user ,get(查询用户) post(新增用户) put(修改用户) delete(删除用户)

  • Json数据格式:只有两种数据类型,
  • 键值对:{key : value}
  • 数组:[arry1, arry2]

http协议详解:

请求:请求行,请求头,请求正文
  1. 请求行:
    POST http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun HTTP/1.1

  2. 请求头:

  • HOST 47.107.116.139(请求主机)
  • Connectoin: keep-alive(保存活跃)
  • Content-Length: 112(内容长度)
  • Accept: application/json, text/javascript, */8, q=0.01(数据格式)
  • X-Request-With: XMLHttpRequest(异步请求)
  • User-Agent:Mozilla/5.0(Windows NT)(客户端类型)
  • Content-Type:(内容类型)
  • Cookie:csrf_token=xxxxxx(Cookie信息,客户端发送给服务器的Cookie)
  1. 请求正文

username=msxy%password=msxy&backurl=httpxxxxx

响应:响应行,响应头,响应正文
  1. 响应行:

HTTP/1.1 200 OK

  1. 响应头
  • Server: nginx
  • Data: Tue, 24 Aug 2021 12:23:12 GMT
  • Conten-Type: text/html; charset=UTF-8
  • Transfer-Encoding: chunked
  • X-Powered-By: PHP/5.6.36
  • Set-Cookie: (服务器发送给客户端的Cookie信息)
  1. 响应正文
  • xxx

三、市面上的接口测试工具

Jmeter+Ant+Git+Jenkins

Postman+Newman+Git+Jenkins

soapui, apipost, fildder, charles

四、Jmeter简介,安装,环境变了的配置

基于Java语言压力测试工具,可以做接口测试,也可以做性能测试。

安装:JDK1.8以上,配置环境变量

五、Jmeter目录介绍

jmeter目录

backups:脚本备份目录,格式JML

bin:存放Jmeter的启动脚本,配置文件,模块文件

Jmeter.bat 启动Jmeter

jmeter.prperites 核心配置文件。

docs:离线帮助文档。

extras:存放于第三方的集成构建文件,继承Ant,Jenkins

lib目录:存放jar包

licensce:许可证文件

六、Jmeter常用组件

1.测试计划:起点,所有组件的容器。

2.线程组:代表一定数量的用户

3.取样器:向服务器发送请求的最小单元

4.逻辑控制器:结合取样器实现一些复杂的逻辑。

5.前置处理器:在请求之前的工作

6.后置处理器:在请求之后的工作

7.断言:用于判断请求释放成功

8.定时器:负责在请求之间的延迟间隔,固定,高斯,随机

9.配置元件:配置信息

10.监听器:负责收集结果

顺序:非常重要

测试计划》线程组》配置元件》前置处理器》定时器》取样器(请求)》后置处理器》断言》监听器。

作用域:非常重要

必须组件:测试计划,线程组,取样器

辅助组件:除必须组件外

辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件

七、Jmeter执行接口测试

  1. 拿到API文档(实在不行就Fiddler抓包),熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码。

  2. 编写接口测试用例。

测试思路:
正例:

输入正常入参,查看接口正常返回。

反例:

鉴权:空,错误,鉴权过期,鉴权次数限制…
参数:空,类型错误,长度错误,错误码的覆盖。
其他,黑名单,分页

  1. 使用接口测试工具执行

  2. Jmeter+Ant+Git+Jemkins实现持续集成输出接口测试报告,通过电子邮件发送。


接口测试作为软件开发和维护的重要组成部分,为确保系统的稳定性和可靠性提供了重要保障。通过了解不同类型的接口、架构设计以及掌握接口测试工具的使用,我们能够更加高效地测试接口的正确性和性能。接口测试不仅仅是发现问题,更是为系统的优化和提升提供了有力支持。让我们携手探索接口测试的世界,不断提升软件质量,为用户带来更好的体验。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信——system V共享内存、共享内存的概念、共享内存函数、system V消息队列、信号量

文章目录 进程间通信1.system V共享内存1.1共享内存原理1.2共享内存数据结构1.3共享内存函数 2.system V消息队列2.1消息队列原理 3.system V信号量3.1信号量原理3.2进程互斥 4.共享内存的使用示例 进程间通信 1.system V共享内存 1.1共享内存原理 共享内存区是最快的IPC形式…

【多传感器融合】BEVFusion: 激光雷达和视觉融合框架 NeurIPS 2022

前言 BEVFusion其实有两篇, 【1】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework. NeurIPS 2022 | 北大&阿里提出 【2】BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 2022 | MIT提出 本文先分…

Flutter桌面应用开发之毛玻璃效果

目录 效果实现方案依赖库支持平台实现步骤注意事项话题扩展 毛玻璃效果:毛玻璃效果是一种模糊化的视觉效果,常用于图像处理和界面设计中。它可以通过在图像或界面元素上应用高斯模糊来实现。使用毛玻璃效果可以增加图像或界面元素的柔和感,同…

Word 小知识之 docx 和 doc 的区别

下面我们从4个方面为大家总结了有关于docx和doc的区别,一起来看一看: 1. 文件格式 doc和docx的区别中较大的区别就是文件格式不同,一个是二进制一个为XML格式。doc:是早期的Word文档格式,采用二进制文件格式。这种…

Android Studio Giraffe版本遇到的问题

背景 上周固态硬盘挂了,恢复数据之后,重新换了新的固态安装了Win11系统,之前安装的是Android Studio 4.x的版本,这次也是趁着新的系统安装新的Android开发工具。 版本如下: 但是打开以前的Android旧项目时&#xff…

Windows本地搭建Emby媒体库服务器并实现远程访问「内网穿透」

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…

【长文干货】Python可视化教程

文章目录 数据介绍Matplotlib散点图折线图柱形图直方图 Seaborn散点图折线图柱形图直方图 Bokeh散点图折线条形图交互式 Plotly基本组合优化:定制化下拉菜单 总结 数据介绍 在这个小费数据集中,我们记录了20世纪90年代初期餐厅顾客在两个半月内给出的小…

C#学习-9课时

P11 IF判断(上) P11 IF判断(中 ) bool→true or false; 为:变量赋值 为:等于(判断) !为:≠ 优先级:大于 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…

上手 Promethus - 开源监控、报警工具包

名词解释 Promethus 是什么 开源的【系统监控和警报】工具包 专注于: 1)可靠的实时监控 2)收集时间序列数据 3)提供强大的查询语言(PromQL),用于分析这些数据 功能: 1&#xff0…

第三方实验室LIMS管理系统源码,asp.net LIMS源码

LIMS实验室信息管理系统源码 LIMS系统的功能根据实验室的规模和任务而有所不同,其系统主要功能包括:系统维护、基础数据编码管理,样品管理、数据管理、报告管理、报表打印、实验材料管理、设备管理等。它可以取代传统的手工管理模式而给检测实验室带来巨…

[跑代码]BK-SDM: A Lightweight, Fast, and Cheap Version of Stable Diffusion

Installation(下载代码-装环境) conda create -n bk-sdm python3.8 conda activate bk-sdm git clone https://github.com/Nota-NetsPresso/BK-SDM.git cd BK-SDM pip install -r requirements.txt Note on the torch versions weve used torch 1.13.1 for MS-COCO evaluation…

Xilinx Zynq-7000系列FPGA实现视频拼接显示,提供两套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA图像处理方案FPGA视频拼接叠加融合方案推荐 3、设计思路详解Video Mixer介绍 4、工程代码1:2路视频拼接 HDMI 输出PL 端 FPGA 逻辑设计PS 端 SDK 软件设计 5、工程代码2:4路视频拼接 HDMI 输出PL 端 FPGA 逻辑设…

maven 基础

maven常用命令 clean &#xff1a;清理 compile&#xff1a;编译 test&#xff1a;测试 package&#xff1a;打包 install&#xff1a;安装 maven坐标书写规范 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</ar…

Javaweb之Vue组件库Element案例的详细解析

4.4.3.3 顶部标题 对于顶部&#xff0c;我们需要实现的效果如下图所示&#xff1a; 所以我们需要修改顶部的文本内容&#xff0c;并且提供背景色的css样式&#xff0c;具体代码如下&#xff1a; <el-header style"font-size:40px;background-color: rgb(238, 241, 24…

【腾讯云 HAI域探秘】借助高性能应用HAI——我也能使用【stable diffusion】制作高级视频封面了

目录 高性能应用服务HAI_GPU云服务器的申请与服务创建 官网地址&#xff1a;高性能应用服务HAI_GPU云服务器_腾讯云 通过高性能应用服务HAI——创建【stable diffusion】 WebUI效果&#xff1a; 服务器后台效果&#xff1a; stable-diffusion服务测试 启动接口服务 配置…

模拟算法【3】——1419.数青蛙

文章目录 &#x1f365;1. 题目&#x1f96e;2. 算法原理&#x1f361;3. 代码实现 &#x1f365;1. 题目 题目链接&#xff1a;1419. 数青蛙 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 &…

17. Python 数据库操作之MySQL和SQLite实例

目录 1. 简介2. 使用PyMySQL2. 使用SQLite 1. 简介 数据库种类繁多&#xff0c;每种数据库的对外接口实现各不相同&#xff0c;为了方便对数据库进行统一的操作&#xff0c;大部分编程语言都提供了标准化的数据库接口&#xff0c;用户不需要了解每种数据的接口实现细节&#x…

Docker篇之docker部署harbor仓库

一、首先需要安装docker step1&#xff1a;安装docker #1、安装yun源 yum install -y yum-utils #2、配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 如果上面源不稳定的话&#xff0c;更换为下列的aliyun源 yu…

SpringBoot 整合 Neo4j 实战(头歌)

文章目录 第1关&#xff1a;认识 Spring DATA Neo4J任务描述相关知识Spring DATA Neo4J - 简介Spring JDBC / Spring ORM 模块的缺点&#xff1a;Spring 数据模块的优点&#xff1a;Spring 数据模块功能&#xff1a;Spring DATA Neo4j 模块的附加功能&#xff1a; Spring DATA …

Modbus RTU协议及modbus库函数使用

一、与Modbus TCP的区别 在一般工业场景使用modbus RTU的场景还是更多一些&#xff0c;modbus RTU基于串行协议进行收发数据&#xff0c;包括RS232/485等工业总线协议。 与modbus TCP不同的是RTU没有报文头MBAP字段&#xff0c;但是在尾部增加了两个CRC检验字节&#xff08;CRC…