`
zfy421
  • 浏览: 233654 次
社区版块
存档分类
最新评论

jmeter函数开发实现返回随机字符串

阅读更多

实现功能:对给定的用逗号分隔的字符串,随机返回其中一个。

 

代码如下:

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

package org.apache.jmeter.functions;


import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.util.JMeterUtils;

import java.util.*;
import java.util.Random;

/**
 * Function to return a random string you given
 * Pass parameters split by comma
 * 
 * @since 2.10
 */
public class GetRandomStr extends AbstractFunction {
    
    private static final List<String> desc = new LinkedList<>();

    private static final String KEY = "__getrandomstr"; //$NON-NLS-1$

    static {
        desc.add(JMeterUtils.getResString("getrandomstr_string")); //$NON-NLS-1$
    }

    private Object[] values;
    Random ra;
    int rannum;

    public GetRandomStr() {
    }

    /** {@inheritDoc} */
    @Override
    public String execute(SampleResult previousResult, Sampler currentSampler)
            throws InvalidVariableException {
        String randomString = ""; //$NON-NLS-1$
        ra =new Random();
        rannum = ra.nextInt(values.length);
        try {
            randomString = ((CompoundVariable) values[rannum]).execute();
        } catch (Exception uee) {
            return null;
        }
        return randomString;
    }

    /** {@inheritDoc} */
    @Override
    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
        //checkParameterCount(parameters, 1);
        values = parameters.toArray();
    }

    /** {@inheritDoc} */
    @Override
    public String getReferenceKey() {
        return KEY;
    }

    /** {@inheritDoc} */
    @Override
    public List<String> getArgumentDesc() {
        return desc;
    }
}

 在messages.properties中增加对应的属性:

urlencode_string=String to encode in URL encoded chars
getrandomstr_string=return a random you given,split by comma
use_custom_dns_resolver=Use custom DNS resolver

 使用截图:



 

  • 大小: 168.8 KB
分享到:
评论

相关推荐

    jmeter获取随机字符串

    使用规则,如:${__RandomFromStringList(xx1|xx2|xx3|xx4,)},这样便可随机选择字符串(中间用“|”分开),再也不用把随机字符串写在文本里了,对于少量随机使用起来很方便。 jmeter版本:3.3,是否兼容别的版本还...

    ApachJMeter_core-jmeter函数助手可复制.zip

    "ApachJMeter_core-jmeter函数助手可复制.zip"这个文件显然包含了针对JMeter的增强功能,特别是关于函数助手的修改,使其能够复制和编辑。在默认情况下,JMeter中的函数助手对话框中的函数可能是不可编辑或不可复制...

    Jmeter 二次开发 函数助手 AES加解密

    本项目“Jmeter 二次开发 函数助手 AES加解密”正是这样一种定制化实践,它旨在增强JMeter的功能,特别是关于数据安全方面的处理。 首先,我们来讨论项目中的第一部分:读取本地图片并转换为Base64编码。Base64是一...

    JMETER 函数详细讲解

    - `${__RandomString}`:生成指定长度的随机字符串。 ### 使用函数的关键点 1. **函数的引用**:函数通常以`${}`包裹,这使得JMeter知道这是需要解析和执行的函数。 2. **参数传递**:参数可以通过变量名或直接值...

    jmeter之接口测试实现参数化(利用函数助手),参数值为1-9(自增的数字)

    jmeter之接口测试实现参数化(利用函数助手),参数值为1-9(自增的数字)

    jmeter3实现返回json串的断言jmeter-plugins-json.jar

    jmeter3实现返回json串的断言,将 jmeter-plugins-json-2.3.jar 复制到lib/ext/.

    jmeter插件,生成车牌号

    jar包放在jmeter-lib-ext目录下,打开jmeter在函数助手中可以看到。CarId.jar为车牌号生成,需要输入(省会简称(京津冀),市级代码(ABCD));

    jmeter 插件开发Sampler读取Excel文件并设置为变量

    标题 "jmeter 插件开发Sampler读取Excel文件并设置为变量" 描述了一种针对JMeter工具的自定义插件开发方法,该插件能够方便地读取Excel文件中的数据,并将这些数据自动设置为JMeter测试计划中的变量。在性能测试中,...

    jmeter插件,jmeter二次开发,DES加解密

    jar包放在jmeter-lib-ext目录下,打开jmeter在函数助手中可以看到。DSE.jar为DES加解密,需要输入(明文,ENCODE,加密key(16位)或者(密文,DECODE,解密KEY(16位));

    jmeter参数化-随机姓名生成

    1、下载Mock包使用函数对话框助手随机生成姓名进行参数化; 2、下载完成后将jar包放入jemter安装目录下的lib/ext文件夹下重启jmeter即可 3、jmeter中【选项】--【函数助手对话框】--在值内输入@cname 点击生成 4、...

    随机生成姓名----- 中文+英文+数字

    随机生成姓名----- 中文+英文+数字

    jmeter 实现oauth1.0授权认证

    最后,按照OAuth签名的规则,将排序后的参数字符串与密钥(consumer secret和token secret组合)进行HMAC-SHA256哈希运算,生成签名。这个签名将作为请求头的一部分发送,验证服务器端的身份。 4. **构建OAuth请求...

    Jmeter对接口测试入参实现MD5加密

    在JMeter中实现MD5加密,我们可以使用两种方法:自带的函数助手和BeanShell脚本。 ### 自带函数助手 JMeter提供了内置的函数助手,其中包括了MD5加密功能。我们可以通过以下步骤使用它: 1. 在请求参数中,找到...

    jmeter使用个人总结

    Apache JMeter是一款开源的压力测试工具,由Apache组织开发和维护。它主要基于Java语言编写,可以用来对各种应用程序(尤其是Web应用)进行性能和功能测试。JMeter的初衷是为了进行Web应用的压力测试,但随着时间的...

    Jmeter Jmeter Jmeter Jmeter Jmeter

    此外,JMeter还能帮助开发人员进行回归测试,确保应用程序返回预期的结果。 #### 二、安装与配置 ##### 1. 安装JDK JMeter依赖于Java环境,因此首先需要安装JDK。具体步骤如下: - **设置JAVA_HOME环境变量**:...

    jmeter源码开发

    ### JMeter 4.0 源码导入与二次开发指南 #### 一、环境搭建与准备工作 在进行JMeter 4.0源码的导入和二次开发之前,需要完成以下准备工作: 1. **下载JMeter 4.0源码**: - 文件名称:`apache-jmeter-4.0_src....

    生成指定随机数不重复的例子(可用)

    具体到这个例子,我们可以假设有一个名为`test_java`的Java源文件,其中包含一个函数或者一个类,实现了上述逻辑。在myEclipse中使用这个例子的步骤如下: 1. 解压缩文件,确保包含`test_java.java`文件。 2. 打开...

    【思维导图】jmeter-4jmeter脚本开发

    全栈性能测试修炼宝典JMeter实战 -4jmeter脚本开发.xmind

    Jmeter-线程组--生成姓名.jmx :

    jmeter 随机姓名 后面使用变量 ${name}引用即可 ```````````````````````````````````````````````````````````` jmeter 随机姓名 后面使用变量 ${name}引用即可

Global site tag (gtag.js) - Google Analytics