原文永久地址:https://my.oschina.net/bysu/blog/994658
用R生成的随机不知道为什么,总是不是很随机,可能是因为用load()命令的缘故吧~暂时也没时间理会忒多。
但是java吧~又懒得每次都打开Eclipse,仅仅是为了去运行一小段java代码来生成几个数字,患有严重强迫症的我心理严重接受不了。
其实也可以通过下面的批处理来达到同样的效果。
@echo off:1javac "D:\Java\Test.java"cd "D:\Java"java "Test"pausegoto 1
好吧~我就是找一个蹩脚的借口试一下jmeter运行java脚本。
----------------------------------------闲话少说,言归正传吧~------------------------------------
1.先创建一个java项目jmeterFromJava;
2.在项目中创建一个lib的文件夹;
3.在Jmeter的安装目录lib/ext中拷贝“ApacheJMeter_core.jar”和“ApacheJMeter_java.jar”这两个文件到项目的lib文件夹下面;
4.Eclipse中把lib文件夹下面的两个JAR文件引入项目中;
5.项目中创建一个ConnectJmeter类,继承自AbstractJavaSamplerClient类;
6.MobileRandomNum类;
7.eclipse中将项目打包成jar
方法如下:
-
选中项目
-
然后右击弹出选项列表
-
依次选择Export---Java---jar file---next---browser(选择存放路径)---next---next---browser---finish
8.把生成的"rmobileno.jar"文件拷贝到Jmeter的安装目录lib/ext下.
9.运行Jmeter,添加一个线程组,然后在该线程组下面添加一个Java请求(在Sampler中),在Java请求的类名称的下拉框中选择刚创建的类"rmobileno"。在线程组中再添加一个监听器(查看结果树),运行就ok.源码如下:
AbstractJavaSamplerClient类
package jmeterFromJava;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 苏宝伢 E-mail:by.su@qq.com * @version 创建时间: 2017年6月21日 下午3:11:35 */public class ConnectJmeter extends AbstractJavaSamplerClient { SampleResult result; // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法 public void setupTest(JavaSamplerContext arg0) { result = new SampleResult(); } // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中 public Arguments getDefaultParameters() { Arguments params = new Arguments();// params.addArgument("testStr", ""); // 定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值 return params; } @Override public SampleResult runTest(JavaSamplerContext arg0) { result.sampleStart(); // 定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction String str = MobileRandomNum.startMobileNo() + MobileRandomNum.endMobileNo(); this.result.setResponseData(str); this.result.setSuccessful(true); result.sampleEnd(); // 定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction return result; } // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法 public void teardownTest(JavaSamplerContext arg0) { }}
MobileRandomNum类
package jmeterFromJava;import java.util.ArrayList;import java.util.Random;/** * @author 苏宝伢 E-mail:by.su@qq.com * @version 创建时间: 2017年6月21日 下午4:14:57 */public class MobileRandomNum { public static int startMobileNo(){int[] mobileStart ={139,138,137,136,135,134,159,158,157,150,151,152,188,130,131,132,156,155,133,153,189,180,177,176}; Random r = new Random(); ArrayListmobileList = new ArrayList<>(); for(int i = 0;i
原文永久地址:https://my.oschina.net/bysu/blog/994658
参考:
http://blog.csdn.net/li_ok/article/details/1487685
https://zhidao.baidu.com/question/406722131.html