r1 - 03 Sep 2009 - 06:45:08 - OlegSmolovYou are here: Wiki >  AppLogic27 Web > CatWebserversIISTP
ALERT! AppLogic 2.7/2.8 Documentation The latest production release is AppLogic 3.0.30

IIS03W/IIS03S/IIS03E/IIS03DC: Internet Information Server appliances - Test Plan

Preparation

Host platform

The automated tests described here for the IIS appliance are designed to run on a Linux system and are verified to work on CentOS 5. They don't need anything CentOS-specific and should work on other Linux distros.

These tests must be launched from a remote host, that has an SSH access to the AppLogic24.AppLogic controller.

Tools

All necessary tools are supplied within the test suite. You need SSH installed and ssh keyfile for your AppLogic24.AppLogic grid to perform the tests.

ab

The main tests for the IIS appliance uses is ab - Apache HTTP server benchmarking tool.

source: http://mirror.centos.org/centos/5.2/os/SRPMS/httpd-2.2.3-11.el5_1.centos.3.src.rpm

RPM: http://mirror.centos.org/centos/5.2/os/i386/CentOS/httpd-2.2.3-11.el5_1.centos.3.i386.rpm

Tests Summary

Configuration Tests

  • Configuration propagation test: verify the IIS config file is updated according to IIS configuration
  • Listen port test
  • Connection limit test: max connections, able to serve specified connections
  • Memory management test: test with different memory configurations
  • Client connection failure test: verifies that IIS can be accessed only through the in terminal

Logging Tests

  • Log file tests: verifies log path, log lifecycle

Functional Tests

  • HTTP test: verifies ability to serving web requests (HTTP/1.0 and HTTP/1.1)
  • Application serving test: verifies application server functionality (ASP support)

Resource Tests

  • CPU/Memory resource tests: tests IIS performance under various CPU/Memory configurations.

Endurance Tests

  • Smoke test: verifies that appliance start and working
  • Start-Stop test: verifies that appliance can be started and shut down multiple times

Benchmarks

  • Benchmark: verifies the maximum IIS performance

Running the Tests

To run the tests on AppLogic27.AppLogic grid, copy and uncompress the tests archive file to a directory of your choice. Launch the test suite running the iis-test.sh file. Test suite imports the test application, or prompt you to use an existing, created previously, one.

Example test aplication:
iis_testapp.png

If you choose to create a new test application, the test suite will import a new application and configure it, assuming that the IIS instance that you want to test is located in the /proto/ catalog and in named IIS. If you want to test another instance of IIS, you can either copy it to the /proto/ catalog or open the test suite application in AppLogic24.AppLogic GUI and manually drag the necessary IIS instance over an existing one.

Design

Structure

The test application is built from from the following:

  • client1 appliance (based on LINUX5) is used for benchmarking, testing HTTP protocol and some configuration tests of the 1st IIS instance
  • client2 appliance (based on LINUX5) is used for benchmarking, testing HTTP protocol and some configuration tests of the 2nd IIS instance
  • client3 appliance (based on LINUX5) is used for reading counters from MON
  • www1 appliance (based on IIS) is used for testing the IIS application server
  • www2 appliance (based IIS) is used for testing the IIS application server
  • data appliance (based on NAS) is used for log storage (via cifs terminal) and content storage (also via cifs terminal)
  • MON appliance is used for monitoring statistics
  • NET appliance is used for testing an external connectivity (Internet)

The test script is fully automated and includes the ability to install the necessary test software on the test application components' instances. The user does not need to install any software on any of the appliances; the test script takes care of everything.

Test Details

All tests use default configuration unless otherwise specified. During every test messages containing test details and progress will be displayed. If an error occur during any step, an error message " = Test failed = " will be displayed, with error details. After every successful test a message " = Test passed = " is displayed.

  • ALERT! For successful operation, test suite must be the only application running on the grid, or some tests, mainly performance ones, may fail.

  • ALERT! Some tests, especially resource-intensive ones, may fail if you do not have enough resources available. This is not a IIS fault.

  • ALERT! Most of the tests should not be interrupted by a user. If it happened that you had to interrupt the test, stop the test application with "application stop" before proceeding to the next test.

Configuration propagation test

Reconfigures IIS with different settings and verifies that all settings in IIS configuration file is updated accordingly

Test changes multiple properties of IIS, launches the application, verifies successful changes in IIS's config file and verifies that IIS is operational with these settings. Every possible value of every property is tested.

Listen port test

Test the ability of IIS to listen the port

Connection limit test

Verifies connection enforcement

Two test configure IIS to support a maximum of 50 and 20 simultaneous connections and verify that connections limit is enforced. ab test with less than 50 and 20 clients must succeed, and the one with more than 50 and 20 - fail.

Memory management test

Tests IIS configuration under various memory resources available

Test detects the amount of free memory available on the grid where the test application is running, and verifies proper updates to the Maximum Simultaneous Connections value in the IIS configuration. IIS is tested with 256Mb, 384Mb, 512Mb, 1Gb, 1.5Gb, 2Gb, 3Gb, 4Gb, 8Gb, 16Gb, 32Gb and 64Gb of memory, subject to available free memory on the grid. Any mismatches between reported property values and reference values are reported.

This test may fail at some point when there are not enough free resources available. This is not a IIS fault.

Client connection failure test

Verifies that IIS is accessible only through the in terminal

This test tries to connect to IIS through other than in terminals. All attempts must fail.

Log file and log level tests

Verifies IIS operations with different access log functionality

This test verifies log management:

  • no log file is created when logs_enabled is set to no
  • log file is created with the name and path specified in logs_base_dir

HTTP test

Test IIS to serve web requests by HTTP/1.0 and HTTP/1.1 protocols

Application serving test

Verifies IIS as application servers (ASP/ASP.NET support is enabled)

Monitoring subsystem functionality test

Verifies that IIS reports correct statistics counters to mon appliance.

net terminal functionality test

Verifies ability of IIS to communicate with a network outside of an application via net terminal connected to NET appliance.

CPU/Memory resource tests

Tests IIS performance under various memory, cpu and bandwidth resources available

This test detects the amount of memory, cpu and bandwidth resources available on the grid, and tests the IIS performance with all possible combinations to the limits imposed by resource availability. IIS is tested with the following settings:

  • Memory (x86): 256Mb, 384Mb, 512Mb, 1024Mb, 1536Mb, 2048Mb
  • Memory (x64): 768Mb, 1024Mb, 1536Mb, 2048Mb, 3072Mb, 4096Mb, 8192Mb, 16384Mb, 32768Mb, 65536Mb
  • CPU (x86): 0.10, 0.20, 0.40, 0.50, 1, 1.5, 2
  • CPU (x64): 0.25, 0.40, 0.50, 1, 1.5, 2, 4, 8, 10, 12, 16, 32
  • Bandwidth: 1Mbit, 10Mbits, 100MBits, 200MBits, 500MBits, 1Gbit, 1.5GBits, 2Gbits
  • 10 clients, 100 transactions

Client LINUX5 appliance is configured with 512Mb of memory, 1 cpu and 500Mbit of bandwidth for this test. This test may fail if there are not enough free resources available on the grid to run all required appliances.

Benchmark

Verifies maximum IIS performance

For this test IIS is configured with 2 cpus, 500Mbits of bandwidth and 2Gb of memory, and optimized settings (logs_enabled = no). Then the ab test is used to verify IIS performance with 1,10,50 clients.

This test may fail at some point when there are not enough free resources available. This is not a IIS fault.

"Smoke" test

This test verifies that the application can successfully start and working. Tests base things as ability of deploying web applications, running them.

Start-Stop test of the IIS appliance

Verifies that IIS could be safely started and stopped multiple times.

This test verifies that the IIS can be successfully started and stopped multiple times. It is an important test that verifies that all log rotation is performed properly. Amount of start/stop cycles may be specified and be unlimited (in this case the test can be interrupted using control-c).

Endurance test of the IIS appliance

Verifies that IIS could work on heavy load during long time periods

Perform ALL Tests

Run all important tests in automated mode without any details except success/failure messages.

-- OlegSmolov - 03 Sep 2009

 
Copyright © CA 2005-2011. All Rights Reserved.
%