Record HTTP requests logs in JMeter using Manual Proxy

Overview

In this blog, we are going to discuss a very powerful testing tool called JMeter. This tool has some exciting features, one being the ability to record HTTP requests/responses being sent/received from an Android/iOS device. So let’s get started!!!

Introduction of JMeter

JMeter is a Performance & Load testing tool for web applications developed by Stefano Mazzocchi of Apache Software Foundation. Later it was redesigned to enhance the GUI and to add functional-testing capabilities.

Uses

It can be used to simulate a heavy load(by sending multiple requests) on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types. The results of the performance testing can be visualized in the form of graphs.

Pros

  • Ability to load and performance test many different applications/server/protocol types (HTTP, FTP, SOAP etc.)
  • Full Multithreading framework allows concurrent sampling by many threads and synchronous sampling of different functions by separate thread groups.
  • And many more

Cons

  • While simulating heavy load, it can consume a lot of memory
  • It mainly works only for web applications
  • Does not support JavaScript or Ajax

Download and install JMeter and its certificate on the Android/iOS device:

  • Download Apache JMeter from here. (Download the zip file from the Binaries section)
  • Extract the Zip file
  • Send ApacheJMeterTemporaryRootCA.crt file present in the “bin” folder, to your Android or iOS device and install the Certificate.

(Refer to the below video for the step by step process.
Note: The process for the iOS device is similar to that of Android)

Run JMeter and Start recorder

To run JMeter, First, go to the bin directory of JMeter and:

For Windows: Double click on the jmeter.bat file then run the JMeter
For Mac:

  • Open terminal
  • Goto bin directory using the “cd” command (Example: $ cd /apache-jmeter-4.0/bin)
  • Run JMeter using the command: $ sh jmeter.sh

This will open the GUI for JMeter

To add JMeter recording template:

  • Go to File -> Templates…
  • Select Recording option from the select template dropdown.
  • Click on Create a button
  • Click HTTP(S) Test Script Recorder (Check Port number as this will be used while setting up the proxy in the Android/iOS device)
  • Click on the Start button that would start recording the HTTP requests
  • On the Root CA certificate… popup, click OK button.

jmeter-image1

Set proxy in Android & iOS Device

Follow the below steps to set proxy in Android/iOS device
Note: Both the Android/iOS device and the device running JMeter should be on the same network.

For Android:

  • Open WiFi settings
  • Long press on connected WiFi
  • Select Modify network option
  • Click on the Advance option
  • Select proxy type as Manual
  • Enter the IP address of the device running JMeter in the Proxy Server field (To find the IP address – For Windows: Open cmd -> type IPCONFIG and press enter -> Select the IPv4 address. For MacOS: Open Terminal -> type IFCONFIG and press enter -> Select the inet address). Example – 192.168.0.1
  • Enter Port number as in the recorder of the JMeter recording template. Example – 8888

jmeter-image2

For iOS

  • Open Settings app
  • Click on WiFi option
  • Click on Create a button
  • Click on Info button on connected WiFi
  • Click on Configure Proxy option
  • Select Manual option
  • Enter the IP address of the device running JMeter in the Proxy Server field (To find the IP address – For Windows: Open cmd -> type IPCONFIG and press enter -> Select the IPv4 address. For MacOS: Open Terminal -> type IFCONFIG and press enter -> Select the inet address). Example – 192.168.0.1
  • Enter Port number as in the recorder of the JMeter recording template. Example – 8888
  • Click on the save button

(Refer to the below video for the step by step process)

Observing API Logs with an example

  • Open application in the Android/iOS device
  • Use any function in the application which might send a request to the server.
  • Goto the View Results Tree listener in JMeter to view the logs. All API requests are recorded in JMeter. (refer to the screenshot below).

jmeter-image3

jmeter-image4

Conclusion

Hence we can conclude that Game testing is not as easy as we think and not enjoying at all for game tester because it is a repetitive task and to do the same thing constantly for a long time with full concentration and this is a hard job. And the very challenging task for the game tester is to reproduce the same scenarios again and again during testing the game and during verifying solved bugs. So game testing is also a hard work it is not as easy as people think.

mm

Ghanshyam Soni Senior Quality Analyst

I am Ghanshyam Soni, working as a Senior Quality Analyst at Yudiz Solutions Pvt. Ltd. - a leading mobile apps, mobile games & software development company. A strong believer of God and a person with a never-give-up attitude. Athletic and a follower of the “Always be happy” policy.

Leave a Reply

Top