一文1800字使用Jmeter进行http接口性能测试!

devtools/2024/11/16 21:26:35/

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

为什么要做接口测试

越底层发现bug,它的修复成本是越低的。

前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。

检查系统的安全性、稳定性,前端传参不可信

如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

怎样做接口测试

由于项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postmanjmeter、soupUI、java+httpclient、robotframework+httplibrary等。

也可以用接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

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

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

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

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

下面我就简单的介绍下使用Jmeter进行接口测试的方法。
一、接口测试环境准备
Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html
Jmeter下载址址:http://jmeter.apache.org/download_jmeter.cgi
插件的下载安装地址:http://www.jmeter-plugins.org/
二、创建工程:
1、打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:


2、添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。


3、添加“HTTP Cookie管理器”:


4、添加“Http请求默认值”组件,当被测系统有唯一的访问域名和端口时,这个组件很好用:


5、在“HTTP 请求默认值”组件配置页面,填写被测系统的域名和端口,http请求的实现包版本以及具体协议类型,线程组里的所有“HTTP Sampler”可默认使用此设置。


6、在“线程组”里添加“HTTP 请求”的Sampler


7、在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表:


8、设置检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”


9、在设置页面上添加对相应结果的正则表达式存在性判断即可:


10、添加监听器:方便查看运行后的结果


运行结果:


总结:

上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。  
同时,JMeter这个工具的强大之处不仅仅只有这一点,还可以单独对每个取样器添加各种控制器,从而做到不同取样器不同的循环次数,及不同取样器之间数据的引用。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

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


http://www.ppmy.cn/devtools/134525.html

相关文章

EXPLAIN优化慢SQL

项目中发现数据查询很慢,导致前端超时等待的问题。经过日志打印发现,查询sql耗时10秒以上,相关sql如下: select distincttablemodel.*from pjtask_model tablemodelJOIN buss_type_permission a ON (tablemodel.fields_data_id …

【分布式】CAP理论

CAP定理的核心要点: CAP定理指出,任何一个分布式系统在面对网络分区(Partition)的情况下,最多只能同时满足以下三个特性中的两个: 一致性(Consistency): 所有节点在同一…

VS2022编译32位OpenCV

使用环境 Visual Studio 2022 OpenCV: 4.7.0 cmake: 3.30.2一、使用CMake工具生成vs2022的openCV工程解决方案 打开cmake,选择opencv的源代码目录,创建一个文件夹,作为VS工程文件的生成目录 点击configure构建项目,弹出构建设置…

MySQL --- 自定义函数获取部门层级名称

介绍 使用MySQL自定义函数,获取当前部门及上级所有部门的名称。 示例代码 向自定义函数传入子级部门id,自定义函数返回,子级部门名称及上级所有层级部门名称,以" / "分隔符分割。 (1)创建自定…

[Mysql] Mysql的多表查询----多表关系(下)

4、操作 方式二&#xff1a;创建表之后设置外键约束 外键约束也可以在修改表时添加&#xff0c;但是添加外键约束的前提是&#xff1a;从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。 语法&#xff1a; alter table <从表名> add constr…

前后端分离练习(云客项目)

这几天学习了一点前端的开发&#xff0c;后面通过这个小项目来整理开发的过程&#xff0c;参考的是动力节点的动力云客这个项目&#xff0c;大家有兴趣可以去看一下视频&#xff0c;我更多的是学习了它的前端开发&#xff0c;后端我是用自己的方式来的&#xff0c;那么开始今天…

微信小程序navigateTo:fail webview count limit exceed

theme: nico 你们好&#xff0c;我是金金金。 场景 uniapp编写微信小程序&#xff0c;使用uni.navigateTo跳转的过程中报错如下&#xff1a; 报错意思也非常明显了&#xff1a;errMsg":"navigateTo:fail webview 数量超出限制 排查 排查之前我先贴一下代码 代码非…

实现 Toy-React , 实现 JSX 渲染

一、简介 JSX 是属于 React 中的一大特性&#xff0c;因此&#xff0c;本文将实现自定义 JSX 渲染功能&#xff0c;同时也会实现部分 React 中拥有的功能&#xff0c;以便加深理解. 二、准备工作 目录结构 目录结构比较简单&#xff0c;就不详细说明了 webpack 配置 由于我…