All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.metersphere.jmeter.functions.MockFunction Maven / Gradle / Ivy

The newest version!
package io.metersphere.jmeter.functions;

import io.metersphere.jmeter.utils.ScriptEngineUtils;
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 MockFunction extends AbstractFunction {
    public static final String KEY = "__Mock";
    private static final List desc = new LinkedList<>();

    private CompoundVariable varName;

    static {
        desc.add("String to calculate Mock");
    }

    @Override
    public String execute(SampleResult previousResult, Sampler currentSampler) {
        String value = "";
        if (varName != null) {
            JMeterVariables vars = getVariables();
            final String varTrim = varName.execute().trim();
            if (vars != null && varTrim.length() > 0) {
                // vars will be null
                // on TestPlan
                value = ScriptEngineUtils.calculate(varTrim);
                vars.put(varTrim, value);
            }
        }
        return value;
    }

    @Override
    public void setParameters(Collection parameters) throws InvalidVariableException {
        checkParameterCount(parameters, 1, 1);
        //将值存入变量中
        Object[] values = parameters.toArray();
        varName = (CompoundVariable) values[0];
    }

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

    @Override
    public List getArgumentDesc() {
        return desc;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy