Does JMeter support to test mobile application? - jmeter

Can we test mobile application either iOS/Android(Native/hybrid)App using Apache JMeter? If yes, what's the way?

You cannot test mobile application directly i.e. how long does it take to load, how responsive it is, etc. via JMeter. What you can do with JMeter is to simulate large number of mobile devices talking to your backend server to measure performance and also apply some client-side assertions to make sure that server's response is not malformed.
It is possible to record mobile application network activity via JMeter HTTP(S) Test Script Recorder as follows:
Add aforementioned HTTP(S) Test Script Recorder and a Recording Controller to Workbench
Make sure that host, running JMeter and mobile device are on the same network (i.e. use Wifi, not cellular data plan) and the host running JMeter is accessible (i.e. firewall software doesn't block port 8080)
Start JMeter's proxy
Configure device to use JMeter's proxy.
Launch your application and perform necessary actions
When you finished stop JMeter's proxy and copy recorded requests to Test Plan
Perform correlation and parametrization if needed
Configure Thread Group virtual users and ramp-up according to your load scenario.
Launch the tests
Analyze results
References:
JMeter Proxy Step by Step
Load Testing Mobile Apps. But Made Easy.
Parametrization in JMeter
Guide to JMeter Regular Expressions

Related

Performance Testing Acrobat Reader(Standalone)

I am trying to run a performance test of an acrobat reader(PDF). The pdf load's an authorization page and need to capture that to sign in to load the PDF content. Need some thoughts on how to capture this using Jmeter
Load testing Acrobat Reader per se doesn't make a lot of sense (as long as you are not an Adobe employee).
If you need to simulate hundreds/thousands of Reader instances opening the authorization page it's sufficient to simulate the network footprint.
If the protocol is HTTP or HTTPS you can even record the traffic using JMeter's HTTP(S) Test Script Recorder. It respects operating system proxy settings so you need to
Set your OS to use localhost as the proxy host and 8888 as the proxy port
Import JMeter's self-signed certificate into Trusted Root Certification Authorities store
Perform the actions in the Acrobat Reader
JMeter should capture the associated network requests and generate relevant HTTP Request samplers
See How to Do Desktop Performance Testing article for more information.
If protocol is not HTTP(S) - basically the same approach: capture the traffic using a sniffer tool like Wireshark, identify the protocol, choose the relevant Sampler and configure it to send exactly the same request(s) as Acrobat Reader does

JMETER Record a scenario that contains calls using microsoft remote desktop protocol and check 3 party tool activity and come back to application?

My scenario is given as below :
I login into application and upload a doc file then request send to server where thrid party tool (doc to pdf)is running and convert doc file to pdf and send file conversion status pass\fail on application. Can i Record scenarion in JMETER that access microsoft remote desktop protocol and check third party tool activity and come back to application?
Thanks,
Raman
If you want to "record" the RDP protocol the answer is "no", JMeter's HTTP(S) Test Script Recorder can only record HTTP or HTTPS protocols, other traffic will not be recognized.
If you want to take some screenshots of the remote Windows machine you can use i.e. JavaRDP library from JSR223 Test Elements
If you need to read the conversion log and add it to JMeter test results it might make more sense to consider connecting to the machine using PowerShell Remoting from the OS Process Sampler.
Check out How to Run External Commands and Programs Locally and Remotely from JMeter article for more information on the concept and example configurations.

How to record actions using JMeter, using wired connection?

I have followed most of the JMeter tutorials, but there's one thing that prevents me from testing our app specially iOS. I can't be in one network. We have a separate network for both Mobile and Desktop/Laptop. Is there any way that I can record JMeter using Wired Connection, instead of WiFi? Thanks!
If you have to use JMeter for recording mobile device activity you could go for USB Tethering, this way your computer becomes connected to the iOS device network hence JMeter should be able to capture the traffic.
An easier option would be going for BlazeMeter Proxy Recorder, as a bonus you will have possibility to export recorded scripts in "SmartJMX" mode with automatic detection and correlation of the dynamic parameters.

Can we record desktop applications using JMeter

Could some one please help me on the below
Is it possible to record desktop applications using JMeter?
I just tried the following, but didn't work
File--->Template--->Create
Workbench--->Recording Script-->Start
Launched my application which is desktop and perform some actions
Workbench--->Recording Script-->Stop
When I expand Threadgroup--->Recording Controller-Nothing recorded
Where am I missing?
You miss one important step:
configure your desktop application to use proxy and provide host and port where JMeter is running (localhost and 8888 if they live on the same machine
Also be aware that:
JMeter can record only HTTP or HTTPS traffic, if your application uses other protocol - the calls will not be recorded. In that case you can consider The Grinder as an alternative, it comes with TCPProxy which is more low level therefore is cable to capture more protocols
If your application uses HTTPS protocol you will need an SSL certificate in order to decrypt and record the requests, you can configure your application to use JMeter's certificate or vice versa.
On MS Windows you may need to add a Loopback Adapter
See How to Run Performance Tests of Desktop Applications Using JMeter article for more details on simulating multiple desktop applications using JMeter
As help explains:
The recorder is implemented as an HTTP(S) proxy server. You need to set up your browser use the proxy for all HTTP and HTTPS requests.
Technically browser is also a desktop application, so to answer your first question, yes, you can record desktop applications using JMeter. However, just like browser, your desktop application must have an ability to connect to the internet via user-defined proxy. And also recorder will only record HTTP traffic from and to the application, it will not record client-only UI events, or traffic generated by any other protocols.
So to sum up:
Any desktop application can use JMeter recorder
But only if you can configure it to use JMeter recorder as a proxy
And only if your goal is to record HTTP traffic related to your desktop application, nothing else.

Desktop based application recording in jmeter

I have a desktop based(.exe) application used for trading of equities.
1.Developed in VB uses TCP/IP.
2.Uses a database server which is an another server which the exe sends requests on.
3.I want to get the entire response using jmeter for 50 users at a time.
I wanted to record the responses for the transactions.I have worked with web applications where we create Http proxy server and start it and the recording happenes from browser but in this case i cant use browser.
Please guide me how to record the responses in jmeter with .exe applications.
Thanks and Regards,
Kumar
JMeter HTTP(S) Test Script Recorder is capable of recording only HTTP or HTTPS traffic so if following conditions are met:
Your .exe application talks to server using HTTP
Your .exe application can be configured to use HTTP proxy or respects Windows global HTTP Proxy settings from registry (or configured in Internet Explorer)
the answer is "yes", you can use JMeter to record the traffic. See Load Testing Mobile Apps. But Made Easy. guide for details on how to do it.
If one of above conditions cannot be satisfied there are following options available:
If you still want to use JMeter there is a possibility to use a sniffer tool like Wireshark to capture requests and manually construct them using JMeter HTTP Request or TCP Sampler.
Consider switching to Grinder tool which offers TCP Proxy
Hope this helps.

Resources