Following the upgrade of Quality Center from v.9 to v.10, the client asked whether it will be possible to retain the license usage history after the upgrade.
January 28th, 2010 Posted by Reinhardt Moller
Following the upgrade of Quality Center from v.9 to v.10, the client asked whether it will be possible to retain the license usage history after the upgrade.
January 4th, 2010 Posted by Stuart Moncrieff
LoadRunner has a whole bunch of logging options. These can be specified in your script’s runtime settings, or specified in your script’s code with lr_set_debug_message(). There are some gotchas when changing your logging options with a C function call, so I have written some functions that will be helpful.
Read the rest of this entry »
December 23rd, 2009 Posted by Michael te Wierik
Once your Quality Center users discover that they can add attachments to defects (and test cases, and test sets etc etc), your storage requirements increase dramatically. Here is a neat way to prevent your users from attaching files over a certain size anywhere in Quality Center.
Read the rest of this entry »
December 22nd, 2009 Posted by Reinhardt Moller
In the Quality Center Site Administration console there is a Site Analysis tab which gives you a break-down of the QC license usage over time. This is useful if you want to understand the overall usage patterns of Quality Center but it does not give detailed information about the individual users or their login statistics (such as the projects each user has logged in to, total login count or individual login times).
December 13th, 2009 Posted by Stuart Moncrieff
This is the start of a multi-part series of articles that compares the available free/open source load testing tools.
Read the rest of this entry »
November 20th, 2009 Posted by Stuart Moncrieff
Lots of people write articles on what they think are “best practices” in performance testing, but I think that it is also good to spend some time thinking about what projects do wrong.
This is a list of problems I have seen again and again on different projects over the years. They are mostly management-related problems, rather than technical problems, so I would consider this a guide for Test Managers and Project Managers, rather than performance testers (maybe they can print it out and pin it to their cubicle wall though).
Read the rest of this entry »
November 17th, 2009 Posted by Stuart Moncrieff
When a company wants to buy LoadRunner, there are a few key pieces of information that you need to find out, before you can actually sell them the product. This can be frustrating for some customers who don’t appreciate that they can’t just walk into a shop and say “I would like to buy one LoadRunner please”.
This Tech Tip contains some of the questions you need to ask during the LoadRunner pre-sales phase…
Read the rest of this entry »
November 3rd, 2009 Posted by Nick Wilton
The LoadRunner Analysis tool can either be a godsend or the devil’s daughter. I think most Performance Analysts have a love-hate relationship with the Analysis tool…and refer to it as some sort of necessary evil.
With a little bit of patience, the Analysis tool is actually quite powerful and can be used to produce some fantastic graphs and information for your reports.
Everyone seems to learn their own tricks, and I’ll include some that we tend to use here at JDS. If you have any more of your own, please submit these as comments.
Read the rest of this entry »
October 28th, 2009 Posted by Nick Wilton
Windows 7 has finally been released, and I’ve had the pleasure to install the latest retail release. Whilst the application support for Windows 7 is quite good, I have to unfortunately report that at this time, HP Loadrunner 9.5 does not work at all as a native Windows 7 application.
Read the rest of this entry »
October 27th, 2009 Posted by Ray Ffrench
If you’re like me and want to use QuickTest Pro when you are out of the office, you will be interested in the commuter license utility called WCOMMUTE.exe which allows you to ‘CHECK OUT’ a license from the QTP Concurrent License Server to your PC.
This will allow you to run QTP without being near any network and have it valid for 30 days. After it expires, just CHECK IN and then CHECK OUT again.
I have included some instructions on how to do this and some screen shots…
Read the rest of this entry »
October 8th, 2009 Posted by Stuart Moncrieff
Installing HP Diagnostics in a Performance Testing environment is generally fairly simple. You will probably only be using it during a short performance testing phase, and therefore don’t have to worry about the long-term management issues of a system that will be used for years at a time. Personally, I budget about half a day for an install (not including custom configuration) in a non-Production environment as long as I know that I have administrator/root access to all the servers, and there are no firewalls between any of the servers.
Installing HP Diagnostics when it is intended for Production Monitoring is a much more complicated exercise, and requires a much greater investment of time. Read on for my tips…
Read the rest of this entry »
October 7th, 2009 Posted by Stuart Moncrieff
LoadRunner licensing seems to confuse some people (there are currently 2563 product numbers under the “Performance Center” centre in the HP pricelist). This Tech Tip attempts to clarify how it all works.
Read the rest of this entry »
October 7th, 2009 Posted by Nick Wilton
Video has seen a massive surgance on the internet with the launch of YouTube and other video sharing web sites. This raises some interesting challenges beyond simple scripting in VuGen; with a combination of Javascript, Adobe Flash and HTTP partial download support.
This article will show you how to play a video, and save it to your hard drive.
Read the rest of this entry »
October 5th, 2009 Posted by Stuart Moncrieff
LoadRunner/VuGen supports both Web (HTTP/HTML) virtual users and Media Player (MMS) vusers, but it does not allow you to create a multiple protocol script using these two protocols.
Fortunately, with a little bit of hacking, you can create a multi-protocol vuser with these two protocols yourself.
Read the rest of this entry »
September 29th, 2009 Posted by Stuart Moncrieff
How to write a date seems kind of trivial for a technical tip, but it is obviously needed because so many people get it wrong.
Your date format is especially important when you use it for versioning by putting it put a date at the end of your filename.
Read the rest of this entry »
September 12th, 2009 Posted by Stuart Moncrieff
There are quite a few people writing about LoadRunner and Performance Testing on the web now. This is a short list of some of the better ones. Feel free to leave a comment with your favourite sites.
Read the rest of this entry »
September 9th, 2009 Posted by Paul Richards
Sometimes an application running on a client (even a web broswer) will send the IP address of the client machine to the server at the Application layer, rather than the Network layer. This is surprisingly common with web-based apps designed to run on a company’s intranet.
To make a BPM script accurately mimic a real user, the script should also send back the real IP address of the machine it is running from.
Read the rest of this entry »
August 19th, 2009 Posted by Stuart Moncrieff
I recently created some BPM scripts for the BMC Remedy Action Request System 7.1 web client. This Tech Tip contains some of the things that I learnt.
My favourite part of this exercise was proving that the person from BMC who said “we have already tried, and found that it is impossible to script ARS with VuGen” was totally wrong.
Note that the information should be equally relevant whether you are creating VuGen scripts for LoadRunner, or for use as BPMs for BAC.
Read the rest of this entry »
August 19th, 2009 Posted by Stuart Moncrieff
Imagine that you have created a BPM script that monitors one of your critical business systems from 10 locations around the world. The application only allows users to log on once, so you must find a way to have each location use a different login account for the application.
Unfortunately the most obvious solution (creating a file-based parameter and setting the “username” field to “Select next row: Unique”) does not work for BPM scripts, only with LoadRunner.
There are a few different solutions to this problem, each with their own tradeoffs.
Read the rest of this entry »
August 14th, 2009 Posted by Stuart Moncrieff
The LoadRunner Windows monitors (Windows Resource monitor, Microsoft IIS monitor) collect metrics using NetBIOS (port 139).
The easiest way to create an authenticated NetBIOS session between your LoadRunner Controller and the servers you want to monitor, is to map a drive on each server from the Controller.
Rather than manually mapping drives, you can save some time by creating a batch file to do it for you.
Here is an example batch file that will map drives for you:
Read the rest of this entry »
August 7th, 2009 Posted by Stuart Moncrieff
VuGen is a great tool for developing scripts to emulate business processes for performance testing or application monitoring, but there are small number of changes that would make it an even better tool.
Read on for my list of VuGen feature requests…
Read the rest of this entry »
August 4th, 2009 Posted by Stuart Moncrieff
Many years ago I had a team member who would always answer “yes” when I asked if he had finished the LoadRunner script he was working on. Invariably he had not finished the script.
So I sat down and wrote a checklist for him, and told him that he should only answer “yes” if he had been through the checklist and completed every item.
Read the rest of this entry »
July 8th, 2009 Posted by Stuart Moncrieff
LoadRunner 9.51 is a patch for for LoadRunner 9.50 which adds some minor functionality (including SiteScope 10.0 compatibility) and, according to the release notes, fixes bugs raised in 48 service requests. Readers interested in the major additions to the most recent major release of LoadRunner should read the Tech Tip on new features in LoadRunner 9.50.
Read the rest of this entry »
June 28th, 2009 Posted by Stuart Moncrieff
Quality Center stores the user/role relationship in a strange way in the database. This Tech Tip shows you one way you could write an SQL query for this relationship if, for some reason, you did not want to use the QC Admin view.
Read the rest of this entry »
June 26th, 2009 Posted by Stuart Moncrieff
Sometimes the reports available from Quality Center don’t quite give you what you want, and you find that you need to extract data from the QC database and manipulate it using Excel.
Here are a few tips to get you started…
Read the rest of this entry »
June 23rd, 2009 Posted by Stuart Moncrieff
This Tech Tip contains the slides for my Performance Testing web 2.0 talk, that I presented at HP Software Universe 2009 in Las Vegas.
Read the rest of this entry »
May 29th, 2009 Posted by Stuart Moncrieff
I was recently called in to troubleshoot a large-scale HP Diagnostics installation. This Tech Tip contains some of the things I learnt about scaling a Diagnostics Server to handle a large number of Probes.
Read the rest of this entry »
May 29th, 2009 Posted by Stuart Moncrieff
If you studied programming, you probably know a few little factoids like “global variables are bad”, and “goto is considered harmful”. Some people can even explain why (and in what situations) these statements are true.
Read the rest of this entry »
May 29th, 2009 Posted by Daniel La
Client-side certificates are a way to more securely identify a user of a web application. VuGen supports client-side certificates, but there are one or two gotchas…
Read the rest of this entry »
May 22nd, 2009 Posted by Linden Darling
JDS Australia has developed a set of Custom Checks for WebInspect that aim to detect malicious HTML/JavaScript related to automated attacks being carried out across the Internet that infect Web Applications. These malicious payloads connect to domains under the control of the attacker that deliver attacks against known vulnerabilities in commonly installed applications (e.g. Adobe Acrobat Reader and Adobe Flash, in the case of the Gumblar/Matruz payloads).
Read the rest of this entry »
May 8th, 2009 Posted by Stuart Moncrieff
This is a repository of code snippets. Please send me any useful sections of code that you have written.
Note that this repository does not contain trivial examples (i.e. something you could learn by looking at the example code in the LoadRunner Online Function Reference – accessed by pressing F1 in VuGen).
Read the rest of this entry »
April 21st, 2009 Posted by Reinhardt Moller
According to the system documentation, QuickTest Professional supports a number of terminal emulators, the vendors including Attachmate, Hummingbird, IBM, NetManage, Seagull, WRQ and Zephyr. However there are a myriad of other vendors out there with terminal emulators that could manually be integrated with QTP. This document will go through the setup of one of these, namely the TN3270 Plus emulator.
Read the rest of this entry »
April 15th, 2009 Posted by Stuart Moncrieff
On very rare occasions, you will find that you need to create a BPM script using a Java-based vuser type instead of a C-based virtual user type. There is one nasty gotcha to keep in mind if you need to do this.
Read the rest of this entry »
March 29th, 2009 Posted by Stuart Moncrieff
Let’s imagine that you want to execute arbitary SELECT, INSERT, UPDATE and DELETE queries against a MySQL database from a VuGen script. Obviously it is easiest to use the JDBC libraries from a Java-based script, but most people aren’t licensed for any of the Java-based vuser types.
It is much more useful to be able to interact with MySQL from a C-based vuser script, such as the Web (HTTP/HTML) vuser type. JDS has already released code that allows you to use MySQL instead of the Virtual Table Server from a C-based script, but this code will allow you to run any query you like.
Read the rest of this entry »
March 27th, 2009 Posted by Stuart Moncrieff
This Tech Tip contains the slides for my Performance Testing web 2.0 talk, that I presented at ANZTB 2009 in Sydney.
Read the rest of this entry »
March 26th, 2009 Posted by Reinhardt Moller
We all know that “analog” is widely considered a dirty word when it comes to QTP scripting. It is very sensitive to changes in the environment in which the script is executed, such as objects that were moved in the window, changes to screen resolution or changes to window size & position. We can’t do much when it comes to the first problem, but there is a simple trick that should eliminate the problems caused by changes to the window size and position, and in some cases screen resolution;
Read the rest of this entry »
March 12th, 2009 Posted by Nick Wilton
Background
A few months ago, I was asked to investigate a method for testing multiple web browsers inside a corporate environment where each desktop is governed by a corporate standardized image. I’m sure you know this scenario, where a testing team is required to ensure compatibility with multiple released and pre-released internet browsers. However, having multiple individual PC’s configured with multiple IE versions is costly and difficult from a corporate standards perspective.
Furthermore, the browser market is rapidly changing. The entrenchment of Microsoft Internet Explorer is slowly eroding with Firefox, Safari and newcomer Chrome taking a substantial portion of the browser market. Even operating system usage is more diversified than ever before in the Internet Age, with MacOS and Linux making significant inroads.
Read the rest of this entry »
March 4th, 2009 Posted by Stuart Moncrieff
In DNS-based load balancing, a website visitor will request a URL (like www.jds.net.au/tech-tips/). Their web browser will do a DNS lookup of the hostname (www.jds.net.au), and the DNS server will return the IP address of one of several web servers; possibly in a round-robin fashion to distribute the load across the servers.
The visitor will usually cache the results of the DNS lookup for a period of time (30 minutes in Internet Explorer), so their requests will all be sent to the same web server (this is a good example of the fact that “load balancing” is not the same thing as “high availability”).
But what if you want to ensure that all your virtual users in a load test are spread evenly across the web servers, or what if you want to have a BPM script check each web server in turn?
This is where you have to get a little sneaky…
Read the rest of this entry »
February 23rd, 2009 Posted by Stuart Moncrieff
You might have noticed that once you have started your load test, it is possible to increase the number of transactions per hour by adding virtual users, but not by changing the pacing time.
The VuGen Pacing runtime setting is only read at the start of the test so, to change it, it is necessary to stop the test, then make the change and restart.
Fortunately (if you need to), you can write code to control the pacing of your virtual users instead of using the runtime settings. If you write code to pick up a pacing setting from a file, and check the file on each iteration, then you can cause your script to delay for the right amount of time to meet your desired transaction rate.
Read the rest of this entry »
February 17th, 2009 Posted by Stuart Moncrieff
LoadRunner 9.5 was released today and, as mentioned by the LoadRunner Product Manager, the focus has been on refining current functionality rather than adding completely new features.
This is not meant to be an exhaustive list (or a replication of the readme file), but it covers the features that I think are significant, and also my impressions after a day of using the tool.
For those who want the executive summary, LoadRunner now works on Vista, and has an agent for the RDP vuser type. The biggest new feature is the protocol detection feature in VuGen. For those who want a more detailed analysis, read on…
Read the rest of this entry »
February 11th, 2009 Posted by Stuart Moncrieff
Scott Moore from LoadTester Incorporated has started producing podcasts about load testing. His first podcast is an interview with Mark Tomlinson, who is HP’s Product Manager for LoadRunner.
Read the rest of this entry »
February 10th, 2009 Posted by Stuart Moncrieff
Let’s say that you have to determine the difference between two dates (represented as strings) and express the result in seconds (which could be positive or negative). How would you do this in VuGen?
Read the rest of this entry »
February 9th, 2009 Posted by Stuart Moncrieff
Occasionally you will find that you must write some code in VuGen to continuously check that the system has completed something, before you continue.
Two examples that I have found recently were:
Read the rest of this entry »
January 23rd, 2009 Posted by Stuart Moncrieff
Someone asked me once if there was a way of putting think time into a VuGen script that could not be ignored by changing the runtime settings.
There are very few situations I can think of where this would be a good idea, but it is certainly possible to force a VuGen script to pause for a specified number of seconds irrespective of the script’s runtime settings.
Read the rest of this entry »
January 23rd, 2009 Posted by Nick Wilton
From time to time, you may notice variances within the Loadrunner Analysis tool. This is most apparent when reviewing the Transaction Response Time (Percentile) graph.
Read the rest of this entry »
January 13th, 2009 Posted by Stuart Moncrieff
Recently I ran a test at a company which had a performance test environment with multiple web servers, but no load balancer. To spread my virtual users evenly across the web servers, I made a simple modification to my script.
Read the rest of this entry »
January 13th, 2009 Posted by Stuart Moncrieff
VuGen isn’t just a tool for load testing and application monitoring, it can be used to automate any repetitive task on a web application.
In this example, a JDS web security expert had found that a page on a content-managed website allowed anyone to request any file in the database (http://www.example.com/FileViewer/getFile.do?id=1449 ).
It was easy to create a simple VuGen script to compile a list of all the files in the database.
Read the rest of this entry »
January 13th, 2009 Posted by Stuart Moncrieff
A common question from people creating web-based VuGen scripts is how to handle timestamp values that are sent as part of a name/value pair in an HTTP request.
Read the rest of this entry »
January 8th, 2009 Posted by Stuart Moncrieff
HP software tools all have have different trial licensing periods. This is a short list of the demo license details for the major products.
Read the rest of this entry »
December 22nd, 2008 Posted by Stuart Moncrieff
Occasionally you will find that you need to create a VuGen script for a web application which changes the number of name-value pairs which are sent with a POST request. This tech tip shows you how to handle this situation by dynamically constructing a POST body.
Read the rest of this entry »
December 16th, 2008 Posted by Stuart Moncrieff
Anyone who works with VuGen should know that they should compare strings using the standard C function strcmp(), rather than the equality operator (==).
In the example below, there are three string variables that each contain “hello world”. Comparing the strings using strcmp() shows that all the strings are the same, but comparing them using “==” gives TRUE for string1==string2, but FALSE for string1==string3.
I leave this as a challenge to the reader to explain this behaviour (please leave a comment below).
Read the rest of this entry »
December 16th, 2008 Posted by Nick Wilton
One of the main drawbacks with VuGen is the inability to easily store data for later retrieval, and the lack of interscript communication. I had this exact problem on a recent assignment, the problem was that the business process involved a batch process that needed to run before the rest of the business process could continue. The business scenario looked like this:
Read the rest of this entry »
December 11th, 2008 Posted by Stuart Moncrieff
When requesting that firewall ports be opened, it is useful to be able to check that they really have been opened using the simplest method possible. Using a telnet client is the perfect way to do this, as it comes standard on Windows and all Unix-like systems.
Read the rest of this entry »
December 10th, 2008 Posted by Stuart Moncrieff
LoadRunner does not come with a monitor for Tomcat. Fortunately, you can easily create one in about 5 minutes…
Read the rest of this entry »
December 7th, 2008 Posted by Stuart Moncrieff
Writing a Detailed Test Plan (DTP) before you begin a formal performance test cycle is really important. Often, people just take a functional testing DTP template and modify it. This practically guarantees that they will leave out important information (because functional testing is very different to performance testing).
Over the years, I have had to review a lot of testers’ DTPs. Read on for my tips on what to include in your test plan…
Read the rest of this entry »
November 20th, 2008 Posted by Reinhardt Moller
When trying to load a VMWare image you may be presented with an error message like this:
Read the rest of this entry »
November 1st, 2008 Posted by Stuart Moncrieff
It’s wrong to assume that VuGen scripts are always written in C. Some virtual user types are only available in other languages, and some give you an option of generating a recorded script in a variety of languages. At current count, LoadRunner supports 8 languages (or 6, if you consider VBA, VBScript and VB to be the same language).
This post shows the list of languages available for LoadRunner/VuGen 9.10, and which vuser types they are available for.
Read the rest of this entry »
October 17th, 2008 Posted by Reinhardt Moller
One of the quick ways to identify those areas in a VuGen script that requires correlation is to record it twice and manually compare the two scripts. Built in to VuGen is the tool WDiff, a basic file comparison tool. However, I have found that it is rather limiting in what it can do, and have found a great alternative.
Read the rest of this entry »
October 6th, 2008 Posted by Stuart Moncrieff
It is possible to test web services using the standard Web (HTTP/HTML) virtual user type instead of the Web Services vuser type. The main disadvantage of this is that you cannot generate your SOAP body from the WSDL file using the VuGen wizard. But if you know what your XML request should look like, then you shouldn’t have any real problems.
Here are my tips:
Read the rest of this entry »
September 26th, 2008 Posted by Stuart Moncrieff
Recently JDS was given a good reminder of why VuGen’s Download Filters are an important product feature.
Someone created a BPM script to monitor the performance and availability of the JDS website.
Suddenly our website traffic looked like this on Google Analytics…
Read the rest of this entry »
September 20th, 2008 Posted by Stuart Moncrieff
So you’ve imported your web server logs into a database, and you’re ready to start extracting useful information from them.
If your logs are in W3C Extended Log Format, you may have some or all of the following columns available to you (depending on your logging configuration)…
Read the rest of this entry »
September 20th, 2008 Posted by Stuart Moncrieff
If you are preparing to do some serious analysis of your web server logs, it makes sense to transfer the logs to a database, so that you can easily extract information by running SQL queries. This article shows how to easily import IIS logs into MS SQL Server.
Read the rest of this entry »
August 25th, 2008 Posted by Reinhardt Moller
I came across this problem while installing QTP 9.5 earlier this week which caused a fair amount of frustration. The clients had QTP 9.0 installed on their laptops. I uninstalled 9.0, restarted and attempted the installation of 9.5. The first laptop went through fine but on the second one I was shown a message saying “Uninstall was not completed. Please restart the computer before installing QuickTest 9.5″.
Read the rest of this entry »
July 27th, 2008 Posted by Stuart Moncrieff
If you are trying to create a LoadRunner script for a SAP Web Dynpro application, and you are having problems correlating the SAPEVENTQUEUE in your POST request, then this Tech Tip is for you…
Read the rest of this entry »
June 7th, 2008 Posted by Stuart Moncrieff
A long time ago, on the first day of my first ever load testing job, the project manager approached me and said “I’m sorry, we can’t find the LoadRunner manuals. Is this going to be a problem?”. I waved him away; “Not at all. I won’t need them.”
Read the rest of this entry »
May 15th, 2008 Posted by Stuart Moncrieff
The IT industry often seems acronym addicted, and the software testing and application monitoring fields are certainly typical of this. Here at JDS we even named our company newsletter the TLA Times (TLA of course standing for Three-Letter Acronym).
Here is a list of acronyms (many of them TLAs) that are relevant to people who work with the ex-Mercury (now HP Software) toolset.
Read the rest of this entry »
April 10th, 2008 Posted by Stuart Moncrieff
On very rare occasions you may encounter a web-based application that causes VuGen to throw an error during code generation. Every time this has happened to me, it has been solvable without having to talk to HP Software Support. Read on for my tips…
Read the rest of this entry »
April 1st, 2008 Posted by Tomer Eckhous
Say you want to populate your CMDB with all the servers at your company. A discovery tool is the obvious answer, but what if you don’t have DDM (previously known as MAM)? SiteScope has new a feature which will allow you to populate your CMDB using EMS integration topology.
Screenshots of the presentation are provided here, but you may also download the PowerPoint slides from this presentation.
Read the rest of this entry »
April 1st, 2008 Posted by Tomer Eckhous
This is a short presentation on the BAC JMX Console, a feature that allows you to directly call methods exposed by the underlying BAC API.
Screenshots of the presentation are provided here, but you may also download the PowerPoint slides from this presentation.
Read the rest of this entry »