gpt4 book ai didi

java - Jmeter自定义函数

转载 作者:行者123 更新时间:2023-12-02 07:42:09 41 4
gpt4 key购买 nike

我需要在 Jmeter 中创建自定义函数,由于性能问题,我无法使用 beanshell。

我按照http://gabenell.blogspot.com/2010/01/custom-functions-for-jmeter.html编写了一个java类和 http://code4reference.com/2013/06/jmeter-custom-function-implementation/ ,但是当我编译它时,我似乎无法让 Jmeter 识别它。

我的类(class):

package custom.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 java.util.Collection;
import java.util.LinkedList;
import java.util.List;

public class Username extends AbstractFunction{
private static final List<String> desc = new LinkedList<String>();
private static final String KEY = "__Username";
private int number = 0;

static {
desc.add("Pass a random value to get a valid username for the system.");
}

public Username() {
super();
}

@Override
public synchronized String execute(SampleResult previousResult, Sampler currentSampler)
throws InvalidVariableException {
try {
return getValue(number);
} catch(Exception e){
throw new InvalidVariableException(e);
}
}

public String getValue(int number){
return "John-Smith";
}

@Override
public synchronized void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
checkParameterCount(parameters, 1, 1);
Object[] values = parameters.toArray();
number = Integer.parseInt(((CompoundVariable) values[0]).execute().trim());
}

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

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

当我运行 jar tf custom-functions.jar (以验证类文件是否在 jar 中)时:

META-INF/
META-INF/MANIFEST.MF
custom/
custom/functions/
custom/functions/Username.class

我将 jar 放在 jmeter lib/ext 目录中,并尝试单独运行 jmeter 并使用 -Jsearch_paths=../lib/ext/custom-functions.jar ,但无论哪种方式,当我打开未列出的函数帮助工具,并发送一个简单的测试计划来验证该函数,而不是发送 %24%7B__Username%281%29%7D

我是否没有将文件放在正确的位置?是不是命名错误?

最佳答案

您可以将groovy-all.jar放在Jmeter的类路径上,然后您将能够运行外部.groovy脚本,或者您可以添加JSR223-Groovy Sampler。

关于java - Jmeter自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24292525/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com