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

Converting or compiling Jmeter result file (JTL) to HTML

Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. 
Ant is very flexible to use .It converts the JTl to HTML format .

Below are the setting to use Apache ANT that converts JTl in to an HTML file :

1)    Ensure that the JAVA_HOME environment variable is set to the folder where your JDK is installed.
2)    Download the binaries from http://ant.apache.org
3)    Unzip the zip file to a convenient location c:\folder. using Winzip, winRAR, 7-zip or similar tools.
4)    Create a new environment variable called ANT_HOME that points to the Ant installation folder, in this case c:\apache-ant-1.8.2-binfolder.
5)    Append the path to the Apache Ant batch file to the PATH environment variable. In our case this would be the c:\apache-ant-1.8.2-bin\binfolder. (%ANT_HOME%\bin)
6)    Now to check environmental Variable is set on cmd check Java –version and ant –version.
7)    On  cmd browse to extras in jmeter (cd D:\Software\apache-jmeter-2.13\extras) and set heap size .

8)    Then type > ant on command line and press enter
9)    In continuation without closing the java program press Ctrl+C and terminate batch job .
10)    Then enter in cmd line > ant –Dtest =<Filename> report  then press enter.
11)    It will create the same name html file



In the Resultant HTML file following information are provided :
1)    Total no. of success rate ,failures rate and the response time.







2)    Response time of each and every transaction.
3)    Highlighted failure count.

4)    Failure detail corresponding to the transaction.





Monday, February 1, 2016

To Avoid Socket Issues in jmeter script

1) Make sure that your HTTP Requests "Implementation" is HTTPClient4

2) Add the following lines to user.properties file (located in /bin folder of your JMeter home)

httpclient4.retrycount=1
hc.parameters.file=hc.parameters


3) In the hc.parameters file (same location - JMeter's /bin folder) add line:

http.connection.stalecheck$Boolean=true