Recording HTTP traffic on iOS devices with HP LoadRunner

(This post was written by Gennady Gorenshtein from the LoadRunner R&D Team)

 

iOS devices such as iPhones and iPads have become a valuable part of the IT infrastructure, and accordingly, there is a need to validate the performance of these devices as they run applications.  LoadRunner, as the leading performance load testing tool in the market, is the perfect choice for this validation. To get started, LoadRunner needs to obtain the HTTP activity performed by the device. Because LoadRunner’s network traffic recording mechanism doesn’t run on iOS, we have a way of getting at the HTTP activity. This post describes some of the solutions that LoadRunner offers to solve this problem.

 

LoadRunner Proxy Recorder

Starting from version 11.52, LoadRunner includes a new component called Proxy Recorder. This component is responsible for recording the HTTP activity that takes place on the remote host. In short, the remote host simply sees LoadRunner’s Proxy Recorder as a regular HTTP proxy and routes all the HTTP network activity through it. LoadRunner then captures the remote host’s HTTP traffic and creates a script for the load testing.

 

Since any iOS device can be seen as remote network host, we can use LoadRunner’s Proxy Recorder to capture the device’s HTTP activity.

 

If you haven’t downloaded HP LoadRunner, here is your opportunity to see what it can do for you! Dow...

 

Configuring VuGen

First, set the recording mode to ‘Remote Application via LoadRunner Proxy’ mode in VuGen’s Start Recording dialog:

p1.png

 

The proxy mechanism will be launched when you press the “Start Recording” button. You then need to configure the settings for the device—which may use a wireless connection or a cellular connection. The settings for each connection type are slightly different.

 

Configuring the device’s proxy settings for a wireless connection

Configure the proxy settings on the device by going into the device’s Wi-Fi settings and configuring the network to use a manual HTTP proxy. Set the IP and port to the values in the dialog above (10.0.0.11 and 8888 in the example here):

p2.png

 

From now on, LoadRunner will record any HTTP network activity on the device.

 

As an alternative to using an actual iOS device, LoadRunner can record from the iOS emulator on OS X, using the same settings: LoadRunner Proxy Recording should be started on the Vugen machine, and the emulator’s proxy should be configured to point to Vugen’s IP and proxy port.  You can check out this post for more information about proxy recording in LoadRunner for mobile applications.

 

Configuring the device’s proxy settings for a cellular connection

To record a cellular network connection, create a special APN (Access Point Name) profile and load it onto the device. You can use the iPhone Configuration Utility, available for Windows and OS X, to create the APN. This screenshot shows how to create a profile on OS X:

p3.png

 

Proxy server and Port settings should point to the LoadRunner Proxy IP and port.

 

To load the profile onto the device, it can be loaded through the iPhone Configuration utility, downloaded as a file, or emailed as an attachment.

 

If you need to record SSL traffic, you need to obtain and install the LoadRunner Proxy SSL CA certificate on the device. To obtain the certificate, point your device’s browser to http://lr_proxy_ip:80/proxyroot.cer (note that it is usually a good idea to install the certificate before recording in any case, even if you don’t know for sure that you’re going to use SSL communication, as SSL sessions often start implicitly). After that, save the downloaded certificate and install it on the device:

 p4.png

 

Wireshark recording

Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. In promiscuous mode, Wireshark is capable of capturing all traffic that passes through the network interface, regardless whether the traffic is intended for this interface or not. Wi-Fi network activity (called also WLAN) passes through all participating network adapters. In other words, promiscuous mode captures network traffic between all devices connected to the same WLAN.

 

LoadRunner is capable of analyzing of Wireshark capture files and creating LoadRunner scripts from the capture files. You can configure it as follows:

  • Configure your device to run in a wireless network with Wireshark installed on some of the computers on the network.
  • Start Wireshark, choose the wireless interface, and check the ‘Capture packets in promiscuous mode’ checkbox:

p5.jpg

 

Start the Wireshark capture process, generate some HTTP activity on your device, and save the captured activity to a file.

 

You then import the file into LoadRunner and create the script by running VuGen’s Recording Wizard, and selecting ‘Analyze Traffic’:

p6.png

 

Filter the traffic based on the device’s IP and create the script:

p7.png

 

Server side recording

If the HTTP traffic from the iOS device is directed to a single server, and the user has the sufficient permissions on the server, you can record that traffic on the server itself.

 

To record traffic on a remote server, you need to manually install the mobile sniffer agent onto your server by copying the relevant folder from <LR installation directory>\mobileRemoteAgent\ to a location of your choice on your server. The following table lists the supported operating systems and their corresponding file directories:

 recording HTTP 8.png

Once you have copied the folder, you initiate the sniffer from the command line. For example, if you are recording in a Windows environment, the command line string might look something like this:

 

mongoose-2.11.exe -e errorLog.txt -r "C:\Program Files\HP\LoadRunner\mobileRemoteAgent\win32" -c ".cgi" -p 80

 

 

Common command arguments and their descriptions:

recording HTTP 9.PNG

Once the sniffer agent is installed, you manually start the agent, then select ‘Record and Analyze Traffic’ from the Recording Wizard.

p8.png

 

Configure the sniffer agent’s location:

p9.png

 

Generate some HTTP activity on your device, and LoadRunner will generate a script from the activity recorded using the sniffer.

 

Feel free to leave a comment in the box below.

 

Check out this post for more information about mobile performance testing.

 

Thanks to Gennady for providing this article!

 

Download HP LoadRunner for your performance and load testing for free – 50 Virtual users for unlimit....

 

 

Labels: Load Testing
Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the Community Guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
Showing results for 
Search instead for 
Do you mean 
About the Author
Malcolm is a functional architect, focusing on best practices and methodologies across the software development lifecycle.
Featured


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.