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
控制台输出

JMeter 中实现发送Java请求的更多相关文章
- Jmeter性能测试实践之java请求
前言 Apache Jmeter是开源.易用的性能测试工具,之前工作中用过几次对http请求进行性能测试,对jmeter的基本操作有一些了解.最近接到开发的对java请求进行性能测试的需求,所以需要 ...
- 【Jmeter测试】使用Java请求进行Dubbo接口的测试
如何构建一个Dubbo接口测试的通用框架(https://github.com/nitibu/jmeter-dubbo-test)从上面的流程我们可以看出,测试类大致的一个结构: 使用json文件来 ...
- Django中ajax发送post请求,报403错误CSRF验证失败解决办法
今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了:很显 ...
- .net中如何发送HTTP请求网络资源
应用场景 应该说只要是需要通过发送Http请求获取网络资源的地方都要使用它,网络资源可以是指以URI来表示的资源,比如web api接口等. HttpWebRequest .net2.0 ~ .net ...
- jmeter 开发自己的java请求 二次开发
package test; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient. ...
- Jmeter发送Java请求
1.创建一个Java工程 2.把Jmeter的lib\ext目录下的ApacheJMeter_java.jar.ApacheJMeter_core.jar文件添加进该项目的Build Path 3.创 ...
- Jmeter(一)发送http请求
Jmeter中发请求的步骤 1.添加线程组 2.添加http消息头管理器 3.添加http请求 一.线程组: 1.添加路径: 2.字段解释 ①线程数(Number of Threads): : 设置发 ...
- 《使用Jmeter进行批量发送http请求》
本文主要针对批量接口发送数据 一:接口测试的环境准备 1:JDK的安装:网上下载即可>1.6.0版本以上 2:jemeter工具的下载 (免安装):网上下载即可 3:插件的下载安装地址:http ...
- linux shell中curl 发送post请求json格式问题
今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'appl ...
随机推荐
- 从非标准的POST数据流中提取文件
1 接收数据流转成字符串,注意编码 byte[] recv= Request.BinaryRead(Request.TotalBytes);string sourceByte = Encoding.U ...
- 【新手向】使用nodejs抓取百度贴吧内容
参考教程:https://github.com/alsotang/node-lessons 1~5节 1. 通过superagent抓取页面内容 superagent .get('http://www ...
- MacOS下命令行安装神器brew
1.安装brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...
- linux的tar命令
Linux下的tar压缩解压缩命令详解 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中 ...
- Android--UI之ViewStub
前言 按照最近博客的路线,继续讲Android的UI开发.今天讲解一下ViewStub控件,惰性装载控件.在本篇博客中,将了解到ViewStub的常用属性.方法,以及注意事项.最后将以一个简单的Dem ...
- Ansible批量更新远程主机用户密码 (包括Ansible批量做ssh互信)
按照集团运维信息安全制度, 需要每个一段时间对线上服务器密码进行一次变更,通过shell脚本部署比较繁琐,所以决定采用ansible脚本对远程主机root密码进行批量重置,该脚本已经在稳定运行在正式环 ...
- 网络协议抓包分析——ARP地址解析协议
前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...
- [THUWC2017] 在美妙的数学王国畅游
Description 懒得概括了.. Solution 挺裸的LCT+挺裸的泰勒展开吧... 稍微了解过一点的人应该都能很快切掉...吧? 就是把每个点的函数泰勒展开一下然后LCT维护子树sum就行 ...
- 详细分析MySQL的日志(一)
官方手册:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html 不管是哪个数据库产品,一定会有日志文件.在MariaDB/MySQL中,主要 ...
- linux四剑客-grep/find/sed/awk/详解-技术流ken
四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...
