首页 > 其他分享 >jmeter实用函数开发(一)

jmeter实用函数开发(一)

时间:2024-09-30 10:34:49浏览次数:1  
标签:util 函数 ArrayList 实用 apache import jmeter String

在接口测试过程中,经常会遇到枚举值,如果接口传参数,想随机取某一个枚举值应该怎么办呢?

本人结合实际工作中的需求,编写了一个jmeter函数,输入枚举值,枚举值中间以英文符号","进行区分,然后枚举值的随机值。

代码如下:

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

public class randomStringList extends AbstractFunction{
    private static final String KEY = "__RandomStringList";//这里是函数名,也就是在函数助手列表中显示的名称
    
    private static final List<String> desc = new ArrayList<>();
    private Object[] values;
    
    //函数助手中需要传的参数
    static {
        desc.add("please enter your String,(use , as separator)");
    }

    @Override
    public List<String> getArgumentDesc() {
        // TODO Auto-generated method stub
        return desc;
    }
    
    //对输入的字符串进行切分,通过","来进行分割成List
    public static ArrayList<String> StringToList(String stringList) {
        ArrayList<String> strList = new ArrayList<String>();
        final String DELIMITER = ",";    
        for (String s:stringList.split(DELIMITER)) {
            strList.add(s);
        }    
        return strList;
    }
    
    //调用StringToList方法,获取ArrayList,然后对StringToList进行随机取值,并返回
    @Override
    public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
        String stringList = ((CompoundVariable) this.values[0]).execute().trim();
        ArrayList<String> strList = StringToList(stringList);
        String str = null;
        Random random = new Random();
        for(int i=0;i<strList.size();i++) {
            int index = random.nextInt(strList.size());
            str = strList.get(index);
        }
        return str;
    }

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

    @Override
    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
        checkMinParameterCount(parameters, 1);
        this.values = parameters.toArray();    
    }

}

 

标签:util,函数,ArrayList,实用,apache,import,jmeter,String
From: https://www.cnblogs.com/tester-hqser/p/18441356

相关文章

  • EBS:FORM BUILDER 开发FORM常用函数
    FORMBUILDER开发FORM常用函数:(1)abort_query:停止查询的执行。(2)add_group_column(recordgroupid或name,groupcolumn):添加一个列到一个记录组,Recordgroupid、name,columntype,columnwidth。(3)add_group_row(recordgroupid或name,rownumber):添加一个行到一个记录组,recordg......
  • TS系列(5):函数
    你好,我是沐爸,欢迎点赞、收藏、评论和关注。TS系列(1):TS是什么?如何使用?TS系列(2):类型声明、类型推断和类型总览TS系列(3):常用类型(详细)TS系列(4):常用类型之类、抽象类和接口TS系列(5):泛型和类型声明文件接着前两天的继续分享,今天说下函数,包括为函数定义类型、推断类型、可选参数和默......
  • 【MySQL】数据库中的内置函数
    W...Y的主页......
  • C++ 函数
    定义函数实例函数声明调用函数函数参数参数的默认值Lambda函数与表达式函数是一组一起执行一个任务的语句。每个C++程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数......
  • MATLAB中isgraphics函数用法
    目录语法说明示例测试是否为有效句柄测试句柄类型        isgraphics函数的用法是对有效的图形对象句柄为True。语法tf=isgraphics(H)tf=isgraphics(H,type)说明        tf=isgraphics(H)为H中属于有效图形对象的元素返回true,为不是有......
  • C语言内存函数
    1.memcpy的使用和模拟实现void*memcpy(void*destination,constvoid*source,size_tnum);函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置这个函数在遇到"\0"的时候并不会停下来如果source和destination有任何的重叠,复......
  • unix中的exec族函数介绍
    一、前言本文将介绍unix中exec族函数,包括其作用以及使用方法。当一个进程调用fork函数创建一个新进程后,新进程可以直接执行原本正文段的其他内容,但更多时候,我们在一个进程中调用fork创建新的进程后,希望新进程能够执行其他的程序。(举个实际的例子,A进程调用fork后,我们更多的......
  • 开源模型应用落地-LangChain实用小技巧-文档分割器-自定义文档分割器(十三)
    一、前言  在LangChain框架中,文档分割器是一种将大段文本拆分成较小块或片段的算法或方法。其目标是创建可单独处理的可管理的片段,这在处理大型文档或数据集时通常是必要的。  而自定义文档分割器可以根据特定的需求和数据类型进行定制和配置,以便更好地适应应用程......
  • .NET高级调试 - sosex实用的几个命令介绍
    简介sosex是sos的一个拓展,主要目的是将一些繁琐的排查过程脚本化,比如探测死锁,设置断点等。更加方便快捷协助我们排查问题.比较可惜的是,在.netcore中不可用,作者已经不更新了。更多的命令可以使用!sosex.help查看帮助断点加强原来的bp命令操作起来优点麻烦,还有区分jit有没有......
  • Excel:常用函数
    一、DAYS(返回两个日期之间的天数)以下演示是在windows操作系统环境,office软件进行操作的1.1单元格设置日期格式1.2设置Days函数公式:=DAYS(C2,B2)全部天数二、SUM(求和)公式:=SUM(B2:C2)三、SUMIFS(多条件求和)3.1统计销售部报销金额公式:=SUMIFS(D:D......