Reputation: 33
Trying to generate random string using while loop, however, it generate the same number each time the loop iterates. Is there any other way to generate random string using while loop?
Code:
int x=0;
while(x<10){
log.info("generated-------${__RandomString(6,1234567890,)}---");
x++;
}
Response in logs:
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
INFO - jmeter.util.BeanShellTestElement: generated-------908410---
Upvotes: 1
Views: 5991
Reputation: 33
String y;
String extcode1;
log.info("------------connecting---------");
public class GenerateRandomString {
public static final String DATA = "ABCDEFGHIJKLMNOabcdefghijklmno1234567890";
public static Random RANDOM = new Random();
public static String randomString(int len) {
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
sb.append(DATA.charAt(RANDOM.nextInt(DATA.length())));
}
y =sb.toString();
log.info(""+y);
return sb.toString();
}
}
int i=0;
while(i<10){
extcode1=GenerateRandomString.randomString(6);
i++;
}
OUTPUT:
=========
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: 7BHc2d
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: IDo7oN
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: Gj3mgK
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: iFcDOi
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: ka3gEO
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: KMC9En
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: lFocjE
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: 4kK2dj
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: I3c9an
2017/03/06 11:59:26 INFO - jmeter.util.BeanShellTestElement: HDAG7k
Upvotes: 2
Reputation: 168132
It is better to use JSR223 Test Elements and Groovy language rather than Beanshell, this way you will get more performance, more Java compatibility and more language features. Here is an example Groovy code:
import org.apache.commons.lang.RandomStringUtils;
1.upto(10, {
log.info(RandomStringUtils.randomNumeric(6))
})
See Groovy Is the New Black article for more information and examples
Upvotes: 2