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

news2024/11/26 0:56:10

引言

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

  本篇博客将带您深入了解接口测试的分类、不同架构的设计、关键测试重点以及目前市面上常用的接口测试工具。我们将探讨从 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.coloradmin.cn/o/1257809.html

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

相关文章

嘴尚绝卤味添加草本物质的奥秘,让你品尝健康美味

每当提起卤味,相信很多人的口水都会开始分泌。确实,卤味作为一种深受人们喜爱的美食,其独特的口感和味道总是能够满足人们的味蕾。而在众多卤味品牌中,嘴尚绝卤味因其添加了草本物质而备受关注。那么,嘴尚绝卤味为什么…

科研工具推荐之ReadPaper

科研工具推荐之ReadPaper 之前也用很多朋友在问英文文献如何阅读,一直推荐的是Adobe PDF有道翻译。 但是呢,最近了解到了另外一个神器 ReadPaper 自己稍微体验了一下 感觉非常nice,特此推荐给大家。 想体验的朋友可以通过下面的方式注册呢…

【发表案例】新增2区SCI/SSCI/EI,最快19天录用!国人友好!

综合类EI ☑️检索数据库:EI &Scopus &Google Scholar ☑️版面类别:正刊 ☑️数据库收录年份:2009年 ☑️国人占比:47%,对国人友好 ☑️年发文量:20篇左右 ☑️接收领域:生物&am…

智慧城市政务一网统管解决方案:PPT全文34页,附下载

关键词:智慧政务解决方案,智慧城市解决方案,智慧政务一网统管解决方案,一网统管治理理念,一网统管治理体系,一网统管治理手段,智慧政务综合服务平台建设 一、智慧城市政务一网统管建设背景 一…

Redis 命令处理过程

我们知道 Redis 是一个基于内存的高性能键值数据库, 它支持多种数据结构, 提供了丰富的命令, 可以用来实现缓存、消息队列、分布式锁等功能。 而在享受 Redis 带来的种种好处时, 是否曾好奇过 Redis 是如何处理我们发往它的命令的呢? 本文将以伪代码的形式简单分析…

Linux操作系统使用及C高级编程-D15D16内存管理和动态内存使用

内存分区 使用size查看内存使用 动态内存使用 不能返回局部变量的引用,局部变量存放在栈区,空间随着函数结束自动释放 动态申请内存 内存泄漏和内存溢出

【沐风老师】3DMAX快速地板屋顶墙面铺设插件使用方法详解

3DMAX快速地板屋顶墙面铺设插件使用教程 3DMAX快速地板屋顶墙面铺设插件,一键生成各种地板、墙面纹理模型,是一款非常实用的室内设计和建筑建模插件。 【适用版本】 3dMax7或更新版本 【安装方法】 该插件无需安装,直接在建模过程中使用&a…

互联网上门预约按摩软件新模式

随着移动互联网的发展,人们越来越注重生活质量。其中,按摩作为一种保健方式受到了广大消费者的青睐。为了满足用户的这一需求,我们计划开发一款按摩小程序软件,那么,这款软件需要具备哪些功能呢?本文将从用…

【设计模式_观察者模式/发布订阅】观察者模式_股票案列

编程中常见的技术难题有哪些? 编程中常见的技术难题有如同一道道难题,比如bug像隐藏的恶魔,让程序员们捉摸不透;性能优化就像是调整汽车引擎,需要精准的调校;还有就是跨平台兼容性,就像是翻译不…

基于C#实现十字链表

上一篇我们看了矩阵的顺序存储,这篇我们再看看一种链式存储方法“十字链表”,当然目的都是一样,压缩空间。 一、概念 既然要用链表节点来模拟矩阵中的非零元素,肯定需要如下 5 个元素(row,col,val,down,right),其中&…

Java 8新特性Optional的使用以及判空案例

Java 8新特性:Optional的使用及判空案例 在Java 8中,引入了一个重要的类Optional,它是为了解决空指针异常(NullPointerException)而设计的。Optional可以作为一个容器,可以包含一个非空的值或者为空。 Opti…

1评论收藏分享抖店不要再无脑铺货了!这个方法学会,7天流量就起飞~

这2023年都马上过完了,你还在上一堆链接到抖店吗?要知道这样无脑铺货是拿不到大流量的。 哪今天我给大家分享一个,比较适合新手操作,也能快速起流量出单的方法。 。首先你的店铺拿不到流量,一定要先查清楚你为什么拿…

商城免费搭建之java商城 鸿鹄云商 B2B2C产品概述

【B2B2C平台】,以传统电商行业为基石,鸿鹄云商支持“商家入驻平台自营”多运营模式,积极打造“全新市场,全新 模式”企业级B2B2C电商平台,致力干助力各行/互联网创业腾飞并获取更多的收益。从消费者出发,助…

第二证券:投资股票有哪些坑?如何避免?

出资股票有哪些坑? 1、情绪化生意,追涨杀跌。许多出资者看到一只股票涨得很快,就想赶忙买入,怕失掉时机,或当自己持有的股票跌了就受不了只想卖出。这样的行为其实是十分不理性的,由于股票的价格是由商场供…

实战案例!用1行Python代码识别身份证信息,准确率超过99%,YYDS

录入身份证信息是一件繁琐的工作,如果可以自动识别并且录入系统,那可真是太好了。 今天我们就来学习一下,如何自动识别身份证信息并且录入系统~ 识别身份证信息 识别身份证信息的代码最简单,只需要1行代码,如下所示…

详解Python对Excel处理

Excel是一种常见的电子表格文件格式,广泛用于数据记录和处理。Python提供了多个第三方库,可以方便地对Excel文件进行读写、数据操作和处理。本文将介绍如何使用Python对Excel文件进行处理,并提供相应的代码示例和详细说明。 一、安装第三方库…

HT97220与HT97230耳机放大器芯片对比

HT97230有两个不同开启时间(tON)版本,版本A、C和E的导通时间tON为5.5ms,用于耳机驱动;B和D则具有130ms的tON,用于机顶盒设计(目前仅提供A版本,其他版本需预定)。内部电荷泵对输入电源反相&#…

Linux操作系统 1.初识Linux

一、Linux学习大致内容 二、操作系统概述 操作系统的作用: 常见操作系统: 1、pc(电脑端):windows、Linux、MacOS 2、移动端:Android、ios、鸿蒙系统 总结 1.计算机由哪两个部分组成?、 硬件…

RabbitMQ工作模式2 整合springboot 和MQ高级特性

RabbitMQ工作模式 1.路由模式 创建交换机 , 连接队列 (生产者) public class MyTestExDirect {Testpublic void bbb() throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();//连接mqconnectionFactory.setUsername("…

Vue3中调用外部iframe链接方法

业务场景,点击某个按钮需要跳转到外部iframe的地址,但是需要在本项目内显示。以前项目中写过调用外部链接的功能,是有菜单的,但是这次是按钮,所以不能直接把地址配到菜单里。 实现方法:在本地路由文件里写个…