jmeter添加自定义扩展函数之小写转换大写

1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这里就不再赘述

2,代码如下:

package com.mytest.functions;



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;

import org.apache.jmeter.threads.JMeterVariables;



import java.util.Collection;

import java.util.LinkedList;

import java.util.List;



public class UpperCase extends AbstractFunction {



    private static final List<String> desc = new LinkedList<String>();

    private static final String KEY = "__uppercase";



    static {

        desc.add("String to convert to uppercase");

        desc.add("Name of variable in which to store the result (optional),The author is guanyf");

    }



    private Object[] values;



    /**

     * No-arg constructor.

     */

    public UpperCase() {

    }



    /**

     * {@inheritDoc}

     */

    @Override

    public synchronized String execute(SampleResult previousResult, Sampler currentSampler)

            throws InvalidVariableException {

        JMeterVariables vars = getVariables();

        String res = ((CompoundVariable) values[0]).execute().toUpperCase();



        if (vars != null && values.length > 1) {

            String varName = ((CompoundVariable) values[1]).execute().trim();

            vars.put(varName, res);

        }



        return res;



    }



    /**

     * {@inheritDoc}

     */

    @Override

    public synchronized void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {

        checkMinParameterCount(parameters, 1);

        values = parameters.toArray();

    }



    /**

     * {@inheritDoc}

     */

    @Override

    public String getReferenceKey() {

        return KEY;

    }



    /**

     * {@inheritDoc}

     */

    @Override

    public List<String> getArgumentDesc() {

        return desc;

    }

}
View Code

 

posted @ 2019-05-23 15:52  蜗牛·哥  阅读(667)  评论(0编辑  收藏  举报