http://grinder.sourceforge.net/g3/tutorial-perks.html
http://www.oreillynet.com/xml/blog/2005/03/load_testing_web_services_with.html
http://grinder.sourceforge.net/g3/tutorial-perks.pdf
http://www.anticlue.net/archives/000395.htm
http://pierrerebours.com/blog/load-testing-using-grinder
The grinder is an open source load testing framework. I went very out of character and utilized the Beta version, grinder 3, because it uses Jython to write scripts. With the grinder 3, you can load test anything; databases, messaging services, web apps, web services, etc. I?m hoping to utilize the grinder 3 to load test Quovadx/Cloverleaf Interface Engine, the Siemens Soarian Clinical Access, Crystal Enterprise 10, 3M?s Encoder, and several other applications.
Installing the Grinder 3
1. First ensure java is installed on the machine where you will be running the scripts. If not, please download from here.
2. Download and unzip the grinder 3 from here.
3. Download the jython2.1 class file.
4. Add the grinder.jar to your CLASSPATH variable.
- Set CLASSPATH=%CLASSPATH%;c:\grinder-3.0-beta23\lib\grinder.jar
5. Install the jython2.1 class file.
- Java jython2-1
Aside: Remember the directory and set it in the grinder.properties file
To get into the Grinder console, run java net.grinder.Console. You can find more about the console here. I'm not very big on the GUI, but it does its job.
Recording Web App test scripts
Hand coding the test scripts would get to be very trying in a very short time. In order to maintain one?s sanity, exploit the TCPProxy httpplugin to record scripts.
1. First, set up IE to temporarily use a proxy server.
- Menu -> Tools -> Internet Options -> Connections tab
- Click on Lan Settings button
- Check the use a proxy server for your lan setting
- Click on Advanced button
- Set the http proxy address to use to be localhost, port 8001
- Set the secure proxy address to use to be localhost, port 8001
2. Fire off the TCPProxy within grinder.
- java net.grinder.TCPProxy ?console ?httpplugin
3. Surf away with the IE session, and you will have all actions recorded.
4. Click Stop Recording on the TCPProxy Window, when you are done.
5. Remove the changes to the IE Browser, unchecking using a proxy server.
6. You will notice within the directory there is a httpscript.py and a httpscript_tests.py file. These are your test scripts.
A quick aside point is that if you don?t want to switch setting, one could always leave ie in the record mode and surf the web with firefox.
Running the test scripts
A key thing to remember when you are running your test scripts, set up multiple grinder sessions on multiple machines. This way everyone isn?t using the same network interface.
1. Set up resource monitoring with performance monitor on the server, and client machine.
2. To run the grinder test scripts;
- In the same directory have a grinder.properties, this file contains the configuration settings
- Also within that directory, have the script you would like to run. For our example, find the httpscript.py and httpscript_tests.py files.
- run java net.grinder.Grinder, from that directory.
Compilation of already published Articles/Ideas/Problems-Solutions which I faced or came across over the period of time. Largely a place for me to document it as note-to-self. Nothing serious. :)
Sunday, July 5, 2009
Load Runner
http://en.wikipedia.org/wiki/LoadRunner
LoadRunner is a performance and load testing product by Hewlett-Packard (since it acquired Mercury Interactive in November 2006) for examining system behaviour and performance, while generating actual load. LoadRunner can emulate hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads, while collecting information from key infrastructure components (Web servers, database servers etc). The results can then be analysed in detail, to explore the reasons for particular behaviour.
Consider the client-side application for an automated teller machine (ATM). Although each client is connected to a server, in total there may be hundreds of ATMs open to the public. There may be some peak times — such as 10 a.m. Monday, the start of the work week — during which the load is much higher than normal. In order to test such situations, it is not practical to have a testbed of hundreds of ATMs. So, given an ATM simulator and a computer system with LoadRunner, one can simulate a large number of users accessing the server simultaneously. Once activities have been defined, they are repeatable. After debugging a problem in the application, managers can check whether the problem persists by reproducing the same situation, with the same type of user interaction.
Working in LoadRunner involves using three different tools which are part of LoadRunner. They are Virtual User Generator (VuGen), Controller and Analysis.
LoadRunner is a performance and load testing product by Hewlett-Packard (since it acquired Mercury Interactive in November 2006) for examining system behaviour and performance, while generating actual load. LoadRunner can emulate hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads, while collecting information from key infrastructure components (Web servers, database servers etc). The results can then be analysed in detail, to explore the reasons for particular behaviour.
Consider the client-side application for an automated teller machine (ATM). Although each client is connected to a server, in total there may be hundreds of ATMs open to the public. There may be some peak times — such as 10 a.m. Monday, the start of the work week — during which the load is much higher than normal. In order to test such situations, it is not practical to have a testbed of hundreds of ATMs. So, given an ATM simulator and a computer system with LoadRunner, one can simulate a large number of users accessing the server simultaneously. Once activities have been defined, they are repeatable. After debugging a problem in the application, managers can check whether the problem persists by reproducing the same situation, with the same type of user interaction.
Working in LoadRunner involves using three different tools which are part of LoadRunner. They are Virtual User Generator (VuGen), Controller and Analysis.
Load Testing Online Video Tutorial
Load Testing with the Web Performance Suite: Quick Start
http://www.youtube.com/watch?v=8ihQJkTvElQ
http://www.webperformanceinc.com/
Apache JMeter
http://www.youtube.com/watch?v=eAksSWSDCP8&feature=related&pos=0
http://www.youtube.com/watch?v=KI6u5pclYIw&NR=1
http://www.youtube.com/watch?v=8ihQJkTvElQ
http://www.webperformanceinc.com/
Apache JMeter
http://www.youtube.com/watch?v=eAksSWSDCP8&feature=related&pos=0
http://www.youtube.com/watch?v=KI6u5pclYIw&NR=1
Load Testing Tools
http://www.opensourcetesting.org/performance.php
Apache JMeter
http://jakarta.apache.org/jmeter/
Description:
Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
Requirement:
Solaris, Linux, Windows (98, NT, 2000). JDK1.4 (or higher).
Download data:
No data feed available
-------------------------------------------------------------
Grinder
http://grinder.sourceforge.net/
Description:
The Grinder is a Java load-testing framework making it easy to orchestrate the activities of a test script in many processes across many machines, using a graphical console application.
Requirement:
OS Independent
Download data:
Downloadable files: 201699 total downloads to date
Apache JMeter
http://jakarta.apache.org/jmeter/
Description:
Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.
Requirement:
Solaris, Linux, Windows (98, NT, 2000). JDK1.4 (or higher).
Download data:
No data feed available
-------------------------------------------------------------
Grinder
http://grinder.sourceforge.net/
Description:
The Grinder is a Java load-testing framework making it easy to orchestrate the activities of a test script in many processes across many machines, using a graphical console application.
Requirement:
OS Independent
Download data:
Downloadable files: 201699 total downloads to date
Friday, November 16, 2007
Unix - Inittab File - similar to crontab
inittab File
Links:
http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/inittab.htm
http://blogs.ittoolbox.com/linux/locutus/archives/exploring-the-etc-directory-inittab-16139
Purpose
Controls the initialization process.
Description
The /etc/inittab file supplies the script to the init command's role as a general process dispatcher. The process that constitutes the majority of the init command's process dispatching activities is the /etc/getty line process, which initiates individual terminal lines. Other processes typically dispatched by the init command are daemons and the shell.
The /etc/inittab file is composed of entries that are position-dependent and have the following
format:
Identifier:RunLevel:Action:Command
Note:
The colon character ( : ) is used as a delimiter as well as a comment character. To comment out an inittab entry, add : at the beginning of the entry.
For example: :Identifier:RunLevel:Action:Command
Each entry is delimited by a newline character. A backslash (\) preceding a newline character indicates the continuation of an entry. There are no limits (other than maximum entry size) on the number of entries in the /etc/inittab file. The maximum entry size is 1024 characters. The entry fields are:
Identifier
A string (one or more than one character) that uniquely identifies an object.
RunLevel
The run level in which this entry can be processed. Run levels effectively correspond to a configuration of processes in the system. Each process started by the init command is assigned one or more run levels in which it can exist. Run levels are represented by the numbers 0 through 9. For example, if the system is in run level 1, only those entries with a 1 in the runlevel field are started. When you request the init command to change run levels, all processes without an entry in the runlevel field for the target run level receive a warning signal (SIGTERM). There is a 20-second grace period before processes are forcibly terminated by the kill signal (SIGKILL). The runlevel field can define multiple run levels for a process by selecting more than one run level in any combination from 0 through 9. If no run level is specified, the process is assumed to be valid at all run levels.
There are three other values that appear in the runlevel field, even though they are not true run levels: a, b, and c. Entries that have these characters in the runlevel field are processed only when the telinit command requests them to be run (regardless of the current run level of the system). They differ from run levels in that the init command can never enter run level a, b, or c. Also, a request for the execution of any of these processes does not change the current run level. Furthermore, a process started by an a, b, or c command is not killed when the init command changes levels. They are only killed if their line in the /etc/inittab file is marked off in the action field, their line is deleted entirely from /etc/inittab, or the init command goes into single-user mode.
Action
Tells the init command how to treat the process specified in the process field. The following actions are recognized by the init command:
respawn
If the process does not exist, start the process. Do not wait for its termination (continue scanning the /etc/inittab file). Restart the process when it dies. If the process exists, do nothing and continue scanning the /etc/inittab file.
wait
When the init command enters the run level that matches the entry's run level, start the process and wait for its termination. All subsequent reads of the /etc/inittab file while the init command is in the same run level will cause the init command to ignore this entry.
once
When the init command enters a run level that matches the entry's run level, start the process, and do not wait for its termination. When it dies, do not restart the process. When the system enters a new run level, and the process is still running from a previous run level change, the program will not be restarted. All subsequent reads of the /etc/inittab file while the init command is in the same run level will cause the init command to ignore this entry.
boot
Process the entry only during system boot, which is when the init command reads the /etc/inittab file during system startup. Start the process, do not wait for its termination, and when it dies, do not restart the process. In order for the instruction to be meaningful, the run level should be the default or it must match the init command's run level at boot time. This action is useful for an initialization function following a hardware reboot of the system.
bootwait
Process the entry the first time that the init command goes from single-user to multi-user state after the system is booted. Start the process, wait for its termination, and when it dies, do not restart the process. If the initdefault is 2, run the process right after boot.
powerfail
Execute the process associated with this entry only when the init command receives a power fail signal (SIGPWR).
powerwait
Execute the process associated with this entry only when the init command receives a power fail signal (SIGTERM), and wait until it terminates before continuing to process the /etc/inittab file.
off
If the process associated with this entry is currently running, send the warning signal (SIGTERM), and wait 20 seconds before terminating the process with the kill signal (SIGKILL). If the process is not running, ignore this entry.
ondemand
Functionally identical to respawn, except this action applies to the a, b, or c values, not to run levels.
initdefault
An entry with this action is only scanned when the init command is initially invoked. The init command uses this entry, if it exists, to determine which run level to enter initially. It does this by taking the highest run level specified in the runlevel field and using that as its initial state. If the runlevel field is empty, this is interpreted as 0123456789; therefore, the init command enters run level 9. Additionally, if the init command does not find an initdefault entry in the /etc/inittab file, it requests an initial run level from the user at boot time.
sysinit
Entries of this type are executed before the init command tries to access the console before login. It is expected that this entry will only be used to initialize devices on which the init command might try to ask the run level question. These entries are executed and waited for before continuing.
Command
A shell command to execute. The entire command field is prefixed with exec and passed to a forked sh as sh -c exec command. Any legal sh syntax can appear in this field. Comments can be inserted with the # comment syntax.
The getty command writes over the output of any commands that appear before it in the inittab file. To record the output of these commands to the boot log, pipe their output to the alog -tboot command.
The stdin, stdout and stdferr file descriptors may not be available while init is processing inittab entries. Any entries writing to stdout or stderr may not work predictably unless they redirect their output to a file or to /dev/console.
The following commands are the only supported method for modifying the records in the /etc/inittab file:
Command
Purpose
chitab
Changes records in the /etc/inittab file.
lsitab
Lists records in the /etc/inittab file.
mkitab
Adds records to the /etc/inittab file.
rmitab
Removes records from the /etc/inittab file.
Examples
To start the ident process at all run levels, enter:
ident:0123456789:Action:Command
To start the ident process only at run level 2, enter:
ident:2:Action:Command
To disable run levels 0, 3, 6-9 for the ident process, enter:
ident:1245:Action:Command
To start the rc command at run level 2 and send its output to the boot log, enter:
rc:2:wait:/etc/rc 2>&1 alog -tboot >
/dev/console
Links:
http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/inittab.htm
http://blogs.ittoolbox.com/linux/locutus/archives/exploring-the-etc-directory-inittab-16139
Purpose
Controls the initialization process.
Description
The /etc/inittab file supplies the script to the init command's role as a general process dispatcher. The process that constitutes the majority of the init command's process dispatching activities is the /etc/getty line process, which initiates individual terminal lines. Other processes typically dispatched by the init command are daemons and the shell.
The /etc/inittab file is composed of entries that are position-dependent and have the following
format:
Identifier:RunLevel:Action:Command
Note:
The colon character ( : ) is used as a delimiter as well as a comment character. To comment out an inittab entry, add : at the beginning of the entry.
For example: :Identifier:RunLevel:Action:Command
Each entry is delimited by a newline character. A backslash (\) preceding a newline character indicates the continuation of an entry. There are no limits (other than maximum entry size) on the number of entries in the /etc/inittab file. The maximum entry size is 1024 characters. The entry fields are:
Identifier
A string (one or more than one character) that uniquely identifies an object.
RunLevel
The run level in which this entry can be processed. Run levels effectively correspond to a configuration of processes in the system. Each process started by the init command is assigned one or more run levels in which it can exist. Run levels are represented by the numbers 0 through 9. For example, if the system is in run level 1, only those entries with a 1 in the runlevel field are started. When you request the init command to change run levels, all processes without an entry in the runlevel field for the target run level receive a warning signal (SIGTERM). There is a 20-second grace period before processes are forcibly terminated by the kill signal (SIGKILL). The runlevel field can define multiple run levels for a process by selecting more than one run level in any combination from 0 through 9. If no run level is specified, the process is assumed to be valid at all run levels.
There are three other values that appear in the runlevel field, even though they are not true run levels: a, b, and c. Entries that have these characters in the runlevel field are processed only when the telinit command requests them to be run (regardless of the current run level of the system). They differ from run levels in that the init command can never enter run level a, b, or c. Also, a request for the execution of any of these processes does not change the current run level. Furthermore, a process started by an a, b, or c command is not killed when the init command changes levels. They are only killed if their line in the /etc/inittab file is marked off in the action field, their line is deleted entirely from /etc/inittab, or the init command goes into single-user mode.
Action
Tells the init command how to treat the process specified in the process field. The following actions are recognized by the init command:
respawn
If the process does not exist, start the process. Do not wait for its termination (continue scanning the /etc/inittab file). Restart the process when it dies. If the process exists, do nothing and continue scanning the /etc/inittab file.
wait
When the init command enters the run level that matches the entry's run level, start the process and wait for its termination. All subsequent reads of the /etc/inittab file while the init command is in the same run level will cause the init command to ignore this entry.
once
When the init command enters a run level that matches the entry's run level, start the process, and do not wait for its termination. When it dies, do not restart the process. When the system enters a new run level, and the process is still running from a previous run level change, the program will not be restarted. All subsequent reads of the /etc/inittab file while the init command is in the same run level will cause the init command to ignore this entry.
boot
Process the entry only during system boot, which is when the init command reads the /etc/inittab file during system startup. Start the process, do not wait for its termination, and when it dies, do not restart the process. In order for the instruction to be meaningful, the run level should be the default or it must match the init command's run level at boot time. This action is useful for an initialization function following a hardware reboot of the system.
bootwait
Process the entry the first time that the init command goes from single-user to multi-user state after the system is booted. Start the process, wait for its termination, and when it dies, do not restart the process. If the initdefault is 2, run the process right after boot.
powerfail
Execute the process associated with this entry only when the init command receives a power fail signal (SIGPWR).
powerwait
Execute the process associated with this entry only when the init command receives a power fail signal (SIGTERM), and wait until it terminates before continuing to process the /etc/inittab file.
off
If the process associated with this entry is currently running, send the warning signal (SIGTERM), and wait 20 seconds before terminating the process with the kill signal (SIGKILL). If the process is not running, ignore this entry.
ondemand
Functionally identical to respawn, except this action applies to the a, b, or c values, not to run levels.
initdefault
An entry with this action is only scanned when the init command is initially invoked. The init command uses this entry, if it exists, to determine which run level to enter initially. It does this by taking the highest run level specified in the runlevel field and using that as its initial state. If the runlevel field is empty, this is interpreted as 0123456789; therefore, the init command enters run level 9. Additionally, if the init command does not find an initdefault entry in the /etc/inittab file, it requests an initial run level from the user at boot time.
sysinit
Entries of this type are executed before the init command tries to access the console before login. It is expected that this entry will only be used to initialize devices on which the init command might try to ask the run level question. These entries are executed and waited for before continuing.
Command
A shell command to execute. The entire command field is prefixed with exec and passed to a forked sh as sh -c exec command. Any legal sh syntax can appear in this field. Comments can be inserted with the # comment syntax.
The getty command writes over the output of any commands that appear before it in the inittab file. To record the output of these commands to the boot log, pipe their output to the alog -tboot command.
The stdin, stdout and stdferr file descriptors may not be available while init is processing inittab entries. Any entries writing to stdout or stderr may not work predictably unless they redirect their output to a file or to /dev/console.
The following commands are the only supported method for modifying the records in the /etc/inittab file:
Command
Purpose
chitab
Changes records in the /etc/inittab file.
lsitab
Lists records in the /etc/inittab file.
mkitab
Adds records to the /etc/inittab file.
rmitab
Removes records from the /etc/inittab file.
Examples
To start the ident process at all run levels, enter:
ident:0123456789:Action:Command
To start the ident process only at run level 2, enter:
ident:2:Action:Command
To disable run levels 0, 3, 6-9 for the ident process, enter:
ident:1245:Action:Command
To start the rc command at run level 2 and send its output to the boot log, enter:
rc:2:wait:/etc/rc 2>&1 alog -tboot >
/dev/console
Sunday, November 4, 2007
New home builders in Dallas-FortWorth (DFW) area
Grand Homes, New Home Builder in Dallas and Ft. Worth, Texas 214 ...
Grand Homes is a nationally recognized, award-winning leader in the home building industry. We build exclusively in the Dallas Metroplex.www.grandhomes.com/ - 41k - Cached - Similar pages
Centex Homes - Builders of New Homes for Sale in Texas, Florida ...
We are builders of quality new homes and real estate developments with more than 50 years of experience. We build new homes in Florida,Texas,California ...www.centexhomes.com/ - 41k - Cached - Similar pages
KB homes by KB Home - New Home Builders - (www.kbhomes.com ...
Offers floor and site plans, features, and pricing information for new homes in Arizona, California, Colorado, Florida, Georgia, Nevada, New Mexico, ...
Stock quote for KBH
www.kbhome.com/ - 26k - Cached - Similar pages
Royce Builders - New Homes Houston, Dallas, Phoenix & Atlanta
Today, with over 15000 satisfied homeowners, privately owned Royce Builders is ranked one of the best new home builders in Houston, Texas. ...www.roycebuilders.com/ - 11k - Cached - Similar pages
Austin TX New HomesSearch Lennar homes in Austin.Browse photos, tours & floor plans.www.Lennar.com/Austin
Grand Homes is a nationally recognized, award-winning leader in the home building industry. We build exclusively in the Dallas Metroplex.www.grandhomes.com/ - 41k - Cached - Similar pages
Centex Homes - Builders of New Homes for Sale in Texas, Florida ...
We are builders of quality new homes and real estate developments with more than 50 years of experience. We build new homes in Florida,Texas,California ...www.centexhomes.com/ - 41k - Cached - Similar pages
KB homes by KB Home - New Home Builders - (www.kbhomes.com ...
Offers floor and site plans, features, and pricing information for new homes in Arizona, California, Colorado, Florida, Georgia, Nevada, New Mexico, ...
Stock quote for KBH
www.kbhome.com/ - 26k - Cached - Similar pages
Royce Builders - New Homes Houston, Dallas, Phoenix & Atlanta
Today, with over 15000 satisfied homeowners, privately owned Royce Builders is ranked one of the best new home builders in Houston, Texas. ...www.roycebuilders.com/ - 11k - Cached - Similar pages
Austin TX New HomesSearch Lennar homes in Austin.Browse photos, tours & floor plans.www.Lennar.com/Austin
Saturday, November 3, 2007
How It's Made : The Science Channel (Discovery)
How It's Made : The Science ChannelFind out How It's Made here! ... The Science Channel :: How It's Made. Find out all the secrets of How It's Made, from boomerangs to birthday cakes. ...science.discovery.com/fansites/howitsmade/howitsmade.html
Subscribe to:
Posts (Atom)