Can we do Load testing for Video or Audio call in jmeter - performance

Is there any way we can do performance testing for voice or video call ? Jmeter or any other open source tools provide anything ? Please reommend any tool if we can achieve this.

It depends on a network protocol which is being used under the hood of the video and/or audio call.
First of all you need to determine which protocol(s) is (are) used by your application. It can be done using a sniffer tool like Wireshark. Once you know the protocol(s) you should be able to check whether JMeter (or other open source tool) supports this protocol or not.
The options could be in:
JMeter supports the protocol out of the box via one of its Samplers. For example if the protocol is simple enough and can be recorded and replayed you can capture the requests using the aforementioned Wireshark and simulate them with the TCP Sampler, however the chance it will work is minimal
JMeter supports the protocol via one of its Plugins
There is a Java (or other language) client library implementing the protocol, in this case you will be able to use JSR223 Sampler and implement the use cases in Groovy (or other language, but it has to be JVM/JSR223 compabitle) or JUnit Request sampler and implement the use cases in Java
The protocol is proprietary and there are no client libraries for it. In this case you won't be able to conduct the load test without reaching out to the call system vendor and asking them for the implementation details and instructions on how it can be tested.

You can use UBIK Load Pack which is a paid version for load test videos using JMeter with free trail
Realistic and Scalable Load Testing for MPEG Dash, Apple's HTTP Live, Microsoft Smooth and Adobe HDS Streaming formats

Related

Trying to Performance test an application developed in OJET technology. Which tool/protocol should I use for scripting?

Trying to Performance test an application developed in OJET technology. Which tool/protocol should I use for scripting? I tried HTTP/Web protocol with Jmeter and Load Runner. But that doesn't capture all the requests and responses at the javascript/browser level. Hence I am facing issues in correlating the dynamic values during test design. Hence, scripts fail during the replay. Currently trying to do it with Truclient Web protocol as an alternative. But I need to know which tool/protocol should I use for scripting?
According to OJET looks like this is a web app generator.
If you choose to start with JMeter use post-processor such as regex to catch and save every value that is needed for as arg in the next request.
Don't be afraid of these dynamic values. Try to follow next articles to get the idea.
None of tools will provide you automatic correlation without issue. Nor LoadRunner, nor Jmeter. It is always tricky.
Ask more specific questions when you start facing issue.
Jmeter catch correlations
You need to implement real user using your application with 100% accuracy in terms of network footprint
Both JMeter and/or LoadRunner are not capable of executing client-side JavaScript, the options are in:
Implement these JavaScript-driven network calls using scripting (in JMeter it will be JSR223 Test Elements)
Use a real browser, LoadRunner's Truclient protocol is basically a headless web browser, in JMeter can be integrated with Selenium browser automation framework via WebDriver Sampler
With regards to "which protocol/tool" to use:
Implementing JavaScript calls manually will take extra effort, however your test will consume less resources (CPU, RAM, etc.)
Using real browsers will take less efforts, but the test will consume much more resources (something like 1 CPU core and 2 GB of RAM per user/ browser instance) and you won't have metrics like Connect Time, Latency, etc.
LoadRunner TruClient. This will handle all of the Javascript executions and dynamic elements related to session, state, date/time, object identifiers, ... You will still need to appropriately handle user input items.

I am not able to record the webrtc protocol using jmeter

I have an android app in which we can do video call peers to peers using webrtc protocol. I want to perform performance testing of this app using jmeter but I am not able to record this. So guyz Please help me if anyone knows.
Thanks in advance
As it's evidenced by its name, JMeter's HTTP(S) Test Script Recorder can record only HTTP and HTTPS traffic, moreover I don't think you will be able to record and successfully replay WebRTC calls as they will differ from one virtual user to another.
If you have to load test your service using JMeter I would rather come up with developing a plugin or using JSR223 Test Elements and Groovy language, the WebRTC client/peer libraries you can use are:
webrtc-java
gstreamer-java

WinInet Implementation in JMeter

I am looking for a small help regarding JMeter. I have one application that is recorded in LoadRunner using WinInet setting (Port Mapping => Capture Level as WinInet).
Is there a way in Jmeter where we can have WinInet setting?
Out of the box it is not possible, JMeter uses either Java sockets or Apache HttpComponents in order to execute HTTP Requests with its HTTP Request sampler. No OS-specific code is included into JMeter so it can be run on all platforms
If your test relies on some very specific features of Windows Internet, be aware that there is no easy way of adding this functionality to JMeter
Developer audience
WinINet is designed for use by C/C++ programmers. It requires a basic understanding of the FTP and HTTP protocols.
So theoretically you can load the .dll(s) implementing WinInet protocol using JNI from JSR223 Test Elements using Groovy language and call the function(s) you need.
However my expectation is that you don't need this and you can just simply convert your LoadRunner script to JMeter using HTTP(S) Test Script Recorder or online LoadRunner/SoapUI to JMeter script converter
Check out How to Convert LoadRunner Tests to JMeter article for more details.

JMeter vs Gatling protocol flexibility

I read JMeter vs Gatling article and confused over section 9 Flexibility about JMeter:
Flexibility It supports only the HTTP protocol.
And Gatling
It supports HTTP protocol and also a few other protocols as well.
while in introduction it states other protocols for JMeter:
The different types of services can be tested by using the Apache JMeter tool such as Web Services, HTTP, FTP, JMS, LDAP, generic processes or different TCP connections etc.
What is the HTTP protocol restriction the article is referring to? what are Gatling other protocols that defer it from JMeter?
EDIT
Found another discrepancy in section 8 Ease of use, while JMeter describe as
It is a bit difficult to use.
And Gatling:
It is easier to use
It states the opposite in conclusion:
Finally, to conclude JMeter has more number of features and easier to use compared to Gatling.
JMeter supports multiple protocols:
HTTP 1.0
HTTP 1.1
HTTP 2 with 3rd party plugin
JMS
JDBC
LDAP
FTP
SOAP
UDP with 3rd party plugin
MQTT with 3rd party plugin
XMPP with 3rd party plugin
RTE with 3rd party plugin
SSH with 3rd party plugin
And it's highly extensible since its architecture is built with plugins in mind, as of now there are at least 73 OSS plugins and more than 10 commercial plugins.
There is no particular HTTP protocol restriction.
I think the blog is just wrong in formulation and considering all the other errors in it, I am not sure it is worth reading or trusting what is written.
As examples of errors or false statements:
it says JMeter has no dashboard which is wrong since it has the HTML report which contains 17 graphs and 4 tables since version 3.0
difficulty is relative and really depends on type of test being built. Is customization through scala in Gatling simple ?
do you understand this, I don't :
Apache JMeter supports recording the users’ clicks or actions while testing the web applications where as Gatling also supports the user actions and also any other simulated scenarios.
What about those statements :
Apache JMeter is less efficient and effective to be used with odd GUI features that are difficult to use where as Gatling has GUI as well as command line features that provide efficient and effective outputs.
=> What are odd GUI features ?
=> JMeter is an IDE for test building, Gatling uses the test as code approach
Apache JMeter does not have code scripting facility whereas Gatling has the code scripting facility. => Does the author know about JSR223 Test Elements ? functions ?
Apache JMeter has more number of lines of code to configure and setup the testing where as Gatling has less number of lines of code to be used in its’ configuration to run the load tests. => Really ? what are those ?
...

Performance testing of Thick client

I have a thick client application to be tested. We need to downlod the jnlp file and then launch it, supply required credentials and click submit. It then launches the application.
I'm newbie to performance testing and want to performance test this application. Which open source tool will be useful, which is the best tool for testing thick clients?
What do you mean by "Performance testing of Thick client"? If it is about how fast it launches, downloads or operates than you need to loop into desktop automation software. The best open source tools currently available for desktop testing automation are:
Sikuli
LDTP
If your application does network communication and your scenario assumes simulating hundreds or thousands of simultaneous thick clients communicating with the server using the following open-source tools can help:
Grinder
Gatling
JMeter
Tsung
If your application supports proxy (given .jnlp - it is Java-based application and it surely does) and the protocol is HTTP(S) you will be able to record test scenario and replay. The Grinder tool recording proxy can go a lower level and perform TCP protocol recording.
For more information on main features comparison for performance testing tools listed above look into Open Source Load Testing Tools: Which One Should You Use? post.
If your application uses a form of secure communication or proprietary protocol you should be able to replicate it's behavior by plugging your application libraries to JMeter, Grinder or Gatling and use their multithreading and reporting features to perform massive load testing.

Resources