Search code examples
javascriptingjmeterperformance-testingbeanshell

Beanshell Scripting in Jmeter


I am trying to increment an alphanumeric string and pass that to a request in Jmeter 2.11. Attaching the snippet below. Please help.

import java.util.*;
import java.io.*;

var str="BaseDS66";
var a=1;
int position=8;
String newStr=str.substring(6,position);
//String newStr=str.replace("BaseDS","");
var n = ${newStr};
//String ADD = newStr + Integer.parseInt(1);
//String newStr1=sum(newStr + a);
//for (int i=0; i<newStr )
vars.put("Str",n);

Thanks in advance


Solution

  • If you need to :

    1. Extract this 66
    2. Increment it to 67
    3. Replace the original value so BaseDS66 becomes BaseDS67
    4. And store the value into ${Str} JMeter Variable you can do it as follows:

      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
      
      String str = "BaseDS66";
      
      Pattern p = Pattern.compile("(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
      Matcher m = p.matcher(str);
      
      if (m.find()) {
          String originalValueString = m.group(1);
          int originalValue = Integer.parseInt(originalValueString);
          originalValue++;
          String newStr = str.replace(originalValueString, String.valueOf(originalValue));
          log.info("Incremented value: " + newStr);
          vars.put("Str", newStr);
      }
      

    Demo:

    Regex Increment JMeter

    References: