您的位置:首页 > 编程语言 > Java开发

使用jmeter运行java脚本,实现手机号码随机生成

2017-06-21 00:00 756 查看
原文永久地址:https://my.oschina.net/bysu/blog/994658

用R生成的随机不知道为什么,总是不是很随机,可能是因为用load()命令的缘故吧~暂时也没时间理会忒多。

但是java吧~又懒得每次都打开Eclipse,仅仅是为了去运行一小段java代码来生成几个数字,患有严重强迫症的我心理严重接受不了。

其实也可以通过下面的批处理来达到同样的效果。

@echo off
:1
javac "D:\Java\Test.java"
cd "D:\Java"
java "Test"
pause
goto 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();
ArrayList<Integer> mobileList = new ArrayList<>();
for(int i = 0;i<mobileStart.length;i++){
mobileList.add(mobileStart[i]);
}
return mobileList.get(r.nextInt(mobileList.size()));
}

public static String endMobileNo(){
Random r = new Random();
String temp = "";
for(int i=0;i<8;i++){
temp += r.nextInt(10);
}
return temp;
}
}

原文永久地址:https://my.oschina.net/bysu/blog/994658

参考:
http://blog.csdn.net/li_ok/article/details/1487685 https://zhidao.baidu.com/question/406722131.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐