JMeter 中实现发送Java请求
JMeter 中实现发送Java请求
1. 步骤1 新建JAVA项目
File -> New -> Java Project
如上图,填写Project Name,然后Next,打开以Java Settings界面
如上图,切换到Libraries标签页 -> 选择Add Library -> User Libray,点击Next 按钮,打开以下 User Libraries界面
如上图,点击 New ,弹出窗中输入自定义类库名称
选择定义类库(例中为 JMeter Lib),然后点击 Add JARS 按钮,添加$JMETER_HOME/lib 目录下(包含子目录下)的jar包(为了避免包之间的依赖性问题,可以考虑全部添加进来)
完成后,点击OK按钮,返回如下界面
点击Finish,返回如下界面
点击Finish
2. 步骤2 新建JAVA包
右键src目录 -> New -> Package,打开如下界面
点击Finish,提交
3. 步骤3 新建JAVA Class
右键 包名 -> New -> Class,打开如下界面
点击Finish,提交
再新建一个testDriver JAVA Class
4. 步骤4 编写用例类
package testpkg;
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;
public class TestClass extends AbstractJavaSamplerClient {
private static long start = 0;
private static long end = 0;
private String id = "0";
@Override
public void setupTest( {
// 开始时间
start = System.currentTimeMillis();
}
@Override
public void teardownTest( {
// 结束时间
end = System.currentTimeMillis();
// 总体耗时
System.err.println("cost time:" + (end - start) / 1000);
}
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("id", "123456789"); // 添加默认参数及对应值 //参数名称:id 参数值:123456789
return args;
}
@Override
public SampleResult runTest( {
id = arg0.getParameter("id");
boolean if_success = true;//测试结果标记位
SampleResult sr = new SampleResult(); // 为避免多线程问题,设置sr为局部变量
sr.setSampleLabel("; // 设置采样标签,对应GUI 聚合报告里的Label值
try {
//Start
sr.sampleStart(); // 开始统计响应时间
// TODO
System.out.println(id);
//sr.setResponseData("data return by server", ""); //第一个参数 设置JMeter GUI "查看结果树" 请求对应的"响应数据" // 执行压测前 建议注释掉
sr.setResponseData("data return by server", "utf-8"); //第二个参数 为编码, 设置JMeter GUI "取样器结果" DataEncoding: utf-8 // 第二个参数为 "", 则表示默认为 GBK编码
sr.setDataType(SampleResult.TEXT); // 设置JMeter GUI "取样器结果" Data type ("text"|"bin"|""):text
sr.setResponseMessageOK(); // 设置JMeter GUI "取样器结果" Response message: OK
sr.setResponseCodeOK(); // 设置JMeter GUI "取样器结果" Response code: 200
if_success = true;
} catch (Exception e) {
if_success = false; // 请求失败
sr.setResponseMessage("server error"); // 设置JMeter GUI "取样器结果" Response message: server error
sr.setResponseCode("500"); // 设置JMeter GUI "取样器结果" Response code: 500
e.printStackTrace();
} finally {
// End
sr.sampleEnd();
// setSuccessful 设置请求结果为 true--请求成功,JMeter查看结果树中会显示请求成功 false--请求失败,JMeter查看结果树中会显示请求失败
sr.setSuccessful(if_success);
}
return sr;
}
}
编写测试代码
package testpkg;
import testpkg.TestClass;
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;
public class testDriver {
public static void main(String[] args) {
TestClass obj = new TestClass();
Arguments params = new Arguments();
params.addArgument("id", "1234567890");
JavaSamplerContext arg0 = new ;
obj.runTest(arg0);
}
}
5. 步骤5 导出jar文件
File -> Export -> Java -> JAR file,打开如下界面
如图,点击Next按钮,打开如下界面
如上图,选择要导出的类,然后选择JAR file文件保存路径,最后点击Finish即可。把导出的jar放入JMeter_home/lib/ext目录下,重启JMeter
6. 步骤6 新建JMeter Java请求
右键线程组 添加->Sampler -> Java请求
如上,选择要测试的类名,设置测试所需要参数(和其它参数一样,可以做成参数化)
运行,查看结果
Jmeter 控制台输出
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群