David’s Thesis Blog


Week 8 Update
September 24, 2008, 6:39 am
Filed under: Uncategorized | Tags:

Due to illness I wasn’t able to attend the week 8 meeting at 3pm. However Naimul and Lenny was able to go and fill me in on what was required.

We also had a meeting with Shiping last week just before his overseas trip. He was happy with the development stage and instructed us wee can start the documentation part now.

We have split the work up into 3 distinct sections with little overlapping yet great degree harmony.

Me –

Java implementation and development side – Primarly the web service test and web server stress tests, may have time for an additional one.

Development wise I have made a data generator which can be used for all future tests and will be rewriting the ant build script for the final package.

Lenny –

Developing the .NET C# implementation and development. He has shown me his print result log development and is currently working on an ATM implementation.

Naimul –

Is developing additional features and function of the framework mainly the

get error rate , set error rate

get confidence level, set confidence level

This will provide a far more powerful degree of statistical analysis of the final results and the framework’s capabilities.

Since my development stages is the most complete, I will be starting to write the user and technical manuals and the general layout.

Advertisements


HttpTest.java
September 10, 2008, 2:08 pm
Filed under: Uncategorized

Have just finished the http GET implementation as requested by Dr Shiping from our last meeting. Some notes.

Currently the test class will as per usual run x threads each thread running for x amount of time generating clients. Each client will randomly extract a url from a list, parse the url with the java url class to extract the protocol (currently only supports http) the host and the port, if there is no port the default port of 80 will be used, and the filename to GET. The client will then connect to the host, sent the GET request and output the results to a file (this is optional). Finally resultlog is called and with a data report.

Some notes

  • Modified randomline class used in yahootest to be used with httptest, randomline can pretty much be used for implementation that may be random data, especially useful for an implementation of a POST test imo.
  • Found a neat use for the postrun() function as a place to increment a count++. This was used to serve as a way to output the files without conflicting filenames. Currently the filename for each output is host name + thread ID + counter.
  • Google blocks it and seems to lock you ip out for a few seconds.
  • Will publish code after, it is a bit more polished.

Meanwhile i will run the class on this blog to boost my hit counter.

Output example from the console –

BUILD SUCCESSFUL
Total time: 16 seconds
C:\PerfTester>ant test
Buildfile: build.xml

test:
     [java] test config fileName = C:\PerfTester\test.prop
     [java] Tester.init(C:\PerfTester\test.prop) called
     [java] — listing properties —
     [java] testName=Http
     [java] testWarmup=5
     [java] testCooldown=5
     [java] testClassName=HttpTester
     [java] testThreadNmuber=2
     [java] testRuntime=10000
     [java] Tester.run() called
     [java] testThreadNmuber = 2
     [java] To instance a test driver
     [java] HttpTester starting…
     [java] HttpTester starting…
     [java] Host: www.google.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.java.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.java.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.java.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.java.com Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.usyd.edu.au Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.java.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.google.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Host: www.yahoo.com Port: 80
     [java] Thread-0 : exited
     [java] Thread-1 : exited
     [java]
     [java] Tester.report() called
     [java] testName = Http
     [java] minValue = 78
     [java] aveValue = 619
     [java] maxValue = 4591
     [java] 80  1
     [java] 100 5
     [java] 340 1
     [java] 360 9
     [java] 380 2
     [java] 400 3
     [java] 480 1
     [java] 520 3
     [java] 540 3
     [java] 4520        1
     [java] 4600        1

BUILD SUCCESSFUL
Total time: 11 seconds
C:\PerfTester>



Draft Treatise and More to dos
September 8, 2008, 2:07 am
Filed under: Uncategorized

The draft treatise was handed in and while doing so I have finalized my two chapters.

  • Intro
  • Background
  • Development
  • Implementation
  • Conclusion

Developments

Will cover all improvements and modifications I make on the exisiting framework, at the moment this includes:

  • Confidence level functions
  • Data generator
  • xml resultlog

Possible inclusions

  • GUI
  • Real time graph generator
  • more ideas to come
  • A compare function – it will compare two resultslogs and give a detailed analysis of the comparison.

Developments will be done last and may even be developed side by side as implementation

Implementation

This is the core of the treatise as it is what Dr Shiping wishes we focus on. This section will include very detailed instruction and description guides on the implementation of the framework onto various softwares on various platforms and languages.

At the moment implementation includes

  • Webservice – Yahoo Search through JAVA
  • Webservice – Google search through C# .NET
  • Webpage/Web server – Random url – implemented through data generator

Future possibilities

  • A pre-deployment implementation – consisting of unfinished classes to show the testing of a software before completion.
  • Two identical programs – one written in ‘bad code’ and see if the testing framework can clearly show the differences in performance as expected.
  • Making .NET C# and Java versions of all implementations
  • Making a configurable form tester, allowing for easy adding/editing/deleting of form fields.


CSIRO Shipping meeting week 5
September 1, 2008, 2:47 am
Filed under: Uncategorized

Quick summary of the meeting with Dr Shipping in week 5.

  • Shipping was quiet happy with my implementation of of the framework onto the yahoo search web service.
  • He suggested an additional option of having the details of the test displayed, optional to the user, this is evidently a sensible idea in a real life testing scenario where there would be hundreds of threads running.
  • He was also very pleased with the random line class i wrote, as it would provide a very useful tool for simulating future test case scenarios, however I feel there still many improvements that can be made onto the class.
  • Shipping suggested I look into implementing the testing framework into simulating web browser interaction with web servers/sites. This is to help demonstrate the flexibility and power of his framework. Hence my next class would be to simutanteously test over 100 websites running 10 threads on each.
  • While incorporating the print result log class written by Lenny, however he said he is in the midst of upgrading the print result log function to printing to xml instead of just plain text.
  • Furthermore we will be getting a .NEt C# version of the framework and Lenny and me will be assigned to converting all the original java work into .NET to prove that the framework is is flexible and not just multi platform but also multi-language.

Will finish the rest of the summary in the next post.