How to send a GET request with JSON body in JMeter? - json

I am facing some issues as JMeter doesn't take the JSON body passed as a parameter. I tried through postman and it was working fine but for Jmeter it is not working
I am expecting a response from get request with JSON body in Jmeter

We're not telepathic enough in order to suggest you how you can fix your "some issues" without knowing the details of the "issues"
JMeter can send the GET request with the JSON (or any other) body
If the request works in Postman and doesn't in JMeter most probably you're not sending the same requests, the most common mistake is that people forget to add a HTTP Header Manager configured to send correct Content-Type header.
Just use a 3rd-party sniffer tool to intercept requests originating from JMeter or Postman, identify the difference(s) and amend your JMeter configuration so the requests would be exactly the same. Alternatively just record the request from Postman using JMeter's HTTP(S) Test Script Recorder

Related

Response code: 418 'I'm a teapot' in jmeter

I've been trying to test the API of restful-booker in Jmeter. But whenever I try to create a booking or Get a Booking by id I'm getting the HTTP response:418 'I'm a teapot'.If I try to access the URL in the browser it says the same. But when I run this in postman it does not give any kind of error. Also, it shows the correct response in Code Beautify. Really frustrating. Is there any way to resolve it?
If you're capable of successfully executing the request in postman (or whatever else tool) and not able to do it with JMeter most probably you're sending a different request.
Check out literally everything: URL, headers, body, etc. - all matters.
There are 2 approaches:
Use a 3rd-party sniffer tool like Fiddler or Burp to capture the requests from postman and JMeter and compare them for differences
Or just record the request from Postman using JMeter's HTTP(S) Test Script Recorder, JMeter will capture the request and generate relevant HTTP Request sampler and HTTP Header Manager
Problem is here: you forgot add accept: application/json in jmeter, postman automatically adds this setting.

Jmeter is not handling huge JSON payload

I'm trying to execute the Jmeter script POST call with some 55 thousands of line JSON payload, with this request I see the error as 500 in the Jmeter tool and also seen JSON parser error in the log-entries.
I think Jmeter is not handing with these huge request payload and not parse the correct JSON data to server.
NOTE: With the same payload I am able to execute the API via POSTMAN.
Please suggest how to handle huge payload in the Jmeter.
Thanks,
It might be a copy-paste issue, I would recommend using __FileToString() function directly in the HTTP Request sampler body like:
${__FileToString(/path/to/your/file.json,,)}
A better idea would be going for HTTP Raw Request sampler which has nice feature of streaming the file directly to the server without loading it in memory first

JMeter to test java rest Api

How can i pass the json for post method if my json is like:
{
"REQUEST":{"REQUEST_BODY":{"Account_Name":"ak"}}
}
It gives me an error at time of parsing json value
In postman it run properly
In HTTP Request use Body Data tab and of course fill-in Server Name, Port Number, Path and Update Method if needed:
And under HTTP Request add a Header Manager:
And add to it required headers:
Note Content-type might be different for you.
If your request works in Postman you can just record it in JMeter:
Configure JMeter for recording, the fastest way is using JMeter Templates feature
From JMeter's main menu choose File - Templates - Recording - Create
Expand Workbench - HTTP(S) Test Script Recorder and click "Start
Configure Postman for recording. You can "tell" Postman which proxy server to use (JMeter in your case) via --proxy-server command-line argument
C:\Users\your_user_name\AppData\Local\Postman\app-x.x.x\Postman.exe --proxy-server=localhost:8888
Execute your request in Postman
JMeter will capture the request and store it under Test Plan - Thread Group - Recording Controller
References:
Apache JMeter proxy Step-by-step
How to configure Postman Native Client App to use an external proxy

How to pass parameter and json both in http request request body in jmeter?

I need to pass those parameters and JSON in a request body of HTTP request in Jmeter.
UserId=47&Token=c41240ca195c47b7821465d328d5af16&ClientId=1&meeting={
"InternetConnectionType":"WIFI",
"DeviceID":"3d6f9c346da00a32",
"NetworkCarrierName":"VODAFONEIN",
"BatteryValue":"22",
"AppVersion":"1.1.3",
"OSVersion":"4.4.2",
"InLongitude":"77.0384036",
"Remarks":"hii hcl",
"LastPhoneRestart":"Wed Jun 15 14:32:14 GMT+05:30 2016",
"OutDateTime":"20-06-2016 11:54:09",
"OutLongitude":"77.0384036",
"IsApproved":"0",
"SimNo":"",
"OutLatitude":"28.4181932",
"AttendanceType":"G",
"InDateTime":"20-06-2016 11:54:08",
"GeofenceAssignedId":"10114",
"LastWifiNetworkName":"YomaTech",
"InLatitude":"28.4181932",
"IMEINo":"359453066495811",
"DeviceDateTime":"20-06-2016 11:54:08",
"GeofenceId":"1"
}
Something like:
Out of interest and just in case it helps to avoid similar questions in the future: why don't you just record your test scenario with JMeter's Proxy Server or JMeter Chrome Extension?
I have tried below solution in JMeter 4, and it worked for me.
Follow below steps:
1) Add "HTTP Header Manager"
2) Add required headers and parameters in key-value format
3) Add "HTTP Request
4) Provide server name, port, method=POST and path
5) Select Body Data tab
6) Enter json body
Hope it helps.
I tried solve similar problem in current version of Apache JMeter 5.1.
I set up JSON body for HTTP Request element (bookmark Body Data).
Added parameter into HTTP Default element (bookmark Parameters).
In this case parameter were added after JSON body and test fails for bad JSON format.
My solution was added parameter into path in HTTP request. But default behavior seems little buggy for me.

Track navigation with jmeter

I try to make a stress test with jmeter: i set up jmeter proxy to record navigation and everythings is ok.
I have some problem with a page wich has a json request called by javascript: using the jmeter proxy this request doesn't works.
With firebug I can see that the response of json request is
{"error":{"msg":"couldn't parse request arguments","code":590}}
It seems that jmeter proxy modify the parameter request.
With this error, I cannot use this page: any suggest?
Thanks
Aldo
JMeter isn't able to execute JavaScript, you'll need to construct the request manually. Perhaps you'll need to get some parameter(s) from page source via Regular Expression Extractor. Once you figure out correct request make sure that you'll add Content-Type header application/json via HTTP Header Manager