Jmeter 对http接口压测

Jmeter相对于Loadrunner来说,更轻,易于安装,如果对过程数据收集不多、测试场景不复杂的情况下,可以优先考虑。

Jemeter进行HTTP接口压力测试的具体使用步骤:

1、首先添加一线程组(即用户组:一个线程模拟一个用户行为,如果要模拟多个用户,则通过设置多线程来实现)

图片

2、因为是对HTTP接口进行压力测试,所以需要在线程组下添加一HTTP请求(通过鼠标右键->添加->Sampler->HTTP请求 完成)

图片

3、紧接着就是对HTTP请求进行设置了,主要设置服务器名称或IP,端口号,连接、响应时间,所采用的协议,请求类型,内容编码,路径,最后设置请求内容。

注意:路径为URL除去如

http://XXX.XX.X后的内容,如URL为http://www.xxxx.com/index.php,则服务器名称或IP应该填写www.xxxx.com,端口默认80,路径应该填写“/index.php”

图片

4、因为这里的请求内容使用的是json字符串,所以需要在头部进行声明,否则请求就要报错。所以需要给HTTP请求添加一信息头(通过鼠标右键->添加->配置元件->HTTP信息头管理器 完成)

图片

5、配置HTTP头信息,添加对应名称和值,这里添加“Content-Type”,值为“application/json;charset=utf-8”;如果头还需要添加其它信息,如id、token等,也应如此进行配置

图片

6、到这一步看起来就可以了,但是我们执行时并不能看到执行结果。所以还应该为该请求添加一结果监听器“查看结果树”(通过鼠标右键->添加->监听器->查看结果树 完成)

图片

按照上面步骤,可以依次添加“聚合报告”(总体线程执行结果统计),图形结果(总体线程执行结果统计图),“用表格察看结果”(每个线程执行的表格统计情况)等。

如果在进行非接口测试,如页面测试过程中发现错误,可能是少了COOKIE信息,所以可以为线程组添加一个Cookie头,可以通过鼠标右键->配置元件->HTTP Cookie管理器 完成

7、如果HTTP请求没有问题,那么我们要进行性能测试,那就需要设置一个断言(即Loadrunner中的检查点),即只要检查到指定的返回值(如返回结果包含字符“success”)则说明执行成功。添加断言通过右键请求->添加->断言->响应断言 完成。

图片

设置响应断言:

到了这里,我们的脚本工作完成的差不多了,但是我们做性能测试,为了使测试结果更加准确,同时避免单点限制等原因,还应该对请求的值进行参数化。

8、参数化,这里主要将通过CSV文件进行的参数化。

1)首先我们新建一个CSV文件,然后录入我们要参数化的信息。

我们也可以新建一个记事本,然后输入参数化的内容信息,多个参数值间以英文逗号隔开,回车换行如:

Username1,password1

Username2,password2

点击保存,然后把记事本的文件名改为test.csv,注意这里的csv是文件扩展名。

2)在HTTP请求新建一个CSV Data Set Config元件(通过鼠标右键->添加->配置元件->CSV Data Set Config 完成)

3)配置CSV Data Set Config元件,这里主要需要指明参数化取值文件路径(即前面我们新建的CSV文件),参数名(如上面CSV文件中主要有两个参数值,我们可以分别用username和passwd作为参数名,参数名类似程序中定义的变量名)

4)对要参数化的值进行参数化。即用 ${参数名} 来替换要参数化的值。

图片

9、通过上面步骤,就完成了参数化脚本的设置。现在要执行,那么首先来配置线程组,主要包括线程数,启用时间,循环次数。我们可以尝试设置不同的线程数,重复次数,来进行接口的压力测试了。

图片

10、最后我们就可以点击上面的绿色执行按钮来执行测试了。当然在执行过程中,为了后面更好的分析测试,可以借助其它工具(linux如nmon)对服务器的资源使用情况、网络情况,以及程序运行情况进行结果收集,最后对压力瓶颈进行准确的定位。

图片

学习资料/接口/项目等免费领取:

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

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

相关文章

HarmonyOS学习——HarmonyOS习题

harmonyOS开发学习课程 HarmonyOS第一课 1.【习题】运行Hello World工程 判断题 1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(√) 2. main_pages.json存放页面page路径配置信息。(√) 单选题 1. 在stage模…

慢SQL调优-索引详解

Mysql 慢SQL调优-索引详解 前言一、慢查询日志设置二、explain查看执行计划三、索引失效四、索引操作五、profile 分析执行耗时 前言 最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linu…

腾讯云4核16G12M服务器优惠价格32元1个月、96元3个月、156元6个月、312元一年

腾讯云4核16G12M服务器优惠价格32元1个月、96元3个月、156元6个月、312元一年 一张表看懂腾讯云服务器租用优惠价格表,一目了然,腾讯云服务器分为轻量应用服务器和云服务器CVM,CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16G、8核32G、1…

MySQL 篇-深入了解多表设计、多表查询

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 多表设计概述 1.1 多表设计 - 一对多 1.2 多表设计 - 一对一 1.3 多表设计 - 多对多 2.0 多表查询概述 2.1 多表查询 - 内连接 2.2 多表查询 - 外连接 2.3 多表查…

Go 简单设计和实现可扩展、高性能的泛型本地缓存

相信大家对于缓存这个词都不陌生,但凡追求高性能的业务场景,一般都会使用缓存,它可以提高数据的检索速度,减少数据库的压力。缓存大体分为两类:本地缓存和分布式缓存(如 Redis)。本地缓存适用于…

【小智好书分享• 第二期】《低代码平台开发实践:基于React》

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&am…

磁性机器人在医学领域取得进展

磁性医疗机器人利用磁场梯度来控制设备的运动,并最终以高精度进入体内的目标组织。这些磁性机器人可以采用导管和微型或纳米机器人的形式,并由磁导航系统操纵。磁性机器人最近取得了一些进展,为临床诊断和治疗用途开辟了新的可能性。在本期的…

自然语言处理实战项目27-深入探究ALBERT模型:结构与原理及其在中文命名实体识别中的应用

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目27-深入探究ALBERT模型:结构与原理及其在中文命名实体识别中的应用。本文我将深入探究ALBERT模型的结构与原理,并详细介绍了其在中文命名实体识别中的应用。ALBERT模型作为一种轻量级预训练语言模型,采用了Trans…

一个测试OOM killer的程序未触发OOM所带来的问题

概述 我们知道,由于MMU实现了虚拟地址到物理地址的转换,所以我们在申请虚拟地址时往往可以申请一大块内存,这实际上是对资源的有效利用,毕竟只有内存真正被投入使用时(如memset)才会实际分配物理内存&…

【二叉树的最近公共祖先】【后序遍历】Leetcode 236. 二叉树的最近公共祖先

【二叉树的最近公共祖先】【后序遍历】Leetcode 236. 二叉树的最近公共祖先 解法1 涉及到结果向上返回就要用后序遍历解法2 自己写的方法 后序遍历 ---------------🎈🎈236. 二叉树的最近公共祖先 题目链接🎈🎈-----------------…

CMake-深入理解find_package()的用法

前言: CMake给我们提供了find_package()命令用来查找依赖包,理想情况下,一句find_package()命令就能把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。但实际使用过程可能会出现这样那样…

SpringBoot集成flink

Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。 最大亮点是流处理,最适合的应用场景是低时延的数据处理。 场景:高并发pipeline处理数据,时延毫秒级,且兼具…

鸿蒙NEXT开发实战:【视频文件裁剪】

使用OpenHarmony系统提供的ffmpeg三方库的能力在系统中实现了音视频文件裁剪的功能,并通过NAPI提供给上层应用调用。 基础信息 视频文件裁剪 简介 在OpenHarmony系统整个框架中有很多子系统,其中多媒体子系统是OpenHarmony比较重要的一个子系统&#…

Seata 2.x 系列【1】专栏导读

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Seata 版本 2.0.0 源码地址:https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 背景2. 简介3. 适用人群4. 环境及版本5. 文章导航5…

Spring基础——方法注入(Method Injection)

目录 查找方法注入(Lookup Method)查找方法注入基于XML的方法注入基于注解的方法注入 Arbitrary Method Replacement(任意方法替换) 文章所用项目源码参考:java_spring_learn_repo 查找方法注入(Lookup Met…

解决微信好友添加频繁问题

今天我们来聊一聊微信好友添加频繁的问题。在日常使用中,有时候我们会遇到一些添加好友受限的情况,那么究竟是什么原因导致了这一问题呢?接下来,让我们逐一来看一看。 1. 添加好友的频率太高 首先,如果我们在短时间内…

Java必须掌握的红黑树(含面试大厂题含源码)

当面试官要求你实现一个红黑树时,可能会给你一些提示或者要求,比如要求实现插入、删除、查找等操作。下面是一个简单的红黑树实现示例,包含了插入操作: class RedBlackTree {private static final boolean RED false;private st…

.NetCore6.0实现ActionFilter过滤器记录接口请求日志

文章目录 目的实现案例:一.首先我们新建一个WebApi项目二.配置 appsettings.json 文件,配置日志存放路径三.创建 Model 文件夹,创建AppConfig类和ErrorLog类1.在AppConfig类中编写一个GetConfigInfo方法获取配置文件中的值2.在ErrorLog类中&a…

供应josef约瑟DL-24C电流继电器 额定电流3A 整定范围0.5-2A 电气控制必备元件

电流继电器是一种特殊的电子控制器件,具有控制系统和被控制系统,它使用较小的电流去控制较大的电流,起到自动开关的作用。以下是电流继电器的特征: 承载大电流:电流继电器可以承载大电流,通常能够承受数十…

SpringBoot集成Docker

Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用及其依赖打包到一个可移植的容器中。 一、依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://ww…