jmeter java request_Jmeter Java Request (十一)

实际过程中采用Jmeter压测Http接口比较多,但是实际工作中也可能会遇见一些无法通过http 来实现的,之前工作中遇见通过SDK来获取token,然后拿token再去请求其他的接口,需要借助java request来实现逻辑,下面来看下如何来实现java Request请求;

一、实现JAVA请求代码(Java Request 核心内容)

1、创建Maven工程;

2、pom文件添加依赖 ApacheJMeter_core 和 pacheJMeter_java;

org.apache.jmeter

ApacheJMeter_core

5.1.1

org.apache.jmeter

ApacheJMeter_java

5.1.1

3、继承AbstractJavaSamplerClient,并重写runTest()方法;

4、JAVA Request 请求例子(例子中主要模拟判断账号和密码是否一致做出不同接口,账号和密码与预期一致登录成功,设置结果为通过,账号和密码与预期不一致登录失败,设置结果为失败);

package com.cfilmcloud.example;

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;

/**

* @Author liuqiang_cl@163.com

* @Date 2020/7/14 16:56

*/

public class JmeterJavaRequestExample extends AbstractJavaSamplerClient {

public void setupTest(JavaSamplerContext context) {

//可选,测试前执行,做一些初始化工作;

System.out.println("setupTest");

}

public void teardownTest(JavaSamplerContext context) {

// 可选,测试结束时调用;

System.out.println("teardownTest");

}

@Override

public Arguments getDefaultParameters() {

// 设置可用参数

Arguments jMeterProperties = new Arguments();

jMeterProperties.addArgument("userName", "");

jMeterProperties.addArgument("userPassword", "");

return jMeterProperties;

}

@Override

public SampleResult runTest(JavaSamplerContext javaSamplerContext) {

//必选,实现自定义请求,请求逻辑;

SampleResult sampleResult = new SampleResult();

sampleResult.setSampleLabel("Jmeter Java Request"); // 设置请求名称

try {

sampleResult.sampleStart(); //开始统计响应时间标记

String userName = javaSamplerContext.getParameter("userName");

String userPassword = javaSamplerContext.getParameter("userPassword");

if (userName.equals("admin") && userPassword.equals("admin")) {

System.out.println("登录成功");

sampleResult.setSuccessful(true); // 设置结果成功

sampleResult.setResponseData("登录成功", "utf-8");

} else {

System.out.println("登录失败");

sampleResult.setSuccessful(false); // 设置结果失败

}

} finally {

sampleResult.sampleEnd();// 结束统计响应时间标记

}

return sampleResult;

}

}

5、通过打包生成jar包

6、将jar包放在jmeter lib/ext目录下,重新启动Jmeter

二、Jmeter 配置 Java Request请求

1、新建Java Request请求

a9f3d489ee3e321eb948ac1d48eca6ed.png

2、选择要执行请求的类和配置请求参数

9107886b3244dcb47e4669a0ab6c7468.png

到此Java Request请求配置完成,后续请求执行阶段与Http请求执行一致,而Jmeter request 请求的核心步骤不在于Jmeter的配置,关键在于Java 代码的实现内容,主要逻辑存放在Java代码,而Jmeter主要是来执行该代码

三、JMeter Java Sampler介绍

1、常用方法

public void setupTest(JavaSamplerContext context){}; //测试启动时调用,主要做一些初始化工作;

public void teardownTest(JavaSamplerContext context){}; //测试结束时调用,主要做一些资源回收工作;

public Arguments getDefaultParameters(){return null;}; //设置可用参数及参数默认值,主要用于Jmeter界面与代码参数之间的交互操作;

public SampleResult runTest(JavaSamplerContext javaSamplerContext) {return null;}; //必选,实现自定义请求

代码中的方法执行的先后顺序:

getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)

2、SampleResult中常用属性

sampleResult.setSampleLabel("Jmeter Java Request"); //设置请求名称

sampleResult.sampleStart(); //开始统计响应时间标记

sampleResult.setSuccessful(true); //设置请求结果成功

sampleResult.setSuccessful(false); //设置请求结果失败

sampleResult.sampleEnd();//结束统计响应时间标记

sampleResult.setResponseData("登录成功", "utf-8"); //设置Response,如果返回内容包含中文,需要指定字符串,否则会出现乱码

文中代码提取链接: https://pan.baidu.com/s/182pOzVR4S2Q0jEhjnN5wjA 提取码: imgc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值