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

原文永久地址: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

     方法如下:

  1. 选中项目

  2. 然后右击弹出选项列表

  3. 依次选择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

转载于:https://my.oschina.net/bysu/blog/994658

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值