Recently I had the need to decode a Base64 string received from a server and in the process I created an include file that contains both Encode and Decode functions for base64. Use & Abuse as you see fit! Enjoy! Read the rest of this entry »
Base64 Encode/Decode for LoadRunner
Posted by Kim on Wednesday, September 30, 2009
Posted in LoadRunner | Tagged: Base64, LoadRunner | Leave a Comment »
The end of summer and the start of work
Posted by Kim on Friday, September 11, 2009
And so ends the summer & vacations and work begins … Back at the desk solving some the performance problems of the world.
Posted in Main | Leave a Comment »
Vacation time!
Posted by Kim on Saturday, August 8, 2009

A well performed Golf shot
Yes it’s true, I’m on vacation and not really doing very much at all … at least no real performance testing work!
But I’m active with planning the future for my company, and so we changed our Celarius.com look to more match the new comapny vision. In the near future I will start writing blog articles on the celarius pages as well as here, but they will be more from a commercial standpoint. This blog still remains as my private projects/discoveries etc blog..
And as it is summer and and I performed outstandingly on the golf-course on Friday I just have to include my opening shot on a 150 meter PAR 3 hole. The ball landed 15 cm (6″) from the flag, and my birdie was assured! The Birdie-whiskey we enjoyed afterwards was better than usual!
I hope you all have had a good summer and recharged your battires for a potentially demanding fall’09 !
Posted in Main | Leave a Comment »
Performance Test Tool Poll
Posted by Kim on Friday, May 8, 2009
I’ve had my poll for “Which LoadTesting tool do you use most?” open for some time now, but unfortunately there has been a very low level of participation, and therefore I now ask you to please participate and let us know what tools you are using!
Posted in Main | Tagged: Performance, Poll | 1 Comment »
Search & Replace function for LoadRunner
Posted by Kim on Friday, March 13, 2009
Sometimes it is necessary to process parameters in LoadRunner after they have been “captured” using web_reg_save() or similar methods. There is no built-in function to do this, and I’ve seen multiple horrific attempts at different kinds of Search & Replace methods over the years.
In light of this I decided to post the source for my working solution that does not eat memory, is fast and is LoadRunner parameter friendly. It can be used by anyone who has worked with LoadRunner before! Read the rest of this entry »
Posted in LoadRunner | Tagged: LoadRunner | 7 Comments »
Using a custom DLL in LoadRunner
Posted by Kim on Tuesday, February 24, 2009
Sometimes LoadRunner does not provide all the needed features that one needs when doing performance testing. One option is to write DLL’s to handle the needed stuff and writing your own custom DLL’s is really easy once you get the hang of it!
I needed to do a few HTTP calls “under the radar” from a script so using Delphi 2009 I wrote my own HTTPClient DLL that allows me to do a HTTP GET to a specific URL without adding to the statistics (Pages and Hits/Sec stats). Read the rest of this entry »
Posted in Delphi, LoadRunner | Tagged: Delphi, LoadRunner | 3 Comments »
Optimizing a Delphi 2009 app using Firebird 2.5 Alpha 1
Posted by Kim on Tuesday, February 3, 2009
The last few days I’ve spent optimizing an application written in Delphi 2009 that talks to a Firebird database using the standard TIBDatabase, TIBTransaction and TIBSQL components The application needs to do alot of reading/writing to the database, and was rather slow so I had to optimize it a little … Read the rest of this entry »
Posted in Delphi, Firebird | Tagged: database, Delphi, Firebird | 14 Comments »
Windows 7 – A promising thing when it comes to performance
Posted by Kim on Saturday, January 17, 2009
As soon as I was able to (the download surge killing Win7 downloads prevented it for a while) I downloaded and installed 2 copies of the Win7 beta. One was on an old 3GHz HT Intel with 2Gb mem and the other on a Virtual PC inside my QuadCore Vista ultimate machine.
The installation was smooth on both, took about the same time and I was amazed at the lack of problems along the way. Both recognized all hardware components without problems and everything seemed fast on the GFX level even when I was using a VGA mode for both (no seeing any GFX specialties).
I next installed Firebird v2.1 (latest stable) and it insalled without problems as well on both machines. I didn’t have much time to play around with the OS but the little I did showed me a stable well working system with very little or no hichups at all.
In my personal opinion this Win7 will be a hit-OS in the future. It feels fast and looks good and I see no reason for me to start looking into alternative OS’s in the future. If drivers and programs are made compatible with this Beta I suspect they will work well with the official release and if MS adds WinFS or other enhancements to it later they will likely not break the compatibility in any way.
I for one will surely use it in the future! And a s bonus it seems my Delphi 2009 programs are also working flawlessly on it!
Posted in Main | Tagged: Delphi 2009, Firebird, Windows 7, Windows Vista | Leave a Comment »
How users see a SAP EP Portal perform …
Posted by Kim on Friday, December 12, 2008
I recently had the opportunity to test a SAP Enterprise Portal (web interface) with several different tools. I used both LoadRunner and QALoad, but in the end the customer chose LR for this, since scripting was somewhat easier in LR.
The performance of the EP portal is fairly good when it comes to communicating with the server on a HTTP protocol level, but boy was the customer in for a surprise when they actually used the interface. Read the rest of this entry »
Posted in Main | Tagged: LoadRunner, QALoad, SAP | Leave a Comment »
In-Script simulation of a load-balancer with LoadRunner
Posted by Kim on Thursday, September 18, 2008
When testing enterprise grade web-based solutions there is often a company-wide LoadBalancer present that is a black-box from the testers point of view. Bypassing the LoadBalancer during testing is usually very important to be able to determine one servers limits or capacity.
There are however situations where the LB’s need to be simulated in a controlled way, and having the load share known and controlled during testing. To achieve this there is a simple trick that can be used in LoadRunner scripts. Read the rest of this entry »
Posted in LoadRunner | Tagged: LoadBalancer, LoadRunner | 8 Comments »
Firebird v2.5 Alpha 1 really makes a differance
Posted by Kim on Wednesday, August 27, 2008
While on vacation I’ve been working on a pet-project that has been around for many years now. The service is a mobile device chat and is powered by Firebird and PHP.
There used to be lots of problems handling more than 400 simultaneous users, but after a DB upgrade to Firebird v2.5 Alpha 1 things really look different.
Previously the DB machine (Dualcore) had one of the CPU’s running at 100% and the other not doing much (FB was Superserver) but after the switch the TOTAL CPU now ranges between 10% and 50% on the DB machine. At the same time the WebServer CPU load also decreased and is constantly under 60% where it used to be over 95% all the time!
So by just switching to the new DB engine a tremendous performance gain was achieved! Also a lot less errors are reported to the PHP error logs. The ones still coming are a deadlocks, but around 30 / 24h which is a lot less than it used to be!
To the Firebird team I want to say “THANK YOU for making a great database engine” !
Posted in Firebird | Tagged: Firebird, Performance, php, SQL | 6 Comments »
More Apache+PHP+Firebird Performance results
Posted by Kim on Wednesday, July 16, 2008
Adding to my previous post on Apache, PHP and Firebird performance I have now achieved a new higscore of 155 pages/sec!
In order to achieve this I had to tweak the SQL statements a little (removed the UPPER() parts), modified the firebird.conf a little and moved the DB to another T61p (DualCore 2.2 GHz) machine. Read the rest of this entry »
Posted in Firebird | Tagged: Apache, Firebird, php | Leave a Comment »
Firebird v2.5 Alpha 1 UPPER() SQL statement resource hog
Posted by Kim on Tuesday, July 15, 2008
During my testing of the Firebird Performance I encountered a strange issue with the UPPER() command in SQL statements. Using the UPPER() command my SQL queries suddenly consumed 100% CPU from the server. All transaction times spike from 1-2 seconds to over 10 for the login operation, and the CPU on the DB machine goes to 100% flat instead of jumping between 30% and 90%… Read the rest of this entry »
Posted in Firebird | Tagged: Firebird, SQL | 2 Comments »
Apache, PHP and Firebird Performance Tuning
Posted by Kim on Monday, July 14, 2008
In the last post I commented that I had a test-bed application, based on Apache, PHP and Firebird, and once the problem with the images was solved I could finally start doing the actual performance testing/tuning that I originally wanted to do.
The only major changes from the last post is that I’ve now upgraded the database engine to the “Firebird v2.5 Alpha 1” that supports SMP, and that the application now contains more base data in the tables. Read the rest of this entry »
Posted in Firebird | Tagged: Apache, Firebird, Performance Tuning, php | 3 Comments »
Apache Serves Images Slowly
Posted by Kim on Thursday, July 10, 2008
Today I had a really interesting and strange problem with the Apache WWW server. It served images very slowly under even light loads and there was really no explanation for this. The CPU on the host machine almost idle and network throughput was nominal too.
After some digging on the internet I found other people also had had this problem, and had suggested various methods to remedy this, like enabling caching and putting images on a separate machine and disabling the KeepAlive feature. Read the rest of this entry »
Posted in Main | Tagged: Apache, Firebird, KeepAlive, php, SQL | 3 Comments »
Poor Processes yield Poor Performace
Posted by Kim on Friday, May 30, 2008
So here I am, sitting in a bar, at an airport, trying to figure out why my flight is over an hour late …
It occurs to me that the processes involved with flights are probably the cause of this, and it dawns on me that a poor process is as much a performance bottleneck as a poorly written piece of software is !!!
The flight was late, according to the lady at the counter, because it left late from the previous airfield. That was something I had figured out by myself, but this seemed to be a perfectly acceptable explanation for her. I of course wanted to know WHY the plane left later than scheduled, but that was something she could not help me with. Read the rest of this entry »
Posted in Main | Leave a Comment »
ScrumWorks SOAP API Test Results
Posted by Kim on Wednesday, May 14, 2008
I won’t go into the details of the specs of the hardware or OS, since there is no reliable way to compare two different systems against each other, but the relative performance on the tested system gives a very good insight as to how it will behave on other systems as well.
I also want to stress that the SOAP API is not the same as the web/desktop client, and may use a different communication model on the server side. The results ARE NOT comparable to the web or desktop client response times.
Posted in Main | Tagged: API, Scrumworks, SOAP | Leave a Comment »
The impact of Digital Signatures
Posted by Kim on Wednesday, May 7, 2008
I recently tested a service that had a Digital Signature system option. At first the Digital Signatures where not enabled, and we were happily testing and getting around 500 ms response times for the service.
Then the Digital Signatures where enabled, and we had to first sign the messages sent, then the server needed to verify the signatures as well.
This turned out to be a major CPU and TIME hog, since on average, regardless of load the verification of the signature took around 200 ms to perform. This made the allover response times increase to around 700 ms for each transaction (200 ms is around 28.5% of 700 ms!). Read the rest of this entry »
Posted in Main | Tagged: Delphi, Digital Signatures, JAVA | Leave a Comment »
More on ScrumWorks Pro API testing
Posted by Kim on Wednesday, April 23, 2008
I today spent most of my time testing the ScrumWorks Pro 3.0 SOAP API, with the MySQL database, and came to the conclusion that there are some potential performance killers in the application.
The test data we used was somewhat larger than a typical small project. This data was scaled to match the expected data amounts of a very large enterprise environment within a few years, with lots of users. Read the rest of this entry »
Posted in Main | Tagged: JAVA, MySQL, Scrumworks | 1 Comment »
OpenSource PT tools lack in features
Posted by Kim on Tuesday, April 22, 2008
I’ve been investigating some of the OpenSource performance test tools available on the market, and it seems that most of them are lacking in features that are essential for performance testing in enterprise environments. A good list of both functional and performance tools can be found at www.opensourcetesting.org.
The biggest problem is that the tools are not designed to give out analyzable data in exported form, or even in viewable and understandable form on the screen. Read the rest of this entry »
Posted in Main | Tagged: Opensource, opensourcetesting.org, soapUI | Leave a Comment »
LoadRunner as a WebCrawler
Posted by Kim on Monday, April 7, 2008
Today I had the opportunity to use LoadRunner for a completely different task than it has been designed for.
The project I’m working with wanted to have a system that “warms up the caches” before it goes live, so we needed to have a system the crawls the production site at a specific time and speed, excludes a set of links and only goes 3 levels deep.
The resulting script was very easy to make, once the initial think-through was done. The code was very simple put into three sub functions: Process_Level_1(), Process_Level_2() and Process_Level_3(). In each function we call a set of recorded URL’s from the previous processing level.
Read the rest of this entry »
Posted in LoadRunner | Tagged: Cache, LoadRunner | 1 Comment »
ScrumWorks Pro SOAP API
Posted by Kim on Saturday, April 5, 2008
The Scrumworks Pro product has an API that works using SOAP calls, and I needed to LoadTest the application using this interface.
I immediately had some problems with it since there seemed to be no documentation at all for non-Java developers. A had a JavaDoc that really didn’t tell me anything (as I’m not a Java developer), and the only raw SOAP example I had was one Danube’s support sent me, which didn’t work for me as it was meant for other tools than LoadRunner … Read the rest of this entry »
Posted in Main | Tagged: LoadRunner, Scrumworks, SOAP | 3 Comments »
Performance Testing Blog – And so it begins
Posted by Kim on Saturday, April 5, 2008
Today it begins, my Performance Testing and Performance Engineering blog, where I’ll outline some of the things I will encounter in this field…
I hope this is going to be a fun and informative place for all of you, but only time and your feedback can determine that!
Helpful tools
The tools I use mostly at work is LoadRunner from HP, but I also use a myriad of other utilities that assist me. The one biggest helpful “utility” i use is probably Delphi, since I can make DLL’s and custom made applications that assist me in the testing process.
Also PHP and Apache are valuable help, since most of my testing is web based. Other very useful tools are WireShark (Network Analyzer) and FireBug (Firefox plugin, HTML analysis).
Posted in Main | Tagged: Delphi, LoadRunner, php, wireshark | Leave a Comment »