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.
Related
I have a client/server configuration.
In the client I have an application that talks to the server by http/https withou a browser being used.
I want to know how to configure client and jmeter to record the http requests being send from client to server
The client is a Windows 10 machine.
There can be several options:
Your application has dedicated proxy configuration. In this case just configure it to use JMeter as a proxy
Your application respects OS-level proxy settings. For Windows 10 hit "Win + S" and type "proxy". Perform proxy configuration at all available locations:
If everything goes well you should be able to record your application network activity using JMeter. Refer to How to Run Performance Tests of Desktop Applications Using JMeter for a little bit more detailed information and some troubleshooting steps.
For load testing from different browser do we need to have all browser version on host machine or user agent change in existing script will work?
JMeter acts on protocol level, it builds HTTP requests using Java code and Apache HTTPClient libraries by default.
If application you're trying to test logic differs depending on browser you can mimic different browsers by sending the relevant User-Agent header via HTTP Header Manager.
Also consider the following settings:
configure your HTTP Request samplers to:
Retrieve all embedded resources
Use concurrent pool of 4-6 threads for this
This way you will be able to replicate browser behaviour when it comes to working with images, CSS files, JavaScript files, etc.
add HTTP Cache Manager to represent browser cache
add HTTP Cookie Manager to mimic simulate browser cookies, deal with cookie-based authentication, represent sessions, etc.
Check out How To Make JMeter Behave More Like A Real Browser guide for more detailed explanation of the above recommendations.
No.
A web-browser uses User-Agent to tell a server what kind of Browser and Operating System it uses. According to Wikipedia:
This allows the web site to customize content for the capabilities of a particular device
If you recorded your script with Chrome, JMeter would tell the server it was Chrome, and the server would respond to JMeter as if it were Chrome. JMeter, however, does not actually user Chrome in any way. Similarly, if you were to change you User-Agent to Android, the server would just respond to JMeter as if it were an Android device.
I have a question in IBM RPT, when I’m doing HTTP test via browser there are 2 Recording Method ( Socket Recorder, Proxy Recorder).
As User Manual :
HTTP proxy recorder: Use when proxy connections are required to connect to the network
Socket recorder: Use for low-level network traffic when the client does not support proxies
When I’m using Proxy Recorder, the browser automatically generate a port (Screen capture) at my Localhost proxy (as you can see at here Choosing Recorder type). And the recording work normaly (it works faster than Socket Recorder, when i'm using Socket Recorder it works too slow and sometimes it does not receive any packets!).
Which method should I choose for testing Web App? Is each method affect the performance results?
Please help me fix those problem. I'm sorry cause the attachment i do not have enough point to add a picture
Thank you !
what version you are using ??
If you are using 8.1 go to LAN setting in your PC and disable the proxy Click Apply then save if later let me know
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
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.