您的位置:首页 > 其它

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

2017-01-22 11:04 405 查看
实现功能:对给定的用逗号分隔的字符串,随机返回其中一个。

 

代码如下:

Java代码  


/* 

 * 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中增加对应的属性:

Java代码  


urlencode_string=String to encode in URL encoded chars  

<span style="color: #ff0000;">getrandomstr_string=return a random you given,split by comma</span>  

use_custom_dns_resolver=Use custom DNS resolver  

 使用截图:



 

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐