I am using JMeter's Function Helper Dialogue and i found below syntax -
Syntax - ${__Random(12,99,customer-id)}
Result - random values b/w 12 to 99 getting generated, which will get stored in variable "customer-id"
Now Problem is I have to generate value with prefix 'test' (say-test12) and store it in variable 'customer-id'
How to do that ?
I don't see why would you need this because JMeter Variables can be normally concatenated with plain text so if you need test12 just use test${customer-id} statement where required.
However if you really need to generate some static text followed by a random number you could go for __groovy() function configured like:
${__groovy('test' + org.apache.commons.lang3.RandomUtils.nextInt(12\,99),customer-id)}
Demo:
More information:
RandomUtils JavaDoc
Apache Groovy - Why and How You Should Use It
I have one column (im = 160648) and row (jm = 1). I want to transform that to a matrix with sizes (im = 344) and (jm=467)
my program code is
program matrix
parameter (im=160648, jm=1)
dimension h(im,jm)
integer::h
open (1,file="Hasil.txt", status='old')
open (2,file="HasilNN.txt", status='unknown')
do i=1,jm
read(1,*)(h(i,j)),j=1,jm)
end do
do i=1,im
write(2,33)(h(i,j),j=1,jm)
end do
33 format(1x, 344f10.6)
end program matrix
the error code that appears when read(1,*)(h(i,j)),j=1,jm)
the data type is floating data.
Your read loop is:
do i=1,jm
read(1,*)(h(i,j)),j=1,jm)
end do
Shouldn't do i=1,jm be do i=1,im ?
This would imply there are "im" records (lines) in the formatted text file Hasil.txt, which your question suggests.
read(1,*)(h(i,j)),j=1,jm) implies each record (line of text) has "jm" values, which is 1 value per line. Is this what the file looks like ? (An unknown number of blank lines will be skipped with this read (lu,*) ... statement.)
You appear to be wanting to write this information to another file; HasilNN.txt using 33 format (1x, 344f10.6) which suggests 3441 characters per line, although your write statement will write only 1 value per line (as jm=1). This would be a very long line for a text file and probably difficult to manage outside the program. If you did wish to do this, you could achieve this with an implied do loop, such as:
write(2,33) ((h(i,j),j=1,jm),I=1,im)
A few comments:
using jm = 1 implies each row has only one value, which could be equivalently represented as a 1d vector "dimension h(im)", negating the need for j
File unit numbers 1 and 2 are typically reserved unit numbers for screen/keyboard. You would be better using units 11 and 12.
When devising this code, you need to address the record structure in the 2 files, as a simple vector could be used. You can control the line length with the format. A format of (1x,8f10.6) would create a record of 81 characters, which would be much easier to manage.
Format descriptor f10.6 also limits the range of values you can manage in the files. Values >= 1000 or <= -100 will overflow this format, while values smaller than 1.e-6 will be zero.
As #francescalus has noted, you have declared "h" as integer, but use a real format descriptor. This will produce an "Error : format-data mismatch" and has to be changed to what is expected in the file.
You should consider what you wish to achieve and adjust the code.
I want to generate a dynamic random variable like ASDF123 during Post request and it should range from 7 digit to 10 digit and it should be unique everytime(if in case 500 threads). This field is required to generate order numbers. I'm new to Jmeter so not much idea.
My Scenarios is like this: .> I have to generate a variable in combination of alphabets and letters(like this ->ASDF12345) for post then need to provide same variable to get to retrieve the same order for each thread. It is working fine if I generate random variable ie. minimum 1000 to max:9999 and passing same to post and get. But the req is that the order no. can be alphabets & numeric/numeric/alphabet. Please suggest how to proceed for the same. And yes everytime it should be unique.
You can use Functions as:
RandomString - First parameter how many characters (10 in your case) and second parameter choose your combination of alphabets and numbers:
${__RandomString(10,abcdefg1234567890)}
Use Random if alphabets can be constant, and then add a number with 7-10 digits:
ASF${__Random(1000000,1000000000)}
Or use JSR223 element to use Random in your programming language as Java/Groovy.
You can try this:
${__javaScript(Math.random().toString(36).toUpperCase().substring(16))}
In jmeter it must looks like this:
bash script:
for c in $( seq 1 10)
do
echo "random value #$c:$(echo "$RANDOM")"
done
output:
random value #1:20892
random value #2:20892
random value #3:20892
random value #4:20892
random value #5:20892
random value #6:20892
random value #7:20892
random value #8:20892
random value #9:20892
random value #10:20892
Unless you're using an old version of bash, there's absolutely no reason to resort to seq for generating that sequence of yours.
In addition, something like echo $(echo something) is totally unnecessary.
Changing the script for both those concerns:
for c in {1..10} ; do
echo "random value #$c:$RANDOM"
done
gives you something that generates the correct data:
random value #1:3394
random value #2:6099
random value #3:21492
random value #4:17973
random value #5:22698
random value #6:15844
random value #7:28506
random value #8:1960
random value #9:23593
random value #10:17412
And, in actual fact, your original script also works (at least in bash 4.3.46) so I'm guessing you may have inadvertently stuffed up the RANDOM variable somewhere. You should be aware that unsetting that "variable" can cause issues with its use later on, and setting it to a specific value seeds the generator.
Hence I'd be looking for something in your bash per-shell startup scripts which possibly sets RANDOM to a specific value. Said script would be executed because of the $(echo $RANDOM) thing and may be fixed if you simply echo the value directly).
That would certainly cause your issue, as per the following demo:
for c in {1..5} ; do
RANDOM=7
echo "random value #$c:$RANDOM"
done
which gives:
random value #1:19345
random value #2:19345
random value #3:19345
random value #4:19345
random value #5:19345
Is it possible to generate 'Random number' variables in JMeter?
I have recorded a user journey
I have imported the journey into JMeter
I have to type in a unique 4digit id within my user journey test case
Its default to 2323 at the moment in jmeter
Is there a way of generating a random 4didgit number?
For example thread1: ID: 2323
thread2: 3334
thread3: 5643
Please refer to images below:
Use Random JMeter function
${__Random(0000,9999)}
The random function returns a random number that lies between the given min and max values.
Third parameter can be used as a variable name to save random value