探索接口测试: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.hqwc.cn/news/221768.html

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

相关文章

《洛谷深入浅出基础篇》P4913 【深基16.例3】二叉树深度

上链接: P4913 【深基16.例3】二叉树深度 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P4913#submit 上题干: 题目描述 有一个 n(n≤106) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 n&am…

Mysql使用周期性计划任务定时备份,发现备份的文件都是空的?为什么?如何解决?

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

终端移动性管理

联系前面所学的知识我们知道,移动性管理主要分为两大类:空闲状态下的移动性管理、连接状态下的移动性管理。我们今天来详细了解他们的工作原理~ 目录 移动性管理分类 1、空闲状态下的移动性管理 2、连接状态下的移动性管理 手机选择天线的原则 4G天…

AntDB数据库,通信行业20年变迁的见证者

2000年至今,通信行业发展已过了20多年。面对通信行业巨大的数据信息,数据库在行业发展中发挥了巨大的作用,AntDB数据库便是其中较为知名的一款数据库。在通信行业快速发展的阶段,打破国外产品与技术垄断是产业发展的重点与难点。面…

磁盘清理在哪里?学会这4个方法,快速清理内存!

“在使用电脑的过程中,我可能经常会保存一些文件到电脑上,这也导致电脑经常出现内存不足的情况。我想问问磁盘清理在哪里呀?我应该如何打开呢?” 随着使用电脑的时间增长,用户可能经常会遇到磁盘空间不足的情况&#x…

IIP3参数的含义

IIP3参数的含义 三阶交调频率分量 混频器的输入端的总输入信号通常由射频输入(载波被调制信号)和本振组成。以输入总信号由3个正弦信号为例,输入端的总输入信号为: u u 1 cos ⁡ ω 1 t u 2 cos ⁡ ω 2 t u 3 cos ⁡ ω 3 …

生成EtherCAT从站XML图片信息方法

0 工具准备 1.PS CS6 2.Hex Editor Neo(文件Hex编辑器) 3.DM3E-556步进电机驱动器 4.TwinCAT(验证XML图片修改效果)1 准备一张需要生成图片信息的图片 根据EtherCAT从站XML图片格式规范,我们需要用到的元素名为ImageData16x14,它要求使用16x14分辨率、深度为16bit的bmp…

Java 简单配置环境变量,切换多个jdk版本

文章目录 前言一、jdk下载二、配置环境变量三、查看jdk版本四、配置多个jdk五、切换jdk 前言 windows 配置jdk环境变量,如果项目没有规定使用的jdk版本的话,建议使用jdk8,这是最常用也是最稳定的版本 一、jdk下载 https://www.oracle.com/ja…

【Ambari】HDP单机自动化安装(基础环境和MySQL脚本一键安装)

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…

微信小程序开发学习——小程序基本架构

1.创建一个包含:首页、咨询、关于我们 3个标签的小程序,每个标签都有对应的页面、图标和标签文字。 知识点:app.json文件对小程序进行全局配置,同名.json文件对本窗口进行配置 app.json属性: pages用于指定小程序由哪…

一文读懂:IOPS、延迟和吞吐量等存储性能指标

各位ICT的小伙伴们大家好呀, 在我们谈存储性能的时候,总会听到IOPS、延迟(Latency)、带宽(Bandwidth)、吞吐量(Throughput)以及响应时间(Response Time)等技…

java学习part14static

105-面向对象(高级)-关键字static修饰属性、方法_哔哩哔哩_bilibili 1.static的特性