Tuesday, June 13, 2017

Mobile App Performance Testing -Part 3


Mobile App Android Client Side Performance Profiling

We have already studied about "How we can perform the server side load testing of Mobile app

Now in this pot we will see the basic concepts and steps to perform the client side profiling of Mobile App

Below techniques can be used:

 Reading android logs using Mlogcat : 

1) Download the MLogcat tool
2) Connect Your Mobile(having debugged app) with system
3) Logs are started in front of you
4) Apply filter based on the process id
5) Copy -paste the logs in excel & delimite to find the elapsed time and queries
6) Report these slow running/duplicate queries and time to developers

Capture Device Hardware Utilisation  Mlogcat :

You can capture the real life CPU Usage/RAM Usage and Network Usage of device

Monitor Thread and Heap Using DDMS:

1) Download Andriod Studio
2) Attached Mobile with Debug build of application
3) Go to Preferences --> DDMS
4) Select your app from left pane
5) Go to Heap tab and monitor the heap
6) Take dump when heap usage reaches close to 100%
7) Analyse the heap using Eclipse Memory analyser for Prime suspects

Feel Free to contact us in case of any query

Join "Performance Testing Expert" Group On Facebook




Tuesday, January 17, 2017

How to Record and Load Test Desktop Applications Using Jmeter (HTTP protocol)

From long time , I was in process to search , how to test the desktop application using Jmeter,

I  have googled many times to find the solution of this problem, Even i knew that this desktop application communicate over HTTP, Still i was helpless to test this application using Jmeter, As the question round around my face was

 " HOW TO RECORD THE DESKTOP APPLICATION USING JMETER"



Thumbs up to my friend, How have done  in depth study of proxies even when he is in manual testing and was able to record the requests for desktop application and prepare the script successfuly

I know many of you were also in search of this from long time , and when i will tell you about this , then surely , you will be in surprise mode for some time and will think , how stupid am i, this is so simple,

Following is the process for recording the Desktop application using Proxy.

1)  Open "Internet Options" from Control Panel, You can also open the same using search at RUN.

2) Click on "Connections" Tab

3) Click on "LAN settings"

4) Under Proxy Server : Enable "Use proxy for your LAN"

5) Put localhost as address and 9091/9092 as port(Avoid using 8080/8888)

6) Click OK

7) Use this Proxy setting in Jmeter Proxy Server

Try to avoid using and opening any other application that use network .

8) Start Proxy in Jmeter and Open the desktop Application,

Now you can see the http requests in the transaction/recording controllers under test thread
and proceed with the script enhancement like parameterisation, correlation, CheckPoint etc

Note: Setting proxies to record  Desktop application is same of browser recording , The only difference is that for desktop application we have to set the proxy on system level in-spite of browser level

Happy Testing
Chota Bheem(Performance Testing Experts)
https://www.facebook.com/groups/189704594726949/

Thursday, August 11, 2016

How to perform the load testing of Microsoft Navision - 2013/NAV 2016 / NAV 2009

In One of my project , I came across to many challenges in Performance testing tool identification  to perform the load testing on Microsoft Navision called as NAV.


Right Now client has application built on NAV 4.0 SP3 and want to migrate to NAV 2013 .
Application used Role Tailored Client to connect to the server.

In last 3-4 days i have read many forums related to the testing of Microsoft  NAV , I am summarising the below information

I am using the below mentioned three approached for tool feasibility Analysis for NAV 2013

1) Using Microsoft VSTS :

  • Application with only Web client can be test through VSTS
  • Load can be populated using only Ultimate version
  • User need to download the Load Testing Framework available on GitHub
  • Framework can be imported in VSTS and the load testing can be done based on the customisation
  • Framework required some DLLs that present in the NAV Setup
2) Using Testing Toolset Kit 
  • Testing Toolset Kit is available with the NAV set up in the Installation DVD
  • Application Toolset Kit contains main file with file extension ".fob"
  • This file needs to be imported in Development environment of NAV
  •  Functional Test Cases can be executed Using Id: 130021 (Page) in fob file
  •  Toolset kit can also be downloaded from partner's site but require credentials.
  •  Kit is also available on mibuso.com
Still I am looking into the options to perform load test executions using the Toolset.
No Information about How to perform load test using Toolset is available over internet, I have also posted the queries regarding the same over many forums of NAV and waiting for reply.

3) Using Load testing tool Like Load Runner, VSTS,Neoload,Silk Performer etc
  •  Next Step is to check the tool feasibility using the above mention tools.

Happy Testing ! All the best!


Wednesday, June 22, 2016

Load Runner : How to perform multiple (group) co-relation in Load Runner

Hi All,

Below is the description of how to perform multiple (group) co-relation in Load Runner :

Eg: 


you wants to co-relate product_id and osCsid both in the above url

Solution:

Function available in load runner : web_reg_save_param_regexp


you can create your own expression

Expression will be :

web_reg_save_param_regexp(
"ParamName=product_id_os",
"RegExp=products_id=([A-Z0-9a-z]+)\”\\]&osCsid=[A-Z0-9a-z\\\\+]\">",
"NotFound=warning",
"Group=0",
"Ordinal=1",
SEARCH_FILTERS,
               "Scope=Body",
LAST);

Used Expression :



Define Variable and Response :

1) Parameter name_1 for 1st value (Eg: if parameter name is product_id_os than we will define like product_id_os_1)
2) Parameter name_2 for 2nd value (Eg: if parameter name is product_id_os than we will define like product_id_os_2)





In- case of query/concern, do let us know.

Monday, May 30, 2016

Performance Testing of Traditional Client Server Desktop Application with TCP Protocol

One of the application that we have to test is

Traditional Client/Server Application
.Net Framework 1.1
TCP Protocol
.Net Remoting

These type of application are very complex to implement and also you will face many challenges while testing this type of application. Because

1) Some of the Performance testing tool does not support the recoring of desktop application like Jmeter,
2) Most of the Application does not support the recording of TCP protocol like Load runner,
  Neoload ,Load complete,VSTS etc
3) Most of the application doesnot support the application with .Net framework less that 2.0 like Load Runner, Neoload, VSTS (CodedUI),Silk Perfomer.

To test these type of application one can use the work around as mentioned below.

Using Load Runner

Though there is a protocol named as ".Net protocol" in Load Runner that are used for testing the application built on .Net framework but there is a limitation that LoadRunner doesnot support the recording of application that are built on the framework less that 2.0

So

1) Try to record the application using win-socket protocol of Load runner, By this you will be able to capture the network TCP packets and able to read the request, In this case if your application is not using any encryption to send the data over server, then you may be able to find this as the best solution.

2) Do the script enhancement like parameterization , correlation as you did in enhancing the http request in Load runner.
Please take care that different functions will be used while  doing correlation in Load Runner using in winsock.

May be you will be able to do the testing of you application.

Using .Net Remoting Client:

As most of the tools are not compatible with this application so we may go for the creating .Net Client and make a framework in which we can call .Net remoting functions in multi threaded fashion,
But this type of test is very complex and it is strongly recommended to ignore the same as it will require high development effort and highly time consuming to implement.


Note:   Most of Indrustry standered Opensource/paid tools will not work with this application.


I will share the details of testing outcomes that we have got with many industry tools.
We have checked the feasibility of this application with LoadRunner,Jmeter,NeoLoad,VSTS,Load Complete, Test Complete, VSTS (CodedUI),fiddler, AutoIt etc



  

Capturing TCP/UDP Traffic/Requests

In One of my recent project , i got an opportunity to work on TCP protocol.In starting i was very much excited but soon my excitement lost after googling for the issues that we are encounter to test this type of application.

We have googled for many days and even didn't found any tool that can even capture the TCP application.You much be know about the wireshark,fiddler etc network capturing tools but in my case of Desktop application these tools are also not able to records the TCP traffic

The tools mentioned on the most of the sites are not working,After the work for many days i came to the conclusion that i will be mentioning below.

  • Only tool that i have found and easy to use was SmartSniff to capture TCP Packets and UDP packets. 


There are also some of the tools that can capture TCP traffic but theses tools are paid and require heave download and installation and also require the technical expertise in respective tool like

Use Proxy in Silk Performer
Use Winsock Protocol in Load Runner

So please avoid using these paid heavy tools.

Now in Next post i will share my experience while testing a Desktop based client server application using TCP Protocol over .Net Remoting,
Also i will share my experience about the challenges that we have faced while performance tested this application with most of the know popular industry tools.

Thursday, February 18, 2016

Code to print values(Correlated parameter) in Jmeter


Below mentioned is the code with which we can print values in jmeter,
We have to write this code in Bean shell.

********ER_ID_Corr is the correlated value which we need to print ************

Var1 = vars.get("ER_Id_corr");


f = new FileOutputStream("C:\\CT\\Variable\\result.csv", true);
p = new PrintStream(f);

p.println(Var1);

p.close();
//print(Var1);
f.close();

For more detail please refer to screenshot