[转]jmeter 自定义测试脚本
http://blog.csdn.net/kash_chen007/article/details/37690411
http://wangym.iteye.com/blog/731729
1.创建一个Java工程;
2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;
3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;
public Arguments getDefaultParameters();设置可用参数及的默认值;
public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
4.Export为Runnable Jar File;
5.将此jar包放入JMETER_HOME\lib\ext目录;
6.以管理员身份打开JMeter;
7.创建线程组、Java Request、查看结果树,进行测试;
二、实例
1.在eclipse里面新建一个工程:JavaForJMeter
2.把{Jmeter_home}\lib目录下的所有jar添加进此工程的Build Path;
3.添加类Hello,代码如下:

package com.test.webservice;
public class Hello {
public String sayHello()
{
return "Hello";
}
public String sayHelloToPerson(String s)
{
if(s == null || s.equals(""))
s = "nobody";
return (new StringBuilder()).append("Hello ").append(s).toString();
}
public int sum(int a,int b)
{
return a+b;
}
}

4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码如下:
注意:System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性。

package com.test.webservice; 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 com.test.webservice.Hello; public class perftest extends AbstractJavaSamplerClient {
private String a;
private String b;
/** Holds the result data (shown as Response Data in the Tree display). */
private String resultData; // 这个方法是用来自定义java方法入参的。
// params.addArgument("num1","");表示入参名字叫num1,默认值为空。
//设置可用参数及的默认值;
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("num1", "");
params.addArgument("num2", "");
return params;
} //每个线程测试前执行一次,做一些初始化工作;
public void setupTest(JavaSamplerContext arg0) {
} //开始测试,从arg0参数可以获得参数值;
public SampleResult runTest(JavaSamplerContext arg0) {
a = arg0.getParameter("num1");
b = arg0.getParameter("num2");
SampleResult sr = new SampleResult();
sr.setSampleLabel( "Java请求哦");
try {
sr.sampleStart();// jmeter 开始统计响应时间标记
Hello test = new Hello();
// 通过下面的操作就可以将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。
resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer
.parseInt(b)));
if (resultData != null && resultData.length() > 0) {
sr.setResponseData("结果是:"+resultData, null);
sr.setDataType(SampleResult.TEXT);
}
// System.out.println(resultData);
sr.setSuccessful(true);
} catch (Throwable e) {
sr.setSuccessful(false);
e.printStackTrace();
} finally {
sr.sampleEnd();// jmeter 结束统计响应时间标记
}
return sr;
} //测试结束时调用;
public void teardownTest(JavaSamplerContext arg0) {
// System.out.println(end);
// System.out.println("The cost is"+(end-start)/1000);
} // main只是为了调试用,最后打jar包的时候注释掉。
/*
public static void main(String[] args)
{ // TODO Auto-generated method stub
Arguments params = new Arguments();
params.addArgument("num1", "1");//设置参数,并赋予默认值1
params.addArgument("num2", "2");//设置参数,并赋予默认值2
JavaSamplerContext arg0 = new JavaSamplerContext(params);
perftestbbb test = new perftestbbb();
test.setupTest(arg0);
test.runTest(arg0);
test.teardownTest(arg0);
}
*/
}

5.Export为Runnable Jar File:hello.jar
6.将此hello.jar(测试用例)包放入JMETER_HOME\lib\ext目录,其他依赖的jar包可以放到lib下。
7.打开JMeter,添加线程组,添加Java请求,查看结果树。


三、JMeter Java Sampler介绍
|
Arguments |
getDefaultParameters() 用于获取界面的参数 |
|
SampleResult |
runTest(JavaSamplerContext context) 类似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束 |
|
void |
setupTest(JavaSamplerContext context) 初始化方法,类似于LR的init和Junit中的setUp() |
|
void |
teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown() |
JMeter默认实现了两个Java Request Sampler:SleepTest Sampler和JavaTest Sampler。
JavaTest Sampler不向服务器发送数据请求,一般被用作调试目的使用。

至此,这已讲解完了。
[转]jmeter 自定义测试脚本的更多相关文章
- JMeter性能测试基础 (4)-使用JMeter录制测试脚本
在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...
- 用BlazeMeter录制JMeter测试脚本
工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...
- 菜鸟教程之工具使用(十)——用BlazeMeter录制JMeter测试脚本
工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤: 以上工具准备好以后就可以录制JMeter的测试脚本了, 在Chrome中点击 ...
- 用BlazeMeter录制JMeter(三十五)测试脚本(转载)
转载自 http://www.cnblogs.com/yangxia-test 工具: 1,JMeter 2,Chrome 3,BlazeMeter 4,SwitchyOmega(如果需要代理) 步骤 ...
- jmeter压力测试笔记- HTTP协议
一.目标 使用jmeter进行HTTP接口压力测试: 命令行方式运行,方便在linux环境运行: 二.面临的问题 支持多环境测试(开发.测试.生产环境) 支持用户数据.线程数.循环次数等配置在运行时自 ...
- 【NO.11】Jmeter - 构建1个可供Linux使用的Jmeter测试脚本 - 共3个步骤
在Linux使用Jmeter做性能测试需要4个前提条件,这4个前提条件已经在之前的文档里提到了,重复一下加深印象: (1) 在本地已安装xshell 参考<SecureCRT-转换密钥-Xshe ...
- JMeter http(s)测试脚本录制器的使用
JMeter http(s)测试脚本录制器的使用 by:授客 QQ:1033553122 http(s) Test Script Recorder允许Jmeter在你使用普通浏览器浏览web应用时,拦 ...
- 【jmeter】jMeter使用Badboy录制Web测试脚本
JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...
- 使用JMeter代理录制app测试脚本
准备条件:JMeter.手机app 上一篇介绍过录制Web测试脚本的方式有两种,使用代理和使用第三方工具.本篇录制app测试脚本只讨论使用代理的方式,其他方式以后有机会再补充.其实Web和app使用代 ...
随机推荐
- C#学习笔记(4)——sqlserver常用语句
说明(2017-5-26 17:29:05): 需要天天练习: 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] ...
- android 阿里云oss上传
购买了阿里云的oss空间,于是用它来存储图片,不过中间的使用算是出了些问题,导致很长的才成功. 不得不说,阿里云文档真的是无力吐槽...乱七八糟的.我完全是东拼西凑,才完成的图片上传功能. 走了很多的 ...
- python使用selenium
首先安装 pip install selenium 测试抓取baidu,其中的chromedriver.exe需要自己下载,百度有很多的 import timefrom selenium import ...
- C语言 · 新生舞会
算法训练 新生舞会 时间限制:1.0s 内存限制:512.0MB 问题描述 新生舞会开始了.n名新生每人有三个属性:姓名.学号.性别.其中,姓名用长度不超过20的仅由大小写字母构成的 ...
- postgresql with递归
在PostgreSQL里,with子句提供了一种方法写一个大的查询中使用的辅助报表与查询.它有助于打破复杂和大型查询简单易读的形式. 1. 建表 postgres=# create table tb9 ...
- 【转】c#的逆向工程-IL指令集
转载自:http://www.cnblogs.com/davyjiang/articles/1337400.html 一些 IL 语言解释: 跳转指令集合Beq 如果两个值相等,则将控制转移到目标指令 ...
- 初试 spring web mvc
作为一名code需要了解更多的知识,编程方面的东西太多了,是个逐渐积累的过程.最近学习一下spring web mvc,写下我个人的一些经验. 1.准备jar包.spring mvc 已经到了版本4, ...
- nodejs开发——require与exports的使用
nodejs开发——require与exports的使用 另一片文章总结:http://www.cnblogs.com/hfultrastrong/p/8036682.html require req ...
- docker-compose搭建wordpress
1.安装docker-compose apt-get install docker-compose 发现下载的是旧版本,不支持2.0的配置文件 还是下载新版本吧,去github查看最新版本https: ...
- 实现JTextfield 的右键 复制、剪切、粘贴功能。
http://leagion.iteye.com/blog/572730 ——————————————————————————————————————————————————————————————— ...