Friday, September 11, 2015

Resolution Steps for .NET Framework installation failure 0xc8000222

Resolution of  this issue is as follows

1.Stop the windows update service
  use this command ---> net stop WuAuServ

2.Rename the folder 'SoftwareDistribution' in your windows folder (most Probably 'C:\Windows\ SoftwareDistribution ')  to something else.

3.Restart the windows update service
  use this command ---> net start WuAuServ

4.Now try to install the .net framework again.It should now work smoothly.

Friday, August 14, 2015


               Here in this post I am presenting windows metrics for performance monitoring



Wednesday, April 22, 2015

NTLM authentication issue in AjaxTruclient protocol


 For some applications we see NTLM authentication issue while replaying the AjaxTruclient protocol script with Firefox and to avoid that here is the solutions

Navigate to Vugen installation path --> dat--> LrWeb2MasterProfile

Open the user.js file inside the folder

Search for etwork.automatic-ntlm-auth.trusted.uris string

Copy the URL of the application which is to be trusted and place as a value for above string

Save user.js file and close it

Now, Replay the script or create a new script then you won't find NTLM authentication issues

Tuesday, March 10, 2015

Warning -26695: Redirection depth (3) exceeds max (2) for "https://" in loadrunner script while replaying

Warning -26695: Redirection depth (3) exceeds max (2) for "https://" in loadrunner script while replaying When this scripting issue occurs - Do the following :


It can be solved in 2 ways . :

Option 1 # : Update/Insert the key value "MaxRedirectionDepth=<>" in the default.cfg file.

Option 2 # : Add web_set_option("MaxRedirectionDepth","<>",LAST); in the script just before the request.

Thursday, February 5, 2015

Usage of lr_advance_param() in loadrunner scripts

lr_advance_param("param1"); - it is a loadrunner function which helps in advancing the parameter value to the next row in the table.

How does it helps :

When the scenario is like if we have a parameter variable at various places in the script,But we need to pass the parameter value with advancement only at certian places. In such a case, we can't provide update on each iteration as it passes same value across each iteration.Also, We can't provide update on each occurence as it passes different values for each occurence.

So in such a case lr_advance_param("param1") functions help much better in the places wherever the parameter expects the update.

Sunday, January 11, 2015

Resmon(Resource Monitor) with Windows

Resmon(Resource Monitor) with Windows

Resmon - Resource monitor is a very informative monitoring tool which provides details of the following:

1. Process image-process ID - Description - %CPU time associated for it - Threads

2. Process level Writes/Reads/files location

3. Process level network statistics

4. Process level memory such as hard page faults, committed memory,working set , Private,sharable memory

5. Process - Associated services, Handles and Modules details and Different CPU core level usages

6. Disk Activity and Logical disk details

7. Network Activity , Tcp connections and Listening ports respective to process

On a final note, a fantastic utility in process respective to drill down performance root cause.

Hope this helps

Monday, January 5, 2015

Apache server status with trends using loadrunner script

Apache server status can be found for the deployed application using the URL :

http://servername/server-status

The metrics such as CPU LOad,Busy and idle workers, Bytes per request and per second , Requests per second can be monitored instantaneously.

But, to capture as a graph/trend we can create using Loadrunner script and through enhancements.

Here are the steps

1. Create a script with server status URL .

2. Correlate and capture values of metrics using LR User data point

3. Run the script in controller/pc with at least 1 user.

4. observe the trending online / offline using analysis.

This is very much helpful during load testing on apache servers.

Sunday, December 28, 2014

An Article on Latency and Bandwidth

Here is a brief Description on Latency,Bandwidth
Latency : it is the amount of delay time while transmitting data between source to destination.

To measure this, use "ping" command from your run window and provide various destinations and identify the difference in latency.

Your latency is nothing but the round trip time consumed for sending and receiving data.

Bandwidth : It is the amount of data transmitted over a network per second.

To measure the bandwidth usage of your network , Capture the amount of data transmitted per second.

Some tips mentioned below can improvise network bandwidth :

Server load balancing Increase link bandwidth Application tuning Network redundancy Web page optimisation

Friday, December 19, 2014

Performance testing of Android App on Android device with Loadrunner



Firstly, to performance test the app on Android device, we need to have the following things done.

1. Ensure Both Android device and Vugen machine should be in the same network.

2. Installing LRProxyroot.cer in Andriod device

3. Configure proxysetting in Android device


How to install LRProxyroot.cer :

1. open Certificate in the email

2. Download the certificate

3. Navigate to Settings --> Security --> Install from device storage --> Downloads.

4. Click install.So that certificate will be installed.


Configure Proxy Setting :

1.Navigate to Settings->WiFi.

2.Click on connected network's name

3.Modify network config -> Show advanced options

4.Set proxy settings by providing proxy and port number of the system in which loadrunner is installed.

Now, Open Vugen --> Mobile protocol --> Proxy recording --> provide the port number --> Start recording by navigating the application on Android device.

Once you record the scripts as per business flow,keep them in controller/PC and load test your application.

Monday, December 8, 2014

ASP.NET Website performance optimisation Series: Article-2


In these Articles , i am providing series of tips to finetune your website.

Tip 3 - Add Expiry headers . Check the existing expiry of static headers and if no date is mentioned try to provide it using web.config file static content tag.

use Max age and cache control max age like an year so..on.

Tip 4 - Combining JS files if necessary in VS. Also place the JS file in the bottom of the script.

Now, validate the performance again and compare. You will find improvement. In the next article we will see somemore tips.

Sunday, December 7, 2014

Resolution for Double URL encoding text in loadrunner script

Sometimes we receive the script calls in loadrunner with double encoded format.

such as for example : string " performance testing" is converted to "%2520%2520%2520%2520%2520performance%2520testing"

In such a case the below mentioned soultion will help.

Step1 : ensure DFE extensions in run time settings should be enabled.

Step2 : Use following code bits in the script :

web_convert_from_formatted("FormattedData/EscapedBinary=" performance testing"","TargetParam=prm1",LAST);

web_convert_from_formatted("FormattedData/EscapedBinary={prm1}","TargetParam=prm2",LAST);

Hope this solution helps.

ASP.NET Website performance optimisation Series: Article-1

Here i am providing a series of articles on ASP.NET website performance optimisation. Firstly as provided in my previous articles on performance diagnosis of websites using YSlow, we need to understand the Ranking of our website in various segments.

In these Articles , i am providing series of tips to finetune your website.

Tip 1 - GZIP Compression - Ensure GZIP compression is applied for Static and Dynamic. if not , please get into web.config file and to system.webserver key.

In that, provide dodynamiccompression , do staticcompression to true.

Tip 2 - Combining CSS files - If many CSS files are provided under page which can be clubbed, then in VS, navigate to CSS files and select them and use Web essentials --> Combine CSS files.
Replace the CSS files with the latest bundled CSS file in asp.net page. It works.

Now, validate the performance again and compare. You will find improvement. In the next article we will see somemore tips.

Sunday, November 23, 2014

IPAD/Mobile/Tablet - Native/ Web Applications Script recording with Neoload/Loadrunner

Here is the approach on script recording with load testing tools for Native/Mobile applications on iPAD/Mobile/Tablet.

1. Ensure your tool & mobile/tab/ipad on which application is deployed should be in the same network.

2. Grab the machine ip address and port of the tool with which you want to capture.

3. provide the ip address and port in the proxy settings of the mobile/ipad/tab.

4. install required certificate of the tool in mobile/ipad/tab.

5. Start capture with tool.

6. Navigate the application in mobile/ipad/tab and observe the script capture in the tool.

Proceed with executions, once the required business flows are captured.

Mobile applications performance testing

Nowadays mobile applications are growing rapidly. Most of the customers in different verticals are transforming their applications to mobile/tablets.

Also number of users across globe, using the applications growing at tremendous rate. This leads the mobile application performance significant.

Variety of applications including Web,Native and Hybrid on various OS such as iOS,Android are deployed.We need to have a startegy/solution on how to approach for mobile performance testing.

First look at the pointers to test :

How to Capture a script with selected tool.

Load pattern (Geographies/Bandwidth)

Metrics to monitor

Analysis pattern

Thursday, November 20, 2014

How to download proxyroot.cer for loadrunner script proxy recording.



When loadrunner is required to record a script via proxy recording mode, we need to have proxyroot.cer to be installed on the devices where application is installed.

1. Open Vugen and start proxy recording.

2. provide the port number to which it has to listen.

3. Ensure the IE proxy setting should be same before starting and during start recording.

4. open browser and provide http://:port(provider in Vugen)/prxoyroot.cer.

5. if the above one able to turn up change .cer to .dat i.e http://:port(provider in Vugen)/prxoyroot.dat.

6. if it is downloaded as .cer save it in the same format. if it is downloaded as .dat change the format to .cer after saving on the drive.

SSL protocol error when attempting to connect with host "abc.def.com" in Loadrunner

In Loadrunner some times we might face error while replaying scripts such as :

SSL protocol error when attempting to connect with host "abc.def.com"

The possible solution might be use web_set_sockets_option("SSL_VERSION", "TLS"); just before the request where the particular error is occurred.

Wednesday, November 19, 2014

IPAD application trace capture with Fiddler

Nowadays , Users are tending towards usage of applications on mobile and PADs. So, the performance of applications deployed on IPAD also considered to be important.

As a process of validating performance we need to capture trace also. Here is the approach to capture trace through fiddler.

Steps

1. Open fiddler and ensure settings in connections are proper.

2. Open IPAD --> Settings -->WiFi.

3. under WiFi go to Manual and provide proxy details. place the ip address of the machine in which fiddler is installed and port as 8888.

4. Now start trace capture in Fiddler and access the application in IPAD. Observe trace is captured in Fiddler.

Sunday, November 16, 2014

How to add many client browsers in launch client option in Neoload

There is a scenario for me to test with Safari browser. But when i see launch client there is only one option as "Internet explorer".

But, Here i found the solution for this -

First install the required browser in your system laptop/desktop.

Navigate to Recording preferences --> Browsers --> Add .

Provider path of exe , Name and version associated to it.

Click to start recording and verify in Launch client combobox. Now you are able to the respective browser.

Thursday, November 6, 2014

Java script code bit for URL encoding in Neoload

Some cases if we need to have javascript code snippet for URL encoding in neoload, you can try the code.


var str1 = context.variableManager.getValue("variable name");

function urlencoding(str1) {
str1 = (str1 + '').toString();
return encodeURIComponent(str1)
.replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A')
.replace(/%20/g, '+');
}

var str2 = urlencoding(str1);

context.variableManager.setValue("newvariable",str2);

Sunday, November 2, 2014

Globalising variables files in Neoload

Variable files can be accessed from anywhere in the network across various neoload scripts.

Create a file in .CSV format and placed in the network drive which is accessible.

Define a variable in the variable manager assign it to the file path that is mapped through file browser.

So that the variable across various scripts can use same data in the network.

Thursday, October 23, 2014

Performance Testing Vs. Performance Engineering



Performance testing is an art of testing the application. This can be in two ways. 1. Manual and Automation.

Automation performance testing is conducted with tools such as load testing tools/monitoring tools/analysis tools including Loadrunner,Neoload,Jmeter,VSTS etc.

Performance testing is to measure the application responsiveness and other metrics also to check the capabilities such as scalability,availability etc.



On the otherhand, performance engineering is reengineering the application to acheive the application SLAs as defined.This can be in 2 ways. 1. ProActive 2. ReActive

ProActive performance engineering is during the application development and from architecting to unit testing.

ReActive performance engineering is during once performance bottlenecks are observed.

This is the process of profiling,analysing and tuning.

To perform this, many tools available in the market such as profilers,diagnostic tools etc.

Tuesday, October 14, 2014

Neoload Custom actions API Extensions


Neoload has a feature of custom actions with Jars and other api extensions that are useful with integrating with other tools.

Here is the link that provides more information on this -

Neoload Custom Actions extensions

Sunday, October 12, 2014

ASP .NET application performance metrics - Perfmon in Web/App server



Here i am providing the list of metrics that can be captured through perfmon in Web/App server for a ASP.NET Application.These are really helpful in identifying memory/processor/Disk issues and code inefficiencies as well.

Processor --> % Processor time
Processor --> % User time
Processor --> % Previliged time
Processor --> % Idle time

Physical Disk --> % Disk Read time
Physical Disk -->% Disk write time
Physical Disk -->Avg. Disk queue length

Memory --> Available MBytes
Memory --> Committed Bytes

.NET CLR Memory --> %time in GC
.NET CLR Memory -->#Gen0 Collections
.NET CLR Memory -->#Gen1 Collections
.NET CLR Memory -->#Gen2 Collections

.NET CLR LocksandThreads --> Contention Rate/sec

.NET CLR Execeptions --> # of Exceps thrown/sec

ASP.NET --> worker process restarts

ASP.NET Applications --> Pipeline instance count
ASP.NET Applications --> Requests/sec
ASP.NET Applications --> Requests in application queue

System --> context swithces/sec

Hope this article is useful and if you still need more information on this please let me know. I can help you on that.

Friday, October 10, 2014

How Perfmon is useful in collecting metrics



Perfmon - A windows nativity monitoring tool helps in monitoring server health Online and offline. It can be plugged to various tools such as Loadrunner etc.

We can even import perfmon logs into loadrunner analysis file and so a combined report will be generated.

How to start :

1. Start -> Run -> Perfmon.exe

2. By default counters are displayed. To add counters click +

3. Select the Component(Eg.Processor) in the computer --> select metrics (Eg. % processor time)--> Select instnace(eg.Based on cores) and click Add.

4. Similarly add counters for objects to monitor for online monitoring.

For offline - 1. Add Data collector sets under user defined category --> Provide metrics and location to save. Provide timings also .

2. So that offline log is saved and we can view whenever needed.

Once we capture the metrics , as a next step we can move to analysis by looking at each metric.

Enjoy analysing.

Tuesday, October 7, 2014

How Performance requirements gathering plays a major Role


Performance requirements gathering is an important phase in performance testing life cycle.With out proper requirements, there is no meaning of testing.

Firstly we should understand Why,What,How and When we are testing. Here are the details that should be taken into consideration.

Scope - What is the scope of performance testing/business flows/aspects to consider and Why should we test

SLAs - What are the SLAs defined.Pass/Fail criteria

Application - What application and What is it about

Environment - Which environment is available for Testing and is it replica of production

Architecture - What are different components of architecture and how is the communication

Metrics - What are different types of metrics to be captured.

Toolset- What are different tools available for testing/monitoring/Analysis/Reporting.

Timelines - When is the window for the engagement

PoC- Point of contacts from different teams

Sharepath - place holder for documents/scripts/results

Monday, October 6, 2014

Performance testing in different types

Performance testing is defined in various types.

1. Load Testing: It is conducted to verify whether the application can meet expected SLAs in terms of Response times, Throughput and Resource utilization e.t.c under different loads of Vusers.

2. Stress Testing : This performance testing is done to identify the application maximum handling capacity of users, by determining the breakpoint.

3. Spike Testing : It is a performance test conducted to validate performance Characteristics when subjected to load volumes repeatedly increase beyond anticipated production operations for short periods of time.

4. Endurance/Soak Testing: It is conducted to verify application memory leaks and code inefficiencies. This test is performed for long durations like 5 hours, 10 hours, 1 day…

5. Volume Testing: These tests are more appropriate for messaging, Batch processing type situations. Here we concentrate more about throughput instead Response time.

Sunday, October 5, 2014

How Internet performance testing is significant over traditional performance testing



Firstly, we should understand the difference between those two. In general , we simulate virtual users from LGs either from single place or multiple places based on their location. It does not give us practical results. The reason is , Users access the application hosted in internet from various geographic locations of the world.

So, We need to simulate the same to get exact experience. In order to acheive this, Internet performance testing is much helpful by simulating users from various geographic locations. Also, simualting with various bandwidth,browsers also important.

Here are the factors we should take into account as per my understanding and knowledge.

Geographic locations
Different Mix of Browsers
Different Network bandwidth

This can be acheived in Loadrunner through Shunra integration and in Neoload Cloud load generators.

Hope this article is useful.

Friday, October 3, 2014

Create Vugen script with SOAPUI where XML recording to be done


In some cases , we might need to capture Vugen scripts for web services load testing. Here is the way how to record scripts with XMLs available using both loadrunner and SOAPUI.

SOAP UI should be installed on your machine.

Navigate to Vugen -> File -> New ->Web (Http/Html) protocol.

Click Create and provide necessary details and Click record.

Fill the details as recording application micexec.exe (windows application).

Start Recording and SOAP UI will be opened.

Click File -> New SOAP UI Project and Provide necessary details in the page.

Click OK and we will be directed to the request page on Right pane.

Expand Execute XML -> Request.

Ensure the end point URL is correct.

Place the formatted xml correctly in the left request pane.

Click Execute button and so response will be displayed.

Repeat the same above steps for different Xmls and stop recording once done.

So,the Vugen script is ready.

Use the script for load testing and enjoy with the analysis.

Thursday, October 2, 2014

Get value and Set value in Neoload can be used in Java script

In Neoload we have to use Javascript code wherever required if custom code is required.

Here is an example using Getvalue and Setvalue

var myVar1 = context.variableManager.getValue(" ");

context.variableManager.setValue("new variable that captured value passed to",myvar1);

Wednesday, October 1, 2014

How many virtual users does my Load generator support in Loadrunner

Many of us not sure how many virtual users does my LG support with out any memory exceptions/issues.

But before loadtesting we need to understand that . Remember, it differs from protocol to protocol.Web protocol consumes 2 MB/1Vuser where as Ajax truclient consumes 70-120MB/1 Vuser.


Here is a good document that helps in calculating the no.of users it LG supports.

http://h30499.www3.hp.com/t5/HP-LoadRunner-and-Performance/How-To-Understand-and-calculate-Virtual-User-quot-footprint-quot/ba-p/2407591

Tuesday, September 30, 2014

Loadrunner Analysis Response times in summary and Avg.transaction response time graph

In loadrunner analysis file, we see response times in two areas.

1. Summary report 2. Avg. transaction response time graph.

But if we observe Min,Max,Avg value in both sheets it differs. Don't confuse and Tense.Here is the reason why?

Summary report publishes exact response times and Avg.transaction response time graph plots a graph and below table based on granularity.The more granules , the accurate the graph shows. Below table is based on the graph values. it caluculates Max,min,Avg,std.dev etc. Hope it clears.

Monday, September 29, 2014

Web page performance improvement at no cost


What does performance of an application means to us ? Primarily we look at responsiveness.Do you really care about End to End performance of an application or server performance.

Though server performance is a major impact,we also need to look at web page performance as well. The reason is most of the web developer does not look carefully into optimisation of client side scripts,CSS files e.t.c There are many open source tools which can help much in such cases. For example - Yslow, Fiddler e.tc.


How does they help ?

They help in providing the rankings based on our page design.They consider the following aspects.

Expiry Headers
Duplication of JS and CSS files
placing of JS files
URL Redirects
DNS look ups
Compress components

Have a result with the tools and optimise as per recommendations provided and get the performance improvement.

Sunday, September 28, 2014

Analysis failed to analyze result directory for .lrr file

Analysis failed to analyze result directory for .lrr file . If any time faced this kids of issues, please have a look at the error log which is generated while generating the analysis file. It clearly mentions what is the exact error . In one instance we received the error such as the Stop_time is 0.


For such a case the solution is open the .lrr file with notepad and add the Stop_time={somevalue here - it is the elapsed time of the test = start_time+time run in seconds}
Start_time=************
Daylight_Bias= *********
Stop_time= ********
Hope this solution is useful