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

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

 

代码如下:

Java代码   收藏代码
  1. /* 
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more 
  3.  * contributor license agreements.  See the NOTICE file distributed with 
  4.  * this work for additional information regarding copyright ownership. 
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0 
  6.  * (the "License"); you may not use this file except in compliance with 
  7.  * the License.  You may obtain a copy of the License at 
  8.  * 
  9.  *   http://www.apache.org/licenses/LICENSE-2.0 
  10.  * 
  11.  * Unless required by applicable law or agreed to in writing, software 
  12.  * distributed under the License is distributed on an "AS IS" BASIS, 
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  14.  * See the License for the specific language governing permissions and 
  15.  * limitations under the License. 
  16.  *  
  17.  */  
  18.   
  19. package org.apache.jmeter.functions;  
  20.   
  21.   
  22. import org.apache.jmeter.engine.util.CompoundVariable;  
  23. import org.apache.jmeter.samplers.SampleResult;  
  24. import org.apache.jmeter.samplers.Sampler;  
  25. import org.apache.jmeter.util.JMeterUtils;  
  26.   
  27. import java.util.*;  
  28. import java.util.Random;  
  29.   
  30. /** 
  31.  * Function to return a random string you given 
  32.  * Pass parameters split by comma 
  33.  *  
  34.  * @since 2.10 
  35.  */  
  36. public class GetRandomStr extends AbstractFunction {  
  37.       
  38.     private static final List<String> desc = new LinkedList<>();  
  39.   
  40.     private static final String KEY = "__getrandomstr"//$NON-NLS-1$  
  41.   
  42.     static {  
  43.         desc.add(JMeterUtils.getResString("getrandomstr_string")); //$NON-NLS-1$  
  44.     }  
  45.   
  46.     private Object[] values;  
  47.     Random ra;  
  48.     int rannum;  
  49.   
  50.     public GetRandomStr() {  
  51.     }  
  52.   
  53.     /** {@inheritDoc} */  
  54.     @Override  
  55.     public String execute(SampleResult previousResult, Sampler currentSampler)  
  56.             throws InvalidVariableException {  
  57.         String randomString = ""//$NON-NLS-1$  
  58.         ra =new Random();  
  59.         rannum = ra.nextInt(values.length);  
  60.         try {  
  61.             randomString = ((CompoundVariable) values[rannum]).execute();  
  62.         } catch (Exception uee) {  
  63.             return null;  
  64.         }  
  65.         return randomString;  
  66.     }  
  67.   
  68.     /** {@inheritDoc} */  
  69.     @Override  
  70.     public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {  
  71.         //checkParameterCount(parameters, 1);  
  72.         values = parameters.toArray();  
  73.     }  
  74.   
  75.     /** {@inheritDoc} */  
  76.     @Override  
  77.     public String getReferenceKey() {  
  78.         return KEY;  
  79.     }  
  80.   
  81.     /** {@inheritDoc} */  
  82.     @Override  
  83.     public List<String> getArgumentDesc() {  
  84.         return desc;  
  85.     }  
  86. }  

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

Java代码   收藏代码
  1. urlencode_string=String to encode in URL encoded chars  
  2. <span style="color: #ff0000;">getrandomstr_string=return a random you given,split by comma</span>  
  3. use_custom_dns_resolver=Use custom DNS resolver  

 使用截图:



 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值