I try to make load testing using protobuf protocol. The incoming response has a binary format and not readable in View Result Tree (VRT), kinda:
But I can to convert this hell to the readable format like normal String in the BeanShell PostProcessor.
The question is is there any way to change the information which is showing VRT?
Used prev.setResponseData() and prev.setMessageData() - do not work.
UPDATE:
ok it`s work with prev.setMessageData() but the messages is visible on Sampler result tab:
Use SampleResult.setSamplerData()
Example:
prev.setResponseData( decodedString);
prev.setDataType( org.apache.jmeter.samplers.SampleResult.TEXT );
Related
I am getting the response,and i want to send this value encode and next request,in UI i tried check encoded,looks still not working fine,is there any other way we can encode the response value.
In the screenshot in getrooms response i will get rate_id in decoded,so this value i have to encode and send in next request,please help
The response rate_id encoded value have to send in next call price check as a param.
Encode rate_id value.
"rate_id":"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"
It is not possible to come up with the comprehensive solution without seeing the full encoded data in text form, not as the image so consider extracting this rate_id from the response using JSON Extractor
It might be the case it's something easy like Base64, in that case you can use i.e. __base64Decode() function
Otherwise you need to determine the algorithm and once done you will be able to decode the data using JSR223 PostProcessor
How to parameterize request if I am getting something similar to the following for login POST request in body data tab.
"{\"msg\":\"method\",\"method\":\"login\",\"params\":[{\"user\":{\"username\":\"testuser\"},\"password\":{\"digest\":\"5811c74a581ffdb892ab9eddfb9cf2d21772a98332a59de6aa26989e01f84057\",\"algorithm\":\"sha-256\"}}],\"id\":\"7\"}"]
It's generally easy to correlate when we are getting in Parameters TAB, but in cases how we can proceed? For all further requests - it's the similar case.
I tried to switch to Parameters TAB, but it says that it can not be converted to that format.
So How we can proceed?
The same way, just substitute hard-coded (recorded) values with the relevant JMeter Variables directly in the request body like:
"{\"msg\":\"method\",\"method\":\"login\",\"params\":[{\"user\":{\"username\":\"${username}\"},\"password\":{\"digest\":\"${password}\",\"algorithm\":\"sha-256\"}}],\"id\":\"${id}\"}"]
The most commonly used for parameterization test element is CSV Data Set Config, however other options exist.
How can I format json response in jmeter?
I don't want to tell which part of json answer
should be showed. I want to see my response not as
very long one line but as many lines formatted with new lines and
tabs/spaces.
I saw:
http://eclipsesource.com/blogs/2014/06/12/parsing-json-responses-with-jmeter/
Jmeter extracting fields/parsing JSON response
Thanks in advance!
I believe JSON Formatter PostProcessor is what you're looking for
If it is not suitable for you - take a look at JSR223 PostProcessor, it provides prev pre-defined variable (basically SampleResult instance) which gives read/write access to the parent sampler(s) response data so you will be able to do anything you want with the response using Groovy language
I've used Fiddler to capture these HTTP calls. Here's the problem:
I have a HTTP-POST data that looks like below:
Notice how it has many 'employeeIds' and also 'shiftSumIds'.
Now, these Ids are from a previous HTTP response that looks like below:
Is there an easy way to extract those Ids and prepare the POST data? Thanks in advance.
--Ishti
Short answer is JSON Path Extractor available via JMeter Plugins which is designed for getting "interesting" values from JSON data. See Using the XPath Extractor in JMeter guide (look for "Parsing JSON" chapter) for installation instructions and some form of JSON Path language reference.
If it is not enough and you will need some assistance in constructing JSON Path query and building HTTP Request from it - please include text version of response and request using i.e. http://paste.org service as reading large amount of text from small screenshot isn't very handy and chance of getting the answer is minimal
I am building out a test suite in jmeter and want to set the assertions to the initial responses that I get from the api calls. Is there any way to do this besides copy pasta?
For clarity each individual call has its own assertion, which for the moment is the response it is receiving.
I want the assertions to be populated by the responses.
If I understood currectly - you are coming up with some JMeter-Baseline script - you also assume that the response you get now is correct - that is what you expect to get it in future as well , so you want to put the response data in the assertion.
If yes, JMeter will not remember the initial responses. So you need to create your script accordingly.
You can have a beanshell postprocessor to write the the responsedata in a CSV file. Later you modify the script to look for the assertion string from CSV file to compare. This is the statement to get the Response Data.
prev.getResponseDataAsString()
As per How to Use JMeter Assertions in 3 Easy Steps guide, JMeter Assertions have their scope.
If you put an assertion at the same level as all requests it'll apply to all of them. See image below for explanation:
I would use a CSV file with the URL and the assertion string you want to match.