0

I would like to generate a random letter and assign it to a variable, then append it to the request. However, my current script is not functioning as expected. Could you assist me in identifying what might be incorrect?

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"));

1 Answer 1

1
  1. It's recommended to use built-in JMeter functionality and avoid scripting where possible. Your requirement can be implemented using __RandomString() function like:

    ${__RandomString(1,abcdefghijklmnopqrstuvwxyz,)}
    

    and this function can be used anywhere in your script

  2. If you prefer to do it in the code you can call RandomStringUtils.randomAlphabetic() function

    vars.put("randomInput", org.apache.commons.lang3.RandomStringUtils.randomAlphabetic(1).toLowerCase());
    
  3. And last but not the least, using Beanshell is some form of a performance anti-pattern, since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting so consider migrating. More information: Apache Groovy: What Is Groovy Used For?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.