10分钟学会Jmeter的用法

news2024/11/14 5:30:24

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

什么是接口测试?

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

为什么要做接口测试?

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

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

接口测试实战案例分享

一、测试需求描述

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地址和传输编码

  1. 在线程组中添加一个HTTP请求,这里我们重命名“增加 信用卡账户信息接口 ”

  1. 配置接口请求信息,这配置示例如下:

  1. 在保存信用卡账单接口请求,示例如下:

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

6、在线程组上添加监听器,察看结果树和聚合报告

  1. 点击启动,运行结束后查看,结果树和聚合报告

8、去数据库中核对数据

9、大批量数据制造

思路:

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

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

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

  1. 在线程组上创建计数器,配置如下:

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小时

测试环境数据量如下:

总结:

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

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

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

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

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

Ubuntu共享文件夹的设置

ubuntu的操作路径时:/mnt/hgfs/51C_share

Mongodb 4.2.25 安装教程

一、上传部署包 1.1上传mongodb包进入/usr/local目录,将mongodb-linux-x86_64-rhel70-4.2.25.tgz包传到该目录下。 cd /usr/local 二、安装 2.1解压 tar zxvf mongodb-linux-x86_64-rhel70-4.2.25.tgz 2.2修改名称 mv mongodb-linux-x86_64-rhel70-4.2.25/ mong…

《OpenCV计算机视觉》—— 模板匹配

文章目录 一、模板匹配简单介绍二、三个主要函数的介绍1.执行模板匹配函数-cv2.matchTemplate()2.查找最佳匹配函数-cv2.minMaxLoc()3.在原图上绘制匹配区域函数-cv2.rectangle() 三、代码实现 一、模板匹配简单介绍 在Python中,模板匹配是一种在图像中查找与给定模…

记录一下blender烘焙贴图黑边的一个坑

首先是拆UV这里 margin 0.1 better share better 这个也大一点好了 这样烘焙的猴头就是正常的 这里的坑点是 降噪!!烘焙如果开启降噪 如果关闭下面那一个 会好一点,都关闭了,才是最上面的效果

2024全国大学生数学建模国赛评审细则

2024全国大学生数学建模国赛评审细则 —参考2023年全国大学生数学建模竞赛C题评阅细则 评分体系阅览 —分值结果仅供参考 80分:稳国一; 65分:达国奖门槛(70分更为稳妥); 60至50分:有望获省…

整形提升-C语言

整型提升的原则:当一个小字节数,向大字节数转换时,有符号补0或1,无符号补0; 为什么会发生测试结果呢,让我们来看一下 在64位的环境中char是1个字节8位 char a1; 1000 0001 原码 整形提升 111…

网恋照妖镜源码搭建教程

文章目录 前言创建网站1.打开网站设置 配置ssl2.要打开强制HTTPS,用宝塔免费的ssl证书即可,也可以使用其他证书,必须是与域名匹配的3.上传文件至根目录进行解压4.解压后,修改文件 sc.php 里面的内容5.其余探索 前言 前俩年很火的…

ComfyUI中IC-Light节点的Detail Transfer节点参数测试

🎆背景 ic-light是一个能重绘画面光影的节点,但是在重绘的过程中,难免会将图像本身的细节进行重绘,尤其是在电商的场景中,文字和商品的细节很多时候会被重绘的乱七八糟。 针对这种情况,Comfyui-IC-Light节…

Elasticsearch的Restful风格API

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 1、Restful及JSON格式 RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用 XML 格式定义或 JSON 格式定义。R…

串行总线舵机

项目需求: 直接旋转:总体旋转角度方向 微调:步进模式/闭环电机模式 需要考虑受力之类的吗 初选方案: 只改写底层,然后引入官方驱动,通过各种函数 5、舵机如何实现在机械臂夹具中使用。 仅限夹取相同物…

开发台球助教小程序前景分析

开发台球助教小程序的前景分析可从以下维度展开探讨: 市场需求的增长 台球作为一项受欢迎的休闲运动,其爱好者群体正在扩大。随着大众对这项运动兴趣的增加,寻求系统化培训的需求也愈发明显。台球助教小程序正好填补了这一市场空白&#xf…

学习大数据DAY49 考后练习题

前几天在考帆软,考完后还有周末大礼包。 Oracle 上机练习 --第一题 create table 客户交易情况 ( 客户号 varchar2(5), 交易时间 varchar2(20),交易金额 number(5) ); --表中内容手动录入 select dense_rank()over(order by ascii(客户号)) as 序号 1,客户号, den…

MySQL插入更新死锁问题解析

文章目录 1 问题背景2 线上问题2.1 线上异常日志2.2 数据准备2.3 问题复现2.3.1 执行流程2.3.2 死锁排查 2.3.3 死锁日志分析2.3.3.1 事务A23087信息2.3.3.2 事务23087持有锁2.3.3.3 事务23087等待锁2.3.3.4 事务23088信息2.3.3.5 事务23088持有锁2.3.3.6 事务23088等待锁 3 分…

python进阶篇-day05-网络编程(TCP)与进程

day05网络编程 一. 网编三要素 ip 概述 设备(电脑, 手机, IPad, 耳机...)在网络中的唯一标识. 分类 按照 代数 划分: IPv4: 4字节, 十进制来表示, 例如: 192.168.13.157 IPv6: 8字节, 十六进制来表示, 理论上来讲, 可以让地球上的每一粒沙子都有自己的IP. Ipv4 常用类别划…

同三维S61-20SDI 20倍 HDMI SDI USB3.0 网口 3高清摄像机

同三维S61-20SDI 高清摄像机 20倍光学变焦, HDMI/SDI/USB3.0/网口,3.5音频口输入,350万像素 索尼机芯,支持POE,NDI HX2/Full NDI(可定制) 两款: S61-20SDI (不支持NDI) 单价&#…

1分钟 快速掌握 双向信号(inout信号)

​在数字电路设计中,三态门扮演着至关重要的角色。它是Verilog硬件描述语言中的一个基本元素,用于实现复杂电路的设计与模拟。 今天,我们一起来探讨三态门的基本原理、在Verilog中的实现方式。 一、什么是三态门? 三态门,简单…

fpga图像处理实战-边缘检测 (Roberts算子)

Roberts算子 Roberts算子是一种用于边缘检测的算子,主要用于图像处理中检测图像的边缘。它是最早的边缘检测算法之一,以其计算简单、速度快而著称。Roberts算子通过计算图像像素在对角方向的梯度来检测边缘,从而突出图像中灰度变化最剧烈的部分。 原理 Roberts算子通过…

力扣刷题(4)

正则表达式匹配 正则表达式匹配-力扣 思路来源:ithewei 若 *p 为空,*s 为空则匹配,*s 为非空则不匹配;当 *s为非空时,*p *s || *p ‘.’ 时第一个字符匹配;若 *(p1) ! ’ * 时,则递归判断…

python开发VTK入门

首先用pip命令安装VTK的python库; 需要一些时间,安装完成如下; 基本示例代码, import vtkcube vtk.vtkCubeSource() cube.SetXLength(100.0) cube.SetYLength(200.0) cube.SetZLength(300.0)mapper vtk.vtkPolyDataMapper() ma…

25届计算机毕业设计:3步打造北部湾助农平台,Java SpringBoot实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…