Load testing Silverlight Application - silverlight

We wanted to perform load testing of a silverlight application. We only need to test for max of 50-75 users
Wanted to get inputs if we can use JMeter and if yes, how can we go about it.Also, please do suggest if there are any other possible alternatives and cost associated with them.

You cannot load test Silverlight application with regular HTTP samplers as the protocol is binary and needs to be decoded before being able to:
variabilize
correlate
In order to do so, you would need to develop a plugin for this technology which might not be easy.
Some interesting elements:
http://jmeter.apache.org/usermanual/jmeter_tutorial.html
http://jmeter.apache.org/usermanual/component_reference.html#Java_Request
http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler
Alternatively, you could have a look at other solutions.

Silverlight runs on client side therefore I don't see a lot of sense in load testing it as it will always have only one user.
If your Silverlight application assumes a backend and you need to know if the backend is capable of handling 50-70 concurrent users - you could use JMeter for this. In the absolute majority of cases Silverlight applications use SOAP web services for communication between client application and the backend and SOAP is something JMeter naturally supports via its HTTP Request sampler, check out Building a SOAP WebService Test Plan User Manual chapter for more details.
Alternative options are in:
If your Silverlight application functions are exposed to JavaScript you could use JMeter's WebDriver Sampler to kick off real browsers, invoked functions methods and render the results.
Alternative to JMeter would be HP LoadRunner which seems to support Silverlight up to certain extent (not more than JMeter doesn however) and is free up to 50 concurrent users.

Related

Jmeter : How to perform load testing on AngularJS based web application?

I am unable to perform load test angularjs based web-application. Please share suggestion and example if there is any.
If we can not perform load test on angularjs using jmeter then please suggest any tool or any approach.
Thanks!!!
Load testing tools are backend-agnostic, to wit they don't "know" anything regarding underlying technologies stack of the web application.
Just remember one simple requirement: load test must represent real life application usage. It means that each JMeter thread (virtual user) need to impersonate a real user using a real browser and accessing your application.
Real browsers in their turn don't do any magic, they just send HTTP Requests and render the responses. JMeter doesn't actually "render" the response, JMeter waits for the response and measures the time taken.
So the answer is YES, you can use JMeter (as well as any other testing tool) for load testing an Angular web application, just make sure that load pattern generated by JMeter matches the one which real browser generates.
The most tricky thing is implementing AJAX requests, due to their asynchronous nature they're incompatible with JMeter threads model therefore if your application relies on AJAX technology you will need to precisely mimic AJAX calls as well. You can use Parallel Controller for this (Parallel Controller is not an integral part of JMeter distribution, it's a plugin which can be installed using JMeter Plugins Manager)

What is the best way to simulate real time performance testing in Mobile browsers?

I am working on Mobile Testing of Web Application. I have done real-time performance measurement in chrome browser using JMeter and Web Driver sampler.
Now, I want to do the same in real mobile devices.
For example, if 10 users need to log in, I want to simulate it in multiple mobile devices. Kindly suggest me the best way to do the mobile performance testing.
Since I am working on a web application, it mostly involves in Chrome browser and gmail app's default browser.
If you want to simulate multiple users concurrently accessing your application backend the best way would be going for JMeter's HTTP Request samplers as real browsers are very resource intensive.
Record your mobile device network activity using JMeter's HTTP(S) Test Script Recorder, check out Load Testing Mobile Apps Made Easy guide for instructions.
If your goal is to simulate different devices you can configure relevant User-Agent header in the HTTP Header Manager
Set up as many threads as needed in Thread Group
Run your test and analyze results

How to do performance testing for multiple user using Chrome Dev Tool for angular JS Web Site

I have developed an Angular JS Web Console. Web Console is basically creating, deleting, retrieving and deleting Users.
I want to do its performance testing using Chrome Dev Tool or Jmeter
If I use Jmeter how can I actually monitor the behavior of web console itself because from Jmeter I can only check the response time of API.
If I use chrome dev tool then how can I test it for multiple users against post and get operations.
For Example I have a Scenario that 10 Users are registering or signing in at a time. How can I test this behaviour.
OR
50 Persons are creating or deleting or retrieving a user using a form at a time.
OR
What will be the behavior of web console if 50 users are using web console at a time.
NOTE: Web Console is deployed on server. I want to test it locally and on server as well.
Need help. Thanks in advance!
Server side performance and client-side performance are different beasts so you can break down your performance testing requirements into 2 major parts:
Conduct the required load onto your web console using JMeter HTTP Request samplers. Make sure you configure JMeter properly to handle cookies, cache, headers, embedded resources (scripts, styles, images). See How To Make JMeter Behave More Like A Real Browser article for comprehensive explanation with regards to how to configure JMeter properly. If you need the requests to be fired in exactly the same moment of time also consider Synchronizing Timer
As JMeter neither actually render pages nor executes client-side JavaScript you can check client-side performance using one of below approaches (or any combination)
Using YSlow software
Using aforementioned Chrome Dev Tools
Using WebDriver Sampler (which provides Selenium and JMeter integration) so you will be able to measure page rendering time. If necessary you can add custom scripting logic using Navigation Timing API to get some extended information on page loading events in automated manner

Consuming an encoded SOAP service on Silverlight / WP7

I have a .wsdl file defining a web service, and I want to generate a client object to use the web service. Generating this is unproblematic in a normal .Net project, but it fails when targeting WP7 (the client object gets generated, but does not have all the methods it should have). When doing this directly using SlSvcUtil.exe I get the error message that it does not support operations using SOAP encoding (use='encoded').
The service is run by a third party, and I can't change it.
One solution would be to set up an intermediate server to translate to a format I can read, but I'd like to avoid that. What are my other options? Are there any non-MS libraries that can do this code generation for me? If not, how big of an undertaking would it be to parse the SOAP manually?
I had the same problem and found no solution. It seems there is a lack in the use of SOAP services, when targeting WP7.
In my case I ended up writing my own client class to parse the SOAP manually. The effort was kept within limits but it depends of the complexity of the service.
For more informations about the SOAP protocol I can recommend w3cschools SOAP Tutorial.
It can also be helpful to generate a client object in a normal .Net project and then investigate the network communication with SOAP webservice with fiddler or wireshark.

Silverlight: discover and invoke webservice dynamically

I have a Silverlight application and I would need to be able to get data from practically any webservice. I'd like to provide the functionality for the user to specify an URL of a webservice during runtime, then my app would discover the service and offer some UI to select the webmethod and fill the necessary parameters. Then the user could call the webservice and the app would display the data on the UI.
How can I achieve this?
I assume you mean a SOAP web service? There are many components in .NET that you would normally want to use for this (e.g. WCF's metadata download and client proxy generation functionality, based on CodeDOM, as well as various classes for dealing with WSDL and XSD schema). Unfortunately, these are not present in Silverlight. So, I can think of two approaches:
1) Manually implement a general-purpose SOAP client in Silverlight (i.e. manually implement metadata download, WSDL parsing, XSD parsing, etc) - this will be very difficult unless you can find some existing code for this that you can adapt to Silverlight (and even then it's probably still very difficult)
2) Do it through the server. The server will do all the difficult parts, and Silverlight will just display the UI. Still not an easy task, but possible; You can start by reverse-engineering how the WCF Test Client application works by using Reflector and go from there.

Resources