Read the latest JDS blogs, case studies, news, and tech tips to stay on top of what's happening in the IT industry and how we're helping businesses change the game with their technology solutions.
With web application security becoming more important you may find servers refusing to accept SSL 3.0 protocol due to security vulnerabilities such as POODLE (https://en.wikipedia.org/wiki/POODLE ).
Older versions of VuGen will refuse to record the application and display an error page similar to below giving vague information to what the problem is.
VuGen 12.50 will now show a popup giving a hint where the problem is:
Using Wireshark it become clear that the issue is with the SSL handshake:
Compared with a successful secure handshake recording when using the browser:
By default VuGen has the following “Recording -> Network -> Mapping and Filtering” settings:
The problem is that VuGen will not try later TLS versions after the first handshake has failed unlike a browser which will start from the highest TLS version and work down until the server accepts the handshake:
Simple solution is to change the VuGen Recording -> Network -> Mapping and Filtering to at least TLS 1.0
These days VuGen offers a number of ways to record SPA web application, including TruClient and importing Session Archive Zip (SAZ) files from fiddler. However, you can still use HTTP/HTML protocol in VuGen. In doing so you may encounter a number of issues when recording the HTTP RESTful service calls.
To create robust maintainable scripts, JDS recommends using HTML-based recording rather than URL-based scripts. The ‘HTML Mode’ will not extract every resource URL into the script but will either encapsulate them into the initial calling URL or add them to the EXTRARES section of the step:
This is a problem is you want to measure the transaction times of RESTful service calls used in SPA frameworks.
To enable the VuGen recorder to extract the Angular JS calls as separate steps, we must change the “Recording Options -> HTTP Properties -> Advanced” recording scheme to not record responses with headers:
In addition to exceptional professional services and IT implementation, JDS provides both temporary and ongoing support for our clients. Our ... Read More
JDS Australia is excited to announce its new technology partnership with PagerDuty, a leading provider of digital operations management. JDS ... Read More
JDS is currently working with several businesses across Australia to implement our custom synthetic monitoring solution, Active Robot Monitoring—powered by ... Read More
ServiceNow's Time and Attendance application streamlines many of Tabcorp's processes when it comes to managing employees' schedules and time recording, ... Read More
The Splunk wizards at JDS are a talented bunch, dedicated to finding solutions—including in unexpected places. So when Sydney-based consultant ... Read More
Recently, one of JDS’ clients reached out for assistance, as they were experiencing inconsistent website performance. They had just moved ... Read More
Combining Application Lifecycle Management best practices and Application Performance Management to support delivery of vital blood products to the Australian ... Read More
HP LoadRunner ensures performance and availability of Global Corporate Challenge’s website HP LoadRunner software takes the guesswork out of the ... Read More
One of Australia’s largest superannuation administrators, Superpartners, uses HP Business Availability Center to try and optimise the availability, performance and ... Read More
With the release of LoadRunner 12.53, VuGen now has built in GitHub integration. That means you not only have access to GitHub for saving versions of your script, but also other tools like bug tracking, access control and wikis.
Here’s an overview to VuGen’s GitHub integration to get you up and running.
Getting Started
First off, you’ll need a personal Git login. You can sign up for free at github.com/join. Note that free repositories are publicly available.
You’ll also need LoadRunner 12.53 or higher from HPE.
GitHub Overview
VuGen’s GitHub integration (and GitHub in general) works by managing three versions of your script at a time.
The one you see in VuGen is your working copy. You can develop / replay your script as usual, and save it locally when you want.
When you want a backup of your script – e.g. before doing correlation or rerecording, you can make a check point – or commit the script. This saves the script to a local staging area.
After several commits, or perhaps at the end of the day, you might be ready to save everything to GitHub. To do this you Push the script.
Using GitHub integration straight from VuGen
The following example shows you how to push your first VuGen script to GitHub.
1. Starting out – Creating a Repository
Log into GitHub and create a new repository:
Fill in the details and click “Create Repository”. With a free GitHub account the script will be publicly available, with a paying account you can make it private.
2. VuGen Version Control – Create Local Git Repository
Now create a script in VuGen – in our example it’s ‘BankofSunshine’.
You’ll see a new ‘Version Control’ menu available in VuGen. Chose the option to ‘Create a local Git Repository’.
VuGen manages the files to include so you don’t need to create a .gitignore file. If you prefer to manage it yourself, you can do that too.
3. Commit Changes to the Staging Area
Now you need to commit your script to the local repository. Do this each time you’ve made changes that you might want to push to Git Hub, or if you want to be able to roll back any changes.
When you commit, your local repository is ready to be pushed up to GitHub – but is still only available to you.
4. Push Changes to GitHub
Once you are ready to save your script up to GitHub, you will need to Push the changes.
The first time you do this with your script you will need to tell VuGen some details about the GitHub repository.
Enter your details that you created in Step 1:
Now your newly created script is saved to GitHub.
5. There’s no step 5.
That’s all you need to do. When you go to GitHub and click on your repository, you will see all the files that you just pushed:
To keep track of changes made locally to the script, VuGen will show you which files have updated with a red tick:
While you can access your scripts in ALM from the Controller, you can’t yet access your scripts in GitHub from the Controller. You’ll need to pull down a local copy before you run your test.
Now you are up and running, how about exploring more of what GitHub has to offer. Each script saved to GitHub comes with a Wiki and issues register. These could come in handy when you have large or tricky scripts or for handover to another team
Share your thoughts on VuGen GitHub integration below.
If you’ve ever worked with RDP VuGen scripts, you’ll know it can be challenging to develop a reliable script. This applies if you need to generate high load via LoadRunner RDP scripts for performance testing. It also applies if you need reliable RDP scripts over time as part of a monitoring solution using Business Process Monitors (BPM)s in HP BSM. Differentiating between false errors and real errors with RDP VuGen scripts can be time consuming and drive you insane.
Over and above writing a robust RDP VuGen script, here are some tips to more reliably run RDP scripts in either LoadRunner or HP BSM. We have successfully run 250+ concurrent RDP user tests with no errors using a combination of the below, even without the RDP agent using LoadRunner. There are a number of additional techniques to make RDP scripts more reliable but these are beyond the scope of this article.
Script Run-Time Settings:
RDP Synchronization Image Tolerance:
Set the default tolerance for image synchronization to Exact. This should be the global setting. You can relax the tolerance on a case by case basis in the rdp_sync_on_image function using "Tolerance= Medium" where tolerance can be Exact, Low, Medium or High.
RDP Synchronization Typing Speed:
Set the typing speed (msec/char) to at least 300 (msec/char). In some cases the script will still run faster in LoadRunner than you want it to, in which case you can try increasing the typing speed further.
RDP Server settings:
RDP-tcp Session Properties:
Set your Terminal Server settings to automatically end disconnected sessions after 1 minute. This will ensure that any disconnected/hung sessions are automatically logged out so the next user can pick up a “clean” session. If allowed also set Active and Idle session limits to Never. This will ensure there will be no limits to how long a user can be active or idle in the RDP session.
These options are found in Remote Desktop Session Host Configuration > Properties > Sessions Tab.
End a disconnected session: 1 minute
Set Active session limit: Never
Idle session limit: Never
Still having problems?
Connection Reset by Server Errors.During test execution on the LR Controller, you are getting the following error:-202930 xxx.c(xx): Error:Connection reset by the server
Generally this is a difficult error to find the root cause for but if you have a scenario with large think-time and/or pacing (minutes) and find that your vusers are failing with the above error, we suggest you try this first.
Increase the Socket receive buffer size (bytes) in Run-Time settings. This option is found under Run-Time Settings > RDP > Advanced > Socket receive buffer size (bytes).
VuGen has a description as follows:
The amount of bytes to allocate for the socket’s receive buffer. If the buffer is too small, it can fill up causing the server to disconnect. If the buffer is too large, it uses more local system resources (non-paged memory) and can slow system performance.
Why automate? ServiceNow provides two releases a year, delivering new features to consistently support best practice processes. ServiceNow has flagged ... Read More
Splunk .conf18 – Splunk Next: 10 Innovations As part of .conf18 and in the balmy Florida weather surrounded by theme ... Read More
ServiceNow’s Service Portal allows businesses to interact with their users/customers with a catalog of various items, giving users easy access ... Read More
Understanding how your SAP system is performing can be a time-consuming process. With multiple environments, servers, APIs, interfaces and applications, ... Read More
Micro Focus Application Lifecycle Management’s (ALM) workflow is one of its most powerful features, allowing you to extend ALM’s capabilities ... Read More
ServiceNow is a robust SaaS (Software-as-a-Service) platform that replaces unstructured work patterns with intelligent workflows. ServiceNow is designed to improve ... Read More
The introduction of the Service Portal, using AngularJS and Bootstrap, has given ServiceNow considerable flexibility, allowing customers to develop portals ... Read More
ServiceNow has released its latest version, Istanbul, which introduces a game changing innovation for the platform—Automated Test Framework to provide ... Read More
Topology churn is one issue that can cause serious Foglight performance degradation. It is the result of constant changing and creation of ... Read More
The LoadRunner Windows monitors (Windows Resource monitor, Microsoft IIS monitor) collect metrics using NetBIOS (port 139). The easiest way to ... Read More
According to the system documentation, QuickTest Professional supports a number of terminal emulators, the vendors including Attachmate, Hummingbird, IBM, NetManage, ... Read More
LoadRunner 9.5 was released today and the focus has been on refining current functionality rather than adding completely new features. This ... Read More
HP recently released LoadRunner 12.02 and here at JDS, we have had first hand look at what HP has to offer in this new release. Many new and interesting features were introduced as part of this release, with a new feature called Web Controller available for non-production testing included. Here is a brief summary and initial thoughts of the new release.
Web Controller
Must run separately from the desktop Controller.
Currently not released for Production. Released as part of a Preview Project.
HP has gone with a much cleaner, white themed look for the Scenario Set Up in the Web Controller and have also removed a few options which are available in the desktop Controller
Removed these options in Scenario Schedule:
Schedule by: Scenario
Run Mode: Real- world Schedule
Scenario Schedule is now replaced by:
Schedule By Test
Schedule By Script
Noise Testing
The noise test performs basic load testing without an actual business process. The approach of this test scenario is to create heavy load on the server by having the same URL accessed simultaneously by a large number of virtual users.
1 web Vuser license can instead be used for for 10 “noise” Vusers.
A noise testing scenario can be set up with a standard Vugen script load scenario. One scenario will contain standard Vusers and the other will have noise generator type Vusers.
“noise_” prefix will be automatically added to the group name in the scenario groups. This helps with distinguishing the different group tests.
Make sure that either the “Define each actions as a transaction” or Define each step as a transaction” is selected in the Run-time settings.
Vugen
Run Time Settings now appears in a Tab instead of a separate window. This will allow easier access to multiple run time settings for multiple scripts.
Traffic filtering is now possible before/after recording. This means you can record a script, and then regenerate to exclude Google analytics etc. Might be a useful alternative to creating a blacklist of servers as was the previous way to achieve this.
Updates to the way TruClient identifies objects. The enhancement is in the Descriptor Editor where the user selects attributes to identify the object by. This does not require the use of XPath as with previous versions.
New JSON view in snapshot pane, for HTTP requests and responses with an application/json content type.
Proxy recording for Java over HTTP, Oracle NCA, and Oracle – Web protocols
Large scripts with multiple correlations can be easily handled
Analysis
Analysis can now support much larger results files without consuming all the system resources. Good news for analysing soak results with lots of transactions / monitoring stats.
Protocol Enhancements
Support for latest versions of XenDesktop, and NetScaler Access Gateway.
TLS1.1 and TLS1.2 are now supported
RTE has Win 8.1, Windows 2012 R2, and IPv6 support.
Why automate? ServiceNow provides two releases a year, delivering new features to consistently support best practice processes. ServiceNow has flagged ... Read More
Splunk .conf18 – Splunk Next: 10 Innovations As part of .conf18 and in the balmy Florida weather surrounded by theme ... Read More
ServiceNow’s Service Portal allows businesses to interact with their users/customers with a catalog of various items, giving users easy access ... Read More
Understanding how your SAP system is performing can be a time-consuming process. With multiple environments, servers, APIs, interfaces and applications, ... Read More
Micro Focus Application Lifecycle Management’s (ALM) workflow is one of its most powerful features, allowing you to extend ALM’s capabilities ... Read More
ServiceNow is a robust SaaS (Software-as-a-Service) platform that replaces unstructured work patterns with intelligent workflows. ServiceNow is designed to improve ... Read More
The introduction of the Service Portal, using AngularJS and Bootstrap, has given ServiceNow considerable flexibility, allowing customers to develop portals ... Read More
ServiceNow has released its latest version, Istanbul, which introduces a game changing innovation for the platform—Automated Test Framework to provide ... Read More
Topology churn is one issue that can cause serious Foglight performance degradation. It is the result of constant changing and creation of ... Read More
The LoadRunner Windows monitors (Windows Resource monitor, Microsoft IIS monitor) collect metrics using NetBIOS (port 139). The easiest way to ... Read More
According to the system documentation, QuickTest Professional supports a number of terminal emulators, the vendors including Attachmate, Hummingbird, IBM, NetManage, ... Read More
LoadRunner 9.5 was released today and the focus has been on refining current functionality rather than adding completely new features. This ... Read More
Do you have a correlation which you can’t solve because the values of the left and right boundary are dynamic? Correlation is an essential part of performance test scripting and there are plenty of different challenges with correlation. Imagine having a value of “GraphA123567EndGraphA” and the goal is to correlate 123567
From the example above, the left and right boundaries would be “LB=GraphA” “RB=EndGraphA”
What if the word GraphA is dynamic and can be anything from GraphA-GraphZ?
There is a solution at hand!
Using web_reg_save_param_regex will allow the user to grab a correlation value using dynamic left and right boundaries. This function uses the power of regular expressions, below are a few examples:
Example 2:
Correlate the values from a drop down list of a form
Source: dropdown >>> red, blue, green
Solution: web_reg_save_param_regexp(“ParamName=ColourList”, “RegExp=option=[0-9]+>([A-Za-z])
{ColourList1}=red
{ColourList2}=blue
{ColourList3}=green
Example 3:
Correlate up till the end of 642
Source: J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642″];
Solution: web_reg_save_param_regexp(“ParamName=SecurityString”,”RegExp=\”([A-Z0-9a-z\\\\+]+==\\|[0-9]+)\”\\];”,LAST);
Result:J\u002blsGd3zj1qdP\u002bvk0vDRaKyJFde5tCa6spDEy08SNab1hP8j5GTs4j6\u002f\u002bTqOwvxMHEQZLWd\u002btu8NlHJrVAarIQ==|634998513832503642
Example 4:
Correlate only “634998513832503642” Source:
So what is a Regular Expression?
Also known as regex, a regular expression is a search string which enables matching of a string. Think of it as an advance searching function which can pick out values from a string of multiple characters.
Examples of regex:
\d matches a single digit
\w matches a single word (including alphanumeric characters and underscore)
[A-Z]+ matches any word which is upper case
[a-z]+ matches any word which is lower case
[0-9]+ matches any numeric value
There are other alternatives to web_reg_save_param_regexp. However these functions are limited and not as flexible.
LB/DIG RB/DIG – # will be a wildcard for a numeric value“session_id_##”
Adding LB/IC/DIG will ignore case
“LB/IC/DIG=session_id_##=” (e.g. Session_id_20)
LB/ALNUM or RB/ALNUM – ^ will be a wildcard for an alphanumeric value
ALNUMIC – ignore case
ALNUMLC – match only lower case
ALNUMUC – match only upper case
SaveOffSet
If there is a dynamic value for a boundary e.g. “session_id_2” (3,4,5)
LR 11 does not support multiple capture groups however this is now supported in LR 11.52 (example below)
Example Multiple Capture Groups
Source: rows”:[[“NW,RO,RA”,”DLY”,”10/07/2011″,”10/17/2011″,”10/01/2011″,”RA”,”Y”,”FR”,”AMEA”,”AC”,”1945″,”50″,”50″,”AC 100IOSH-08″,”UserDefined”,”10/07/2011″,”Reassigned”…”
Recently a client had an urgent request to monitor a HTTPS URL due to poor availability and performance. No problem, give me the URL and I’ll have the monitor set up and running in 10 minutes. However, a simple task turned into an investigation of Vugen certificates and Windows security patching.
For any HTTPS request Vugen would not show any events after code generation and the recording browser would show:
The recording environment was:
Vugen 11.04
Windows XP
Internet Explorer 7
As HTTPS requests worked from normal browsing the problem pointed towards a Certificate issue somewhere between Vugen and the requested site. Investigation discovered that a recent Windows Security patch (http://support.microsoft.com/kb/2661254) now blocks all RSA certificates less than 1024 bits long.
This is a problem for Vugen as it uses RSA private key of length 512 bits in files wplusCA.crt and wplusCAOnly_.crt.
Note: In Vugen 11.50 these files are called 1.wplusCA_Expiration_2020.crt and wplusCAOnly_Expiration_2020.crt.
You can find the Vugen certificates in the following directory:
<LoadRunner installation folder>\bin\certs\
Fortunately HP are aware of the problem and have issued the following critical updates to increase the private key length to 2048 bits:
Why automate? ServiceNow provides two releases a year, delivering new features to consistently support best practice processes. ServiceNow has flagged ... Read More
Splunk .conf18 – Splunk Next: 10 Innovations As part of .conf18 and in the balmy Florida weather surrounded by theme ... Read More
ServiceNow’s Service Portal allows businesses to interact with their users/customers with a catalog of various items, giving users easy access ... Read More
Understanding how your SAP system is performing can be a time-consuming process. With multiple environments, servers, APIs, interfaces and applications, ... Read More
Micro Focus Application Lifecycle Management’s (ALM) workflow is one of its most powerful features, allowing you to extend ALM’s capabilities ... Read More
ServiceNow is a robust SaaS (Software-as-a-Service) platform that replaces unstructured work patterns with intelligent workflows. ServiceNow is designed to improve ... Read More
The introduction of the Service Portal, using AngularJS and Bootstrap, has given ServiceNow considerable flexibility, allowing customers to develop portals ... Read More
ServiceNow has released its latest version, Istanbul, which introduces a game changing innovation for the platform—Automated Test Framework to provide ... Read More
Topology churn is one issue that can cause serious Foglight performance degradation. It is the result of constant changing and creation of ... Read More