Home  <    Software Components


The software components below released as is, and can be used for whatever you want:
Test Harness
Command Line Stress Test Harness
Graphical Soap Stress Test Client
DB to HSQL In-Memory DB table loader
Web based Photo Album




Test Harness
The Test Harness is used for automating the process of testing invocation points. As the business logic are getting more complex a significant number of test cases must be created to cover all possible execution paths and possible variations. This test harness will help accomplishing this by simplifying the creation and execution of test cases. This test harness has great benefits if the input and output has many attributes and the flow within the invocation point has many different flows. Please note that this is a framework that can be used out of the box, but usually all projects have specific requirements; therefore some customization to the code is probably required. This program is written in standard Java v1.4+ and will run as a standalone application. It is written in a fashion that if desired it can be used for testing any invocation point that accepts an xml string as input and output. It can also be used as a starting point if the invocation point is not a WS.



The input and output is defined in a MS Excel file. XPath is used to define the location of the attribute.

The program will then generate the input XML based on this information. When the program is processing the test cases the output is written to a separate MS Excel file and timestamped. All input and output XML is written to disk.

To use this application, do the following:
  • Download Source Code.
  • Open solution in Eclipse.
  • Customize the invocation point.
  • Open up Global.config and insert URL to your system.
  • Compile and run.
  • For error details review the log4net logfile located under /bin.



Command Line Stress Test Harness
This command line application can be used to stress test an invocation point. You specify number of threads (simultaneous users), how many iterations to execute and max number of invocations. This application is provided as a framework, it is up to you to customize it to your needs. All you have to do is put in the work that has to be done (methods to invoke) and you have a testing framework up and running. It is written in Java


To use this application, do the following:
  • Download Source Code.
  • Open solution in Eclipse.
  • Customize the invocation point.
  • Open up Global.config and insert URL to your system.
  • Compile and run.
  • For error details review the log4net logfile located under /bin.


Graphical Soap Stress Test Client
This application can be used to stress test a WS application. You specify number of threads (simultaneous users), how many iterations to execute and max number of test cases. This application is provided as a framework, it is up to you to customize it to your needs. All you have to do is put in the work that has to be done (methods to invoke) and you have a testing framework up and running. This application is written in MS C#.


To use this application, do the following:
  • Download Source Code.
  • Open solution in Visual Studio.
  • Add a WebReference to the application. Use the WSDL from the system to be tested.
  • Open up App.config and insert URL to your system.
  • Modify the class HitThread.cs to invoke your new WS. Search for keyword // CHANGE for what to modify. Add whatever assertions are required when response is received.
  • Compile and run.
  • For error details review the log4net logfile located under Performance_Testing\LoadTest\bin.


DB to HSQL In-Memory DB table loader
For performance reasons it makes sense to keep everything in memory instead of having to access file systems or remote resources, for those reasons db access is usually slower. I have written some utility classes that access a source DB and automatically load a DB table into a HSQL In-Memory table. The only thing you need to specify is the table name and the in-memory table is created and all data is loaded into the new in-memory DB table. Since you will be keeping the data in-memory, you should analyse your dataset first and see if it is feaseble to use these utilities or not. By using these approach I saw impsressive performance improvements for DB access below 0.5ms.

As always, there are room for improvements:
  • It does not support indexes (Except for Primary Keys (PK) that are auto-indexed by HSQL).
  • It does not support PK-Foreign Key relationships.
  • It only supports read (since the HSQL shutdown is not implemented).
  • It is currenly singelthreaded (by design).


To use this application, do the following:

Web based Photo Album
This site's photo album section is using this code. It is written in PHP, contains three main components, the photoalbum.php where the main logic is located, the photo_data.php is where the photos to be displayed is entered manually, and the file photoalbum_constants.php that contains the constants.
To use this application, do the following:
  • Download Source Code.
  • Customize it based on your requirements.
  • Add look and feel.
  • Enter in photos.
  • Cut the photos into tumpnails (recommended size 100p X 75p).
  • Resize photos (Recommended size 600p X 400p).
  • Upload everything to your site.
  • Test, using link: http://YOUR_HOST_NAME/photoalbum.php?category=0&album=0