Can we test hybrid app through jmeter and if yes then how
thanks in advance
I don't think you can use JMeter for load testing mobile apps themselves, if you need to check i.e. application loading time, page rendering time, resources consumption (CPU, RAM, Network, Battery), etc. you should rather consider using profiling tools, they're normally available from mobile operating system vendors like:
iOS: Xcode Instruments usage to improve app performance
Android: Measure app performance with Android Profiler
JMeter can be used in context of measuring mobile applications performance only if the application communicates with the backend so you can simulate hundreds/thousands of mobile application users using JMeter so you can check whether the backend is capable of handling such a load and it doesn't result in increased response time or errors. If this is what you're trying to achieve - you need to determine which network protocols are in scope and check if these protocols are supported by JMeter Samplers or JMeter Plugins
If your mobile app uses HTTP protocol for communicating with the backend you can even record the requests using JMeter's HTTP(S) Test Script Recorder, see Load Testing Mobile Apps Made Easy article for example concept.
If your application uses HTTPS protocol it is still possible to record the traffic however you will have to take some extra steps:
Install JMeter's self-signed certificate onto the mobile device (see HTTPS recording and certificates chapter of JMeter Documentation for explanation)
Configure your mobile operating system to trust this certificate:
iOS: Trust manually installed certificate profiles in iOS and iPadOS
Android: How to install trusted CA certificate on Android device?
Related
I am trying to test mobile application using jmeter Test Script Recorder but When i set proxy in my mobile and then I tried to captured, It shows all the time "No internet connection". I have set correct ip and port number.
Can anyone help me ?
There is more than one mobile operating system and troubleshooting options differ depending on vendor and OS.
Double check that you actually started HTTP(S) Test Script Recorder and there are no modal dialogs with warnings/errors and nothing suspicious in jmeter.log file
JMeter itself must have internet connectivity, if your machine is behind the corporate proxy - you will need to apply some extra configuration
Check if you can record anything using web browser on mobile device. Start with HTTP-based simple site i.e. http://example.com
If your application is using HTTPS protocol you will need to install JMeter's self-signed certificate onto the device, the file is called ApacheJMeterTemporaryRootCA.crt and it's being generated in "bin" folder of your JMeter installation when you start HTTP(S) Test Script Recorder and you need to transfer it to your device somehow (bluetooth, email, whatever) and follow your OS dialog to get it installed and trusted
For certain Android versions you might need to use a 3rd-party tool like ProxyDroid in order to proxy HTTPS traffic
For iOS devices you will need to "tell" that you trust JMeter's certificate under Settings -> General -> About -> Certificate Trust Settings
See the following materials for more information:
HTTP(S) Test Script Recorder user manual entry (pay attention to HTTPS recording and certificates chapter)
Apache JMeter proxy Step-by-step
You can consider using a cloud-based proxy service, in this case you will not have to worry about certificates generation and installation and will have confidence that the device will have Internet connectivity. As a bonus you will have possibility to export recorded script in "SmartJMX" mode with automatic detection and correlation of any dynamic parameters.
I am using JMeter 3.3.
I am not able to record traffic from our mobile banking app but I am able to record traffic from simple app which are less secure like weather channel. Can anyone help me here to make my mobile banking app work?
Most probably you need to install JMeter's self-signed certificate onto your mobile device:
Locate ApacheJMeterTemporaryRootCA.crt file (it's being generated in "bin" folder of your JMeter installation when you start HTTP(S) Test Script Recorder)
Transfer it to device somehow (i.e. send it via email and open the attachment on the device side)
Import the certificate to the device, follow your mobile operating system instructions on how to do this
Assuming everything goes well JMeter should be able to intercept, decrypt and record mobile traffic (You might need a 3rd-party application to proxy the secure traffic, i.e. ProxyDroid for Android OS)
You can also consider using a cloud proxy which makes the process of installing the certificate easier, check out A Step by Step Guide to Performance Testing on Native Mobile Apps article for more details.
I am trying to record mobile app with Jmeter, the app has URLs with https,
I am using jmeter 3.1 and configured mobile and machine such that I am able to record URL(both http and HTTPS) and app from mobile in jmeter. Now I have an application, with the same configuration I have tried recording that app, but not able to record anything and the strange thing is that when I am trying to login into the app with proxy in mobile it's says "Unable to connect to server", but without proxy it's logining successfully. Does someone come across this situation. Please let me know if there could be any solution for this.
Unable to connect to server has many faces, going forward include more details into the question, i.e. mobile operating system, proxy configuration details, etc.
In the meantime here is a checklist:
JMeter can record only HTTP and/or HTTPS, other protocols are not supported
You need to configure mobile device to use the host running JMeter as a proxy for both HTTP and HTTPS protocols. For certain operating systems you may need 3rd party software, i.e ProxyDroid in order to setup HTTPS proxy
In case of HTTPS traffic you will need to install JMete's self-signed certificate - ApacheJMeterTemporaryRootCA.crt onto your mobile device. If did it already - be informed that JMeter certificates has limited life span (4 months or something like that) so you need to periodically "refresh" them. The fastest and the easiest way of installing the certificate is sending the aforementioned file to yourself via email and opening the attachment using the mobile device.
See HTTPS recording and certificates chapter of the HTTP(S) Test Script Recorder JMeter User Manual entry for more details.
You can also View the Webcast: Performance Testing for Native Mobile Apps to learn about alternative ways of recording mobile traffic and converting it into a JMeter test.
Is it possible to record httpS requests of a native app (IOS or Android) with JMeter? I tried some ways that I found but, I've not resolved the problem..
Use jmeter 3 with Java 7 or 8, it creates a crt file in jmeter/bin folder. It is the CA that creates the certificates.
Send this file by mail and open it in Android / iOS then install it.
In test script recorder, put in the dedicated field HTTPS domains , the domains you are trying to hit, see:
-http://jmeter.apache.org/usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder
Restart Ipad/Android and jmeter test script recorder and try again.
to do this, you have to make your device trust the Jmeter Proxy CA.
So, you have to import the Jmeter CA certificate from
$JmeterHome/bin/ApacheJMeterTemporaryRootCA.crt
into the device.
I remember this is an area where things improved a lot recently, so be sure to have the last version installed.
Try deleting ApacheJMeterTemporaryRootCA.crt, JMeter's self-signed certificates have very limited life time (I recall something like 1 week), so if your certificate is older you might have problems installing it into browsers and/or mobile devices or it won't decrypt SSL traffic. The file will be re-created next time you start HTTP(S) Test Script Recorder
There is an alternative way of recording the mobile traffic by using your personal cloud proxy. Moreover, it will perform automatic correlation for you so you won't have to worry not only about SSL certificates, but also about Regular Expression extractor, JMeter Variables, etc. Check out How to Cut Your JMeter Scripting Time by 80% article for details.
If none of the above helps, take the following troubleshooting steps:
Add View Results Tree listener as a child of the HTTP(S) Test Script Recorder. In case of any problems with the recording a request it should display the error details.
Check your mobile device logs during failed certificate installation attempt. You may need to install Android and iOS developer tools for this.
Make sure that your application is really uses HTTP or HTTPS protocols as JMeter supports only these 2.
J-meter version 2.12 and 2.13
OS windows : Windows 7
Android version 4.4
NOTE:Mobile app is our test environment and still under testing phase
J meter recording:
When I set the proxy then the app is not recording in j meter i.e. Am not able
to login to the app itself.
However if I remove the proxy setting then am able to login to app successfully
and can perform the transactions
I tried with the app which are their in play store , most of the app are
recorded with proxy setting
So am a having doubt due to signed apk then the app is recording in j meter are what ?
Am not able to figure whats the problem is . Can anybody please help me.
Our Plan is to record the mobile transactions through j-meter and upload the script to Blaze meter
Thanks,
Prabhakar.Y
Your app may be using HTTPS and Android native network configuration utility may not support HTTPS proxying so the options are:
Perform additional configuration:
Use third-party application like ProxyDroid which supports HTTPS proxying
Install JMeter's ApacheJMeterTemporaryRootCA.crt (it's generated in /bin folder of JMeter installation) onto device
Use Mobile Recorder service instead.