JMeter BeanShell 预处理器

问题描述 投票:0回答:1

我想生成一个随机字母并将其分配给一个变量,然后将其附加到请求中。但是,我当前的脚本未按预期运行。您能帮我找出哪些地方可能不正确吗?

import java.util.Random;

char getRandomLowercaseLetter() {
    Random rand = new Random();
    char randomLetter = (char) (rand.nextInt(26) + 'a'); // Generating a random lowercase letter
    return randomLetter;
}

// Get the current value of the randomInput variable
String currentRandomInput = vars.get("randomInput");

// Generate a random lowercase letter
char randomLetter = getRandomLowercaseLetter();

// Set the random letter as the new value for the randomInput variable
vars.put("randomInput", currentRandomInput + randomLetter);

// Logging the new value of randomInput
log.info("New randomInput value: " + vars.get("randomInput"));
jmeter beanshell
1个回答
0
投票
  1. 建议使用内置的 JMeter 功能并尽可能避免编写脚本。您的要求可以使用 __RandomString() 函数来实现,例如:

    ${__RandomString(1,abcdefghijklmnopqrstuvwxyz,)}
    

    这个函数可以在脚本中的任何地方使用

  2. 如果您喜欢在代码中执行此操作,可以调用 RandomStringUtils.randomAlphabetic() 函数

    vars.put("randomInput", org.apache.commons.lang3.RandomStringUtils.randomAlphabetic(1).toLowerCase());
    
  3. 最后但并非最不重要的一点是,使用 Beanshell 是某种形式的性能反模式,自 JMeter 3.1 起,建议使用 JSR223 测试元素和 Groovy 语言进行脚本编写,因此请考虑迁移。更多信息:Apache Groovy:Groovy 的用途是什么?

© www.soinside.com 2019 - 2024. All rights reserved.