jmeter新建java请求,性能测试。

5 篇文章 1 订阅
4 篇文章 0 订阅

1.maven引入

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jmeter-version>3.1</jmeter-version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>${jmeter-version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>${jmeter-version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
    </dependencies>

2.Java代码

package jmeter;

import org.apache.http.HttpEntity;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

import java.io.IOException;

public class JmeterSamplerTest extends AbstractJavaSamplerClient {

    private SampleResult result;
    private String url;

    public static void main(String[] args) {
        Arguments arguments = new Arguments();
        arguments.addArgument("url","http://www.baidu.com");
        JavaSamplerContext arg0 = new JavaSamplerContext(arguments);
        JmeterSamplerTest test = new JmeterSamplerTest();
        test.setupTest(arg0);
        test.runTest(arg0);
    }

    /**
     * 这个方法用来控制显示在GUI页面的属性,由用户来进行设置。
     * 此方法不用调用,是一个与生命周期相关的方法,类加载则运行。
     * @return
     */
    public Arguments getDefaultParameters() {
        Arguments arguments = new Arguments();
        arguments.addArgument("url","");
        return arguments;
    }


    /**
     * 做些初始化的工作,每个线程只执行一次
     * @param context
     */
    public void setupTest(JavaSamplerContext context) {
        result = new SampleResult();
    }

    /**
     * 具体的测试执行工作,每个并发每次循环都将执行一次
     * @param javaSamplerContext
     * @return
     */
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        //获取用户输入的url
        url = javaSamplerContext.getParameter("url");

        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpGet request = new HttpGet(url);
        result.sampleStart();
        CloseableHttpResponse closeableHttpResponse = null;
        try {
            closeableHttpResponse = httpclient.execute(request);
            StatusLine statusLine = closeableHttpResponse.getStatusLine();
            HttpEntity entity = closeableHttpResponse.getEntity();
            //将请求结果设置在响应内容中,将在结果树展示
            String str = EntityUtils.toString(entity,"UTF-8");
            result.setResponseData(str,"UTF-8");
            System.out.println(str);

            if (statusLine.getStatusCode()==200){
                //请求状态码为200,将请求设置为成功
                result.setSuccessful(true);
            } else {
                result.setSuccessful(false);
            }
            closeableHttpResponse.close();
            httpclient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        result.sampleEnd();

        return result;
    }

    //结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法
    public void teardownTest(JavaSamplerContext arg0) {
    }


}


3.将代码打成jar包

先clean,然后再package
在这里插入图片描述

4.将jar包放入jmeter的\lib\ext目录下

直接输入1次#,并按下space后,将生成1级标题。输入2次#,并按下space后,将生成2级标题。以此类推,我们支持6级标题。有助于使用语法后生成一个完美的目录。

5.启动jmeter,并新建一个java请求

在这里插入图片描述

6.最后请求的结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值