How to record native mobile app for load testing? - jmeter

The application I want to load test is a Shopping Cart application(Server performance). I have tried with Jmeter for a purchase scenario, But the problem is Jmeter not recording actions like logins, selection from dropdown etc. Because of that on playback the recorded scripts won't create any user sessions and no purchase is happening. But Jmeter shows all the scripts were run successfully. I want to record each and every action on mobile. Is any solution for this problem? Do i need to use any other tool other than Jmeter? Please help.
Thanks in advance.

If your application makes a HTTP (or HTTPS) requests - JMeter can record it (assuming correct configuration)
Given you are able to record some requests it seems like you're almost there, few points to consider:
In order to make JMeter capable of decrypting and recording HTTPS traffic you need to install JMeter's self-signed certificate onto mobile device.
Start JMeter's HTTP(S) Test Scipt Recorder
Locate ApacheJMeterTemporaryRootCA.crt file under JMeter's bin folder
Transfer it somehow to mobile device (i.e. send it as an attachment to yourself and open the email on the mobile device)
Click on the certificate in the email attachment and follow your mobile OS dialog to get it installed
Make sure the certificate is up-to-date (it has limited lifetime, only 7 days by default) so you will need to re-generate it and reimport each week or amend proxy.cert.validity JMeter property to override the certificate validity period and make it longer

JMeter has a proxy server which can record all the HTTP/HTTPS records.
This site has step by step instructions.
http://www.testautomationguru.com/jmeter-record-ios-application-http-requests/

Related

Why website is not accessible by clicking on login button while recording it with proxy server using Jmeter?

I have set up a proxy server and trying to record a script by adding "http script recorder", but the problem is I am able to access a website but not able to login.
my website has been loaded but once I enter credentials and click on the login button then a website is not behaving, login button also not responding.
In case of any problems with JMeter first of all you should look at jmeter.log file, if anything goes wrong JMeter normally writes an error message to this log file which in majority of cases is enough to get to the bottom of the issue.
With regards to your problem, my expectation is that login normally uses HTTPS protocol and you need to perform some extra configuration so JMeter would be able to intercept and decrypt HTTPS traffic.
You need to install JMeter's self-signed certificate to your browser, the file is called ApacheJMeterTemporaryRootCA.crt and it's being generated in "bin" folder of your JMeter installation when you start JMeter proxy.
You just need to import it into your browser and it should resolve you issue. Follow your browser documentation to learn more about certificates installation processes, some hints are also given in the HTTPS recording and certificates chapter of the HTTP(S) Test Script Recorder JMeter User Manual entry.
Alternative way is using JMeter Chrome Extension, in this case you won't have to worry about proxies and certificates so the recording process will be faster and easier.

Page not loading while recording application in jmeter

While recording application in JMeter, page is not getting displayed.
For actual daily purpose loading in browser, application uses 'automatically detect setting' (no proxies).
How to solve it?
(For recording localhost setting is used. Since there is no proxy command prompt method is not applicable)
If anybody came across this situation or has some other easy way to record other than Fiddler, Blazemeter or Badboy (since few issues while trying those also) please respond.
Also please suggest if there is anyway to get recording log from blazemeter extension for chrome because application is getting recorded with that extension, but recording log is not available.
If at least log is available I can use jcorrelate with the jmx and log as inputs to create script.
Follow the steps below to record web application in your browser
1.Create a recording Template in JMeter.
2.Open HTTP(s) Script reorder and give a port number which is not is use
3.Open your browser and setup proxy
(uncheck automatically detect setting) and set Proxy server with port mentioned in Jmeter script recorder)
If your web application uses https then you might need to install certificate generated by JMeter.
The article below explains the detailed steps to record an application using JMeter proxy server
JMeter Proxy Recording
You can convert BlazeMeter to jmx, just setup a Blazemeter account
A Blazemeter account is required to convert the recording into a JMeter script (.jmx) file because this process is performed on the server side. Any Blazemeter account (free or paid) will suffice. Signing up for BlazeMeter is super fast and doesn’t require any sort of commitment or credit card.

Unable to test mobile application using Test Script Recorder

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 not able to record Mobile Native Banking apps using JMeter

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.

Record HTTPS requests of a mobile IOS/Android application with JMeter

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.

Resources