Jmeter压测http接口和java代码放在Jmeter执行

news2024/11/18 20:22:39

Jmeter无缝支持java语言,使其在市场上有很高的占有率,一些公司还专门对JMenter进行二次开发,使其成为公司级压测平台。

本次介绍JMenter的一些入门级使用,方便大家继续深入探索。

1、启动Jmeter

2、压测简单http接口

 添加线程组

 线程数:代表本次压测要使用多少个线程

ramp-up period(in seconds):代表"ramp-up period"(逐渐增加负载时间)是指在测试开始时,JMeter将逐渐增加并达到所需的并发用户数或线程数的时间段。它表示在多长时间内启动所有的并发用户或线程。

假设你希望模拟100个并发用户在5秒内访问你的应用程序。在这种情况下,你可以将ramp-up period设置为5秒。这意味着JMeter将在5秒内逐渐启动100个并发用户,每秒启动20个用户。

逐渐增加负载时间的设置对于模拟真实的用户行为和逐渐增加负载的场景非常有用。它可以避免突然的并发访问对应用程序造成的压力冲击。同时,它还可以帮助你观察应用程序在逐渐增加负载时的性能表现。

循环次数:分永远和期望的次数,永远代表线程会一直循环执行,不会主动退出,设置次数则每个线程执行相应的时间后主动退出

 添加HTTP请求

 服务器名称或IP:代表请求域名或IP地址

端口号:代表请求端口,http请求默认是80,https默认是443

implementation选非java

协议为http或https

Content encoding一般是UTF-8

路径为请求资源路径

如果请求是表单形式即key value形式则勾选上use multipart/form-data for post在Parameters中添加请求key value 

如果是请求体在body中,就在Body Data中填写请求体

添加Cookie

如果请求需要带Cookie则添加如下取样器

 添加请求头

如果请求需要必要头部信息,则加此取样器

 添加断言

 3、执行

添加结果树和聚合报告

执行

可以通过右上角的叹号查看代码执行遇到的问题

4、执行java接口 

编写java代码

在pom中添加如下依赖

   <!-- 添加 JMeter 依赖 -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.4.1</version> <!-- 使用你希望的 JMeter 版本 -->
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_http</artifactId>
            <version>5.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.4.1</version>
        </dependency>

继承AbstractJavaSamplerClient类重写runTest方法

package jmeter;

import com.jd.coffeeframework.common.adapter.export.dto.ExportRequest;
import com.jd.coffeeframework.common.adapter.export.dto.ExportResponse;
import com.jd.jr.cbp.bmall.api.AccessFacade;
import com.jd.jr.cbp.bmall.api.CouponFacade;
import com.jd.jr.cbp.bmall.api.TradeFacade;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import utils.JsfUtils;

public class TestJmeter extends AbstractJavaSamplerClient {

    private String jsfConfigPath = "/jsf-consumer.xml";
    private AccessFacade accessFacade;
    private CouponFacade couponFacade;
    private TradeFacade tradeFacade;

    @Override
    public void setupTest(JavaSamplerContext var1) {
        ClassPathXmlApplicationContext context = JsfUtils.getAllServices(jsfConfigPath);
        accessFacade = (AccessFacade)context.getBean("accessFacade");
        couponFacade = (CouponFacade)context.getBean("couponFacade");
        tradeFacade = (TradeFacade)context.getBean("tradeFacade");
    }

    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        ExportRequest<String> stringExportRequest = new ExportRequest<>();
        stringExportRequest.setReqNo("989786569870");
        stringExportRequest.setRequestTime("121333232");
        stringExportRequest.setData("4545454");
        ExportResponse<Boolean> booleanExportResponse =             
        accessFacade.queryFinancingOpenedStatus(stringExportRequest);
        return null;
    }

    @Override
    public void teardownTest(JavaSamplerContext var1) {
        super.teardownTest(var1);
    }

}

 将代码打成jar包,放到jmeter安装目录的lib\ext\目录下,重新打开jmeter,在java请求取样器中可以选择到继承了AbstractJavaSamplerClient的类,执行时会执行runTest方法。

将代码执行依赖的其他jar包放到lib目录下,重新打开jmeter,执行即可。

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

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

相关文章

Ant Design Vue设置表格滚动 宽度自适应 不换行

Ant Design Vue设置表格滚动 宽度自适应 不换行 添加以下属性即可解决这个问题&#xff1a; <a-table :columns"columns" :data-source"list":pagination"false"bordered:scroll"{ x: max-content }" >

Lazysysadmin靶机

信息收集 主机发现 nmap -sn 192.168.88.0/24 //-sn&#xff1a;制作主机发现&#xff0c;不做端口扫描&#xff1b;扫描结果包含本机IP 端口扫描 nmap --min-rate 10000 -p- 192.168.88.136 扫描端口详细信息 端口扫描发现&#xff0c;该主机的22、80、139、445、3306、…

进阶JAVA篇- DateTimeFormatter 类与 Period 类、Duration类的常用API(八)

目录 1.0 DateTimeFormatter 类的说明 1.1 如何创建格式化器的对象呢&#xff1f; 1.2 DateTimeFormatter 类中的 format&#xff08;LocalDateTime ldt&#xff09; 实例方法 2.0 Period 类的说明 2.1 Period 类中的 between(localDate1,localDate2) 静态方法来创建对象。 3.…

vue过渡动画效果

官网:https://cn.vuejs.org/v2/api/#transition 要与v-show,v-if 动态组件结合 给需要过渡的元素外层加<transition> ,并用name命名 , show:true, --------------------- <button click"show!show">button</button> <transition namefade>&…

基本地址变换机构

基本地址变换机构&#xff1a;用于实现逻辑地址到物理地址转换的一组硬件机构。 关于页号页表的定义&#xff0c;放个本人的传送门 1.页表寄存器 基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 1.作用 通常会在系统中设置一个页表寄存器&#xff08;PTR&…

KubeVela交付

有什么用我也不想说了&#xff0c;这个是k8s CI/CD,进阶玩家玩的了&#xff0c;比你们喜欢Arg CD更科学&#xff0c;更现代 在 Kubernetes 中安装 KubeVela helm repo add kubevela https://charts.kubevela.net/core helm repo update helm install --create-namespace -n v…

云耀云服务器L实例部署k8s测评|华为云云耀云服务器L实例评测使用体验

文章目录 云耀云服务器L实例部署k8s测评名词解释云耀云服务器L实例云耀负载均衡k8s及使用场景1.3.1 微服务架构1.3.2 自动化部署1.3.3 弹性伸缩1.3.4 多租户环境1.3.5 持续集成和持续部署 3. 部署华为云云耀服务器L实例3.1 云耀服务器L实例购买3.1.1 云耀服务器L实例初始化配置…

【Golang】grpc环境踩的坑

关于’protoc-gen-go’ 不是内部或外部命令 这个问题的出现是因为没有这个文件导致的 这个文件要通过我们下载的google.golang.org这个文件编译生成的 这里建议下载google提供的grpc包 protobuf的源码&#xff1a; git clone https://github.com/golang/protobuf 下载好之后进…

华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)

华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践系列&#xff1a; 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

RTSP协议

1 前言 RTSP协议作为音视频实时监控一个非常重要的协议&#xff0c;具有非常广泛的应用。RTSP由RFC 2326规范化&#xff0c;它允许客户端通过请求不同的媒体资源来控制流媒体服务器。RTSP是一种应用层协议&#xff0c;通常基于TCP连接&#xff0c;用于建立和控制媒体会话。这使…

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原…

Jetpack:008-Icon与Image

文章目录 1. 概念介绍2. 使用方法2.1 Icon2.2 Image 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中与Button相关的内容&#xff0c;本章回中主要I con与Image。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回中介绍…

graphviz报错

报错如下&#xff1a; graphviz.backend.ExecutableNotFound: failed to execute dot, make sure the Graphviz executables are on your systems PATH 大家习惯pip install graphviz去安装&#xff0c;但是graphviz是个软件&#xff0c;不能单独用Pip安装。 1、下载安装 G…

英语——语法——从句——非谓语动词——笔记

一、1定义 定义&#xff1a; 非谓语动词不是真正意义上的谓语动词&#xff0c;即在句中都不能单独作谓语。 非谓语动词主要有以下三种形式&#xff1a; 技巧&#xff1a;分析句子是先缩短为主谓宾&#xff0c;某人做某事&#xff0c;其他成分都是修饰限定作用。要么修饰明代词…

ECharts的基本使用

目录 一、使用前提 1、安装 2、创建文件 二、LineView.vue文件【相当于一个组件】 1、导入 2、methods方法下写init(){}方法进行选择 3、methods方法下写setOptioin(option) 4、init()函数调用 5、整合完整代码 三、IndexView.vue文件【实现组件引入显示】 1、引入 …

P34~36第八章相量法

8.1复数 复数可表示平面矢量、也可表示正弦量。特别是: 当复数表示正弦量的时候&#xff0c;此时复数称为相量。 8.2复数运算 复数除法也可看做乘法&#xff0c;乘法的几何意义是旋转&#xff08;辐角相加&#xff09;( e^x e^y e^xy)&#xff0c;同时伸缩&#xff08;模变…

计算机操作系统-第七天

1、计算机操作系统的结构&#xff08;续集&#xff09; 分层结构 特性&#xff1a;最底层是硬件&#xff0c;最高层是用户接口&#xff0c;每层只可使用更低的相邻层所提供的功能接口&#xff08;只有第一层可以直接操作硬件&#xff0c;第二次只能使用第一层提供的功能接口..…

英语——语法——从句——状语从句——笔记

一、概念 状语从句&#xff08;Adverbial Clause&#xff09;是指句子用作状语时&#xff0c;起副词作用的句子。状语从句中的从句可以修饰谓语。 状语从句根据其作用可分为时间、地点、原因、条件、目的、结果、让步、方式和比较等九 种状语从句。状语从句一般由连词(从属连词…

01_51单片机软件安装和使用

step1:keil软件安装 安装keil5&#xff1a;安装keil5 新用户进入官网下载需要先注册 官网&#xff1a;官网 嵌入式51开发资源百度网盘&#xff1a;江协科技 网盘地址&#xff1a;网盘地址 提取码&#xff1a;gdzf 桌面上出现该图标表示安装完成 双击图标打开对软件进行破…

向量空间概述

向量空间 向量空间与子空间 当存在这样的一组向量集合 V V V&#xff0c;其中 v &#xff0c; u &#xff0c; w v&#xff0c;u&#xff0c;w v&#xff0c;u&#xff0c;w分别为集合 V V V中的元素&#xff0c;以及存在标量c&#xff0c;d u v ∈ V uv \in V uv∈V u v …