Use placeholder (or generate unique id) using wiremock with jmeter - jmeter

I'm using JMeter for load test, and mocking external service using wiremock.
I'm using JSON files to mimic the responses from those external service,
one of the
{
"response":"459ada78-842b-4229-b9d8-4dcdb52aa738"
}
It is very simple response with only 1 UUID field, the problem is on my side this is must be unique everytime i call the service
Is there any way to regenerate that id from the mock file or using some kind of placeholder instead of static value

Use JMeter's __UUID function
${__UUID()}
will return UUIDs with this format : c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd

Related

How can i generate a coulmn value as a random value in a csv file while doing load test with Jmeter

I am using Jmeter for load testing. I am passing parameters of the body from a csv file for an api. But our application will not receive the duplicate value. So when i load test by multiple users, the request get failed.because i am passing same parameter value for all users.So i need to make some of the columns with an instant value(random). so that different users will get different values.
{
"clinic_name":"clicnic",
"first_name":"provider1",
"initial":"v",
"last_name":"doc",
"salutation":"salu",
"address_1":"testttadd1",
"address_2":"testtttadd2",
"city":"ckdy",
"state":"Arizona",
"zip":"12365",
"fax":"",
"email":[{"email_id":"dfdf#dzcz.in","type":"Work","note":null}],
"phone":[{"number":"1235974444","note":"","type":"Mobile","extension":""}]
}
here i have given the request body and i need different email for different users. How can i do this?Can anyone help me..Thanks in advance.
you can use __RandomString function for the value of email_id:
"${__RandomString(15, abcdefghijklmnopqrstuvwxyz)}#${__RandomString(10, abcdefghijklmnopqrstuvwxyz)}.in"
The easiest is using Faker library like:
Download Java Faker jar and drop it to JMeter Classpath
Restart JMeter to pick the .jar up
You can use the following __groovy() function directly in the HTTP Request sampler body:
${__groovy(new com.github.javafaker.Faker().internet().emailAddress())}
Alternatively you can put the above expression into your CSV file, however make sure to wrap the variable reference into __eval() function, for example if you had ${email} you will need to change it to ${__eval(${email})}

Using UUID in JMeter for Post Data

I have to perform load test using JMeter on POST REST API which send JSON data in the request body as follows
{
id="",
name="abc",
age="34"
}
I want to use UUID feature in JMeter to auto generate UUID for the value of "id" which should be unique for every record created in the backend.
The value for "id" should be unique for every Thread executed in that Thread Group in JMeter.
Just use __UUID function
{
id="${__UUID}",
name="abc",
age="34"
}
If you're looking to learn jmeter correctly, this book will help you.

How to add key with unique random value in HTTP Request defaults in Jmeter

I am trying to apply load sample request is like
http://54.174.110.64:8080/adserver/html5/inwapads/?adFormat=preappvideo&ak=O4DCX2&version=1.0&adu=5&cb=1494853894218&output=vast&priority=1&size=[vdo_adSize]&pageURL=http://qa.vdopia.com/qa/Ruchi/ssp_preroll1.html?0.7888977&domain=vdopia.com&refURL=&category=[CATEGORY]&siteName=vdopia&displayManager=Vdopia-SPP-Web&di=[COOKIE_ID]&dif=fpcm&sex=[GENDER]&age=[AGE];ipAddress=203.122.9.130;di=abcdefghijklmn
I have single request, what I want is that same request should have unique di (last key in query param). Nothing else I want to change.
My test is based on unique di in request keeping other parameters constant.
You can use Random function.
Hint:
I would suggest using __UUID() function which will generate a GUID structure which is unique according to the underlying algorithm each time being called.
If you don't like dashes you can remove them via __groovy() function like
${__groovy("${__UUID}".replaceAll("-"\, ""),)}
Demo:
See Apache JMeter Functions - An Introduction to get started with JMeter Functions.
I have used below approach :
ad di=${di_random}in path of HTTP request

HTTP Request path needs to be parameterized with UUID and a random URL

URL format is
www.something.com/something/api/{uuid}?code=gomundw0gjq2kbvc3g63whfr9usap5rurjaq5vui5vm6xbt9hhqa8hbcpto4yatwpn26v42t9
I need to make several calls to this GET Url and check performance of the feature.
uuid here is not just the UUID , but is specific to my application
UUID= accountid+identifierid+uuid, which will look like 1234+1234+123e4567e89b12d3a456426655440000
How should I arrange my Jmeter Test Plan.
My Plan would be:
write UUID generated to a file
Using any preprocessor call the file from file and write program to append to a different value in the csv which is account/identifierid.
Please help on this, can some one explain how I should logically arrange my test plan and code to get data to parameterize my path in HTTP Request sampler.
Thanks in Advance
You need to get accountid+identifierid information stored into CSV file. This is something you need to do on your own.
You can use CSV Data Set Config in order to get the information from that file while your test is running, example configuration would be:
UUID can be generated using __UUID() function
So your HTTP Request sampler configuration would be something like:

How to use JMeter to create a resource with POST, extract Location, and then subsequently update it with PUT

I would like to profile a REST API using JMeter. I would like to write the test plan such that each user thread performs the following actions:
creates a new resource using HTTP POST
If HTTP 201 Created is received, then extract the new resource URL from the Location header of the HTTP response.
Subsequently update the resource using HTTP PUT
Loop in 3 and measure the response time
It's unclear to me how to use JMeter's conditional logic to break up the tests into these discrete parts. I would appreciate any insight anyone can provide on how to implement this.
You need to use If Controller to express this logic.
You can use Regular Expression Extractor to extract Response code (In field to check, check it and extract response code in a Variable)
Use the previously extracted variable in the If Controller condition

Resources