Jmeter接口测试实战篇:10分钟学会Jmeter的用法

news2024/11/26 17:28:12

一提到接口测试,通常大家会有这样的疑问:前端测试不是已经覆盖到各种业务逻辑了吗?为什么还要做接口测试,接口测试和前端测试是不是重复了?对于这个问题,可以从下面几个方面来解释:

什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

在这里插入图片描述

为什么要做接口测试?

现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求,需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。

接口测试实战案例分享

一、测试需求描述

1、 本次测试的接口为http服务端接口

2、 这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性;

保存信用卡账户信息接口:
在这里插入图片描述

保存信用卡账单接口:
在这里插入图片描述 

注:这个保存逻辑在接口开发设计文档中可能没有写或写的不详细,这时要与开发接口人员或产品人员多多沟通去熟悉接口逻辑

二、使用工具测试

为什么选择Jmeter进行http接口测试?

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具,Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。

它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面我就简单的介绍下使用Jmeter进行接口测试的方法。

如何使用Jmeter进行接口测试?

1、首先邮件添加一个线程组,这里我们重命名InterfaceTest
在这里插入图片描述
 

2、在线程组上添加一个Http默认请求,并配置服务器的IP地址和传输编码
在这里插入图片描述在这里插入图片描述
在线程组中添加一个HTTP请求,这里我们重命名“增加 信用卡账户信息接口 ” 

在这里插入图片描述
配置接口请求信息,这配置示例如下: 

在这里插入图片描述
在保存信用卡账单接口请求,示例如下: 

在这里插入图片描述
注:由于Jmeter请求线程组内的请求时从第一个开始执行,所以我们将需要最先执行的请求放在前面 

6、在线程组上添加监听器,察看结果树和聚合报告
在这里插入图片描述 

点击启动,运行结束后查看,结果树和聚合报告
在这里插入图片描述 

在这里插入图片描述 

8、去数据库中核对数据

9、大批量数据制造

思路:

1、可参数化的参数,保存信用卡账户信息接口( clientNo,cardNo ),保存信用卡账单接口( clientNo,cardNo, billMonth,paymentDate)

2、两个接口的依赖关系,保存信用卡账单接口( clientNo,cardNo)要和信用卡账户信息接口( clientNo,cardNo )的两个相同,也就是说这两个要用一个参数,且还不能重复。

根据上面两个接口的特点,( clientNo,cardNo) 我们选取使用计数器,每循环一次计数器加1,那么我们将线程组设置循环执行1万次; billMonth,paymentDate,这两个日期我们是使用随机函数${__Random(1,9,)},将月份参数化;

在线程组上创建计数器,配置如下:
在这里插入图片描述

 在这里插入图片描述
4、引用计数器和随机函数

信用卡账户接口传入参数

args={

“clientNo”:“${add}434343556”,

“alias”: “**信用卡2”,

“cardName”: “长城*****卡2”,

“cardNo”: “${add}25622356788251”,

}

账单接口传入参数

args={

“clientNo”:“${add}434343556”,

“accountName”: “测试”,

“billDate”: “08”,

“billMonth”: “20150${__Random(1,9,)}”,

“cardNo”: “${add}25622356788251”,

“currentPayment”: “欠款459.80”,

“paymentDate”: “2015-0${__Random(1,9,)}-25 09:00:00”,

}5、设置线程组循环测试,点击运行
在这里插入图片描述

三、性能测试

简单的性能测试

性能分析:

测试结论:

  • 当前测试环境下,TPS峰值为317.6次/秒。根据业务预期的客户日常访问量50次每分钟,按照每客户访问一次调用全部13个接口计算,则业务预期为50*13=650次/分=10.83次/秒。测试结果表明系统的业务处理能力符合业务预期。
  • 由响应时间来看,保存XXXX这个接口的响应时间明显较慢,在50线程并发的时候,90%响应时间为7.7秒,而75线程并发的时候则达到了24秒,建议进行优化。
  • 由点击率,响应时间,TPS统计图可知,整个稳定性测试期间,系统反应很稳定。
  • 详细测试结果:

1.负载测试
场景运行测试时间:10分钟

总体测试结果

在这里插入图片描述

 2. 稳定性测试

场景运行时间:1小时

在这里插入图片描述

 测试环境数据量如下:
在这里插入图片描述

总结:

根据上面的几个步骤,得到测试结果,分析系统存在的瓶颈,然后采用各种方法提出解决方案或优化建议,最后对本次性能测试进行一个完整的总结,这样,一次性能测试就完成了。

在整个过程中,费时较长一般是在测试数据准备和测试执行、监控调优阶段。

最后吐槽一句:性能测试水太深,想潜水的做好准备,别稀里糊涂扎进来,太刺激。。

最后: 我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

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

在这里插入图片描述

全套资料获取方式:点击下方小卡片自行领取即可

                                                          

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

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

相关文章

架构之冷热分离

本文依据《从程序员到架构师》阅读有感,记录书中案例并且结合作者工作经历进行分析。 当数据量过大,业务查询慢甚至导致数据库服务器CPU飙升,导致数据库宕机,影响用户体验。 场景: 1.客户两年多产生了近2000万的工单…

k聚类简单实现(灰度分割,分黑白)

加载图像: k聚类分割后图像,分成黑白两类,故意把结果黑色类染红,核对发现是正确的: 具体算法如下: float globu1 40; float globu2 180; public void k均值迭代法更新(int imgw, int imgh, byte…

云晶-新一代云上操作系统的新定义,价值,应用范围

本文,从人类社会信息化到数字化的演变过程,以及当前的企业数字化现状,并回顾信息技术的几次革命来阐述总结操作系统的价值和意义。我们基于行业发展规律,重新定义了云晶-云上操作系统的架构和建设要点。并给出了大胆设想。 您也许…

大模型部署实战(一)——Ziya-LLaMA-13B

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

【TA100 】图形 2.1 色彩空间介绍

->如何描述色彩 不要感性的认知,我们来 正经讨论,探究问题的本质- - ->色彩科学。 一、色彩发送器(光源发射角度) ->以面向对象的思想来理解: ● 出生点:光源 ● Object:射线&#…

15 【Vue-Router】

1.相关理解 1.1 vue-router 的理解 vue的一个插件库,专门用来实现SPA应用 1.2 对SPA应用的理解 1.单页Web应用(single page web application,SPA) 2.整个应用只有一个完整的页面 3.点击页面中的导航链接不会刷新页面&#xff…

STM32任务调度

目录 什么是任务调度? FreeRTOS的任务调度规则是怎样的? 抢占式调度运行过程 时间片调度运行过程 任务的状态 任务综合小实验 实验需求 cubeMX配置 什么是任务调度? 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。 Fr…

编程新手如何提高编程能力?

如果刚开始写代码时能读一读《整洁代码的艺术》那是个不错的选择。这本书会告诉您, 如何应用九大原则来提高编程能力。 良好的编程技能带来更整洁的代码, 让您更专注、更有效地利用时间,得到更高质量的结果。只要应用本书中提到的那些原则&am…

springboot集成rabbitmq

简介 RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ 主要是为了实现系统之间的双向解耦而实…

【LeetCode】HOT 100(4)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

容器(第三篇)docker-cgroup资源限制

Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面, 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、内存、…

一路狂飙,性能测试流程与性能测试主要指标整理,直接上高速...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试实战 性…

什么是真正的需求,如何才能找到?

此为内容创作模板,在发布之前请将不必要的内容删除 对需求本身的误判,比错误本身更为恐怖,直接导致必然失败的局面。 工作失误必不可免,好工作核心在于有需求,自己需要去做,有动力,别人需要你…

【Cloudgetway网关】 GetWay网关入门使用

一、概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ow0KO8iV-1686286922163)(null)] GateWay是zuul的替代品,由于Zuul2.0迟迟没有出来,SpringCloud社区推出了gateWay网关来替代zuul1.x版本。提供了以下功能: 底层使用n…

使用 LabVIEW调用LeNet快速搭建手写数字识别系统(内含源码)

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章: 【图像分类】基于OpenVINO实现PyTorch ResNet50图像分类 &#x1f4f0…

PyCaret解决二分类任务教程示例

PyCaret是一个Python中的开源、低代码机器学习库,可以自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具,可以成倍地加快实验周期,提高工作效率。 与其他开源机器学习库相比,PyCaret是一个替代的低代码库&#xff0c…

多分类问题与卷积模型的优化

文章目录 1. 创建自定义Dataset类2. 基础卷积模型3. Dropout抑制过拟合4. 批标准化5. 学习速率衰减6. 最终优化整合代码 首先导入用到的库: import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import numpy as np import matp…

文章写作的诀窍:10个技巧让你的文章升华

首先要找到自己的写作声音和确定文章的中心思想,其次要使用简单明了和描述性的语言,增加细节并结构化文章: 找到你的写作声音:找到适合自己的写作风格和声音,这有助于让读者更容易地理解和记住你的文章。确定文章的中心…

QxRibbon 知:搭建 CMake 构建环境

文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…

NodeLocal DNS介绍及部署应用

目录 一、NodeLocal DNS是什么? 二、为什么使用NodeLocal DNS? 三、工作原理 四、安装NodeLocal DNS 五、在应用中使用NodeLocal DNSCache 六、验证 一、NodeLocal DNS是什么? NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet …