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

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

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

1、启动Jmeter

Jmeter压测http接口和java代码放在Jmeter执行_第1张图片

2、压测简单http接口

 添加线程组Jmeter压测http接口和java代码放在Jmeter执行_第2张图片

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

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

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

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

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

Jmeter压测http接口和java代码放在Jmeter执行_第3张图片 添加HTTP请求

Jmeter压测http接口和java代码放在Jmeter执行_第4张图片

 服务器名称或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中填写请求体

Jmeter压测http接口和java代码放在Jmeter执行_第5张图片

添加Cookie

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

Jmeter压测http接口和java代码放在Jmeter执行_第6张图片 添加请求头

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

Jmeter压测http接口和java代码放在Jmeter执行_第7张图片

 添加断言

Jmeter压测http接口和java代码放在Jmeter执行_第8张图片

 3、执行

添加结果树和聚合报告

Jmeter压测http接口和java代码放在Jmeter执行_第9张图片

执行

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

Jmeter压测http接口和java代码放在Jmeter执行_第10张图片

4、执行java接口 

编写java代码

在pom中添加如下依赖

   
        
            org.apache.jmeter
            ApacheJMeter_core
            5.4.1 
        
        
            org.apache.jmeter
            ApacheJMeter_http
            5.4.1
        
        
            org.apache.jmeter
            ApacheJMeter_java
            5.4.1
        

继承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 stringExportRequest = new ExportRequest<>();
        stringExportRequest.setReqNo("989786569870");
        stringExportRequest.setRequestTime("121333232");
        stringExportRequest.setData("4545454");
        ExportResponse 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,执行即可。

你可能感兴趣的:(jmeter)