How to test load on Set of different API's - rest

I am doing load testing in Soap ui and working on cab booking application so set api like this for example
userSingin ,GetlocationDetails,bookCab,getDriverDetails,acceptRide and completeRide so on.
It will become on loop(on completing of one ride successfully ) so this seniors may happened like 1000 or 10000 times.
The question is how to interlink api do it a single entity and perform load test using soap ui, jmeter or any load testing tools,or by coding please help me sort out problem with simple demo.

SoapUI has some load testing capabilities so given you have a functional test ready you can run it with increased load.
If SoapUI's load testing is not enough (i.e. you cannot create the desired load or find results not too verbose/informative) you can build the same test plan using JMeter's HTTP Request samplers. If you need to send custom Content-Type and SOAPAction headers - it can be done via HTTP Header Manager. See Building a SOAP WebService Test Plan article for more details.
Last but not the least, you can either execute existing SoapUI project using JMeter using Taurus tool, see SoapUI Support for more details on the specific feature and Navigating your First Steps Using Taurus to get familiarized with the tool and its concept.

Related

How to measure performance/load time of dashboard charts?

I need to do performance testing over dashboard which contains different types of charts in a web page. All I have is JMeter now and I want to improvise the testing for dashboards / charts.
Kindly suggest me your ideas on how to do performance testing over multiple charts in a web page.
We are using Jasper Reports for data fetching and charts are made using JS components.
I need to measure the charts total load time of all the charts along with data i.e. I need to measure load time with complete UI loaded.
Thanks in advance.
First of all, have you seen Performance Testing with JMeter chapter? It explains how you can use JMeter for recording your scenario in browser and converting it into JMeter .jmx script.
JavaScript doesn't do any magic, it generates HTTP requests which can be intercepted with JMeter's HTTP(S) Test Script Recorder and replayed with increased load later on.
I would only suggest considering using Parallel Controller as AJAX requests are often being executed asynchronously (in parallel) and well-behaved JMeter test must act exactly like real user using real browser.

No SOAP/XML-RPC Sampler exists in JMeter 3.2

I was a bit surprised that my JMeter 3.1 scripts didn't work in 3.2.
What is the reason of removing SOAP/XML-RPC Sampler in JMeter 3.2? Is there some performance issue etc?
This is part of the JMeter's change due to remove support of HTTPClient 3.1.
SOAP/XML-RPC Request has been removed as part of Bug 60727. Use HTTP
Request element as a replacement.
See Building SOAP request for more details.
If you want to create/update SOAP XML RPC Requests with new jmeter versions then do following things.
List item
open Templates(right side top under 'File')--> Select Template Dropdown--> Building a SOAP WebService Test Plan ->Click on Create --> The Sample SOAP test plan with get created.
List item
Under Number of Users -->HTTP Request(SOAP Request) sample will get created.
Note: sample http link of weather api is now changed, So you cant see any response.
SOAP API option has been deprecated from JMeter updated version.
SO if you have any previous script for the API, then it will not work in updated versions of Jmeter.

Load testing using Jmeter of Elastic Search API Queries through CSV

Load testing using Jmeter of Elastic Search API Queries through CSV
I want to perform load testing using Jmeter of Elastic Search API queries which I will pass through CSV.
Please give me suggestions, what should be things I should Consider before doing that and what kinds of graphs that I should look in to, and what plugins should be installed in Jmeter
Get familiarized with the concept of web applications performance testing, load patterns, performance metrics, etc. See Performance Testing Guidance for Web Applications as an example reference material
Build your test plan "skeleton". Implement requests to web services endpoints using HTTP Request samplers. You may also need to add a HTTP Header Manager to send at least Content-Type header. See Testing SOAP/REST Web Services Using JMeter article for details.
Once done validate your script by running it with 1 virtual user and View Results Tree listener enabled. Check request and response details to see if your test is doing what it is supposed to be doing.
If your test works fine - add CSV Data Set config to your Test Plan and replace the values you would like to parameterize with the JMeter Variables originating from the CSV file
Repeat step 3 with 1-2 users to see whether your parameterization works as expected.
Now it's time to configure your load pattern (number of virtual users, ramp-up, test duration, etc.) and run your test
Analyze results using JMeter Listeners and/or HTML Reporting Dashboard

Test symfony restful api with phpunit and doctrine

I'm trying to pull-of some tests for my RESTful api functions.
For this I did the following:
Installed PHPUnit.
Created a new database for testing.
Created a new enviorment (test) and changed the doctrine config for it.
Created a test.
My problem is this:
When performing a request (somedomain.com/api/somemethod) -> the requested page doesn't know i'm performing a test on it -> so the data it uses is the production/development database and not the 'test' db i have created for the tests.
(the script using test db, the requested page uses normal configurations).
Is there a way to solve it without touching or modifying the API code/behavior?.
Thanks.
Since you said you're requesting somedomain.com I can only suspect you're firing requests over HTTP.
Symfony is made to be easily testable and you can perform functional test without ever making a real HTTP request. Instead, it will make a request object and tell it's kernel to handle it as if it were coming from a real client.
There is a chapter in symfony book on this: Functional tests
If you use method described there (using Symfony BrowserKit client and paths instead of complete urls), Symfony will have it's kernel booted in test environment and will handle request like that.
If, however, for any reason you are unable/don't want to do it that way, and want to fire real HTTP requests, I suggest you to make a file in web directory called app_test.php. In that file you should boot the kernel in test environment and make sure your tests are actually hitting that file (instead of app.php or app_dev.php). However, have in mind that this file will be publicly available and as so, it will cause a security hole so make sure to guard it somehow (check app_dev.php for hints). As an idea, you could require specific key to be provided in request header to allow it to pass on. Or if it will be tested from a single machine, you could also guard it by IP, or whatever works for your case.

Stress testing with simulated browser behaviour

I tried JMeter and it's great but fails in what I need.
Basically I'm testing an ASP script that returns frameset to the client. When frameset renders it calls a couple of other asp scripts which render in separate frames. When I test this with JMeter I only get results for the output of the main script that renders first. JMeter is not behaving as browser would and is not trying to render the html that it receives, and therefore not requesting separate asp scripts and doesn't render them.
The application I'm trying to test is "Aquaforest Tiff server". And I need to know how much time it needs to load tiffserver, along with tiff images from the storage under large number of concurrent connections. Is there a way to actually simulate browser behavior and to render the script that is returned as a response and measure response times all together from start to end???
PS. If I was not clear enough, please tell me... I'll try to elaborate more if you don't understand what I'm talking about here...
Try Selenium or Google WebDriver. You can write unit tests to remote control Firefox and IE. We're doing that for integration tests and it works fine. Occasionally, i pimp one of the integration tests to run multi-threaded in loops for benchmarking.
Visual Studio Test Edition should do the trick for you. A Visual Studio web test recording will record that the page requested the sub pages as dependant http requests.
However, you can still simulate the load correctly, you just have to instruct JMeter to do the http requests for the dependant requests. To record the complete array of http requests made, try using fiddler2 to record. Fiddler2 also works to record visual studio web tests.
I found the 'Retrieve All Embeded Resources from HTML Files' option under HTTP Request and it does download resources that are more deeply nested...
But I don't think this solves my problem, because I have some resources that are downloaded with use of javascript. And I don't see them downloaded in the Results Tree. Am I right?