AppLogic 2.7/2.8 Documentation The latest production release is AppLogic 3.0.30
SQUID - Proxy server - Test Plan
Preparation
Host platform
The automated tests described here for the SQUID 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 SQUID 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
http_load
Some test for the SQUID appliance uses is http_load - http test client.
web site:
http://www.acme.com/software/http_load/
source:
http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
Tests Summary
Configuration Tests
- Configuration propagation test: verify the squid config file is updated according to
SQUID configuration
- Client connection failure test: verifies that
SQUID can be accessed only through the in terminal
Logging Tests
- Log file tests: verifies log path, log lifecycle
Functional Tests
- Web accelerator mode and vhosts support test: verifies that appliance can work as reverse proxy and support for web servers with virtual hosting features.
- Proxy mode test: verifies that appliance can work as forwarding proxy.
- mon terminal test: Verifies that
SQUID reports correct statistics counters to mon appliance.
Resource Tests
- CPU/Memory resource tests: tests
SQUID performance under various CPU/Memory configurations.
Endurance Tests
- Endurance test: verifies that appliance can work long time under high load
- Start-Stop test: verifies that appliance can be started and shut down multiple times
Benchmarks
- Benchmark: verifies the maximum
SQUID performance
Running the Tests
To run the tests on AppLogic2.AppLogic grid, copy and un-compress the tests archive file to a directory of your choice. Launch the test suite running the squid-test.sh file. Test suite imports the test application, or prompt you to use an existing, created previously, one.
Example test aplication:
If you choose to create a new test application, the test suite will import a new application and configure it,
assuming that the SQUID instance that you want to test is located in the /proto/ catalog and in named SQUID.
If you want to test another instance of SQUID, you can either copy it to the /proto/ catalog or open the
test suite application in AppLogic24.AppLogic GUI and manually drag the necessary SQUID instance over an existing one.
Design
Structure
The test application is built from the following:
-
client1, client2 appliances (based on LINUX5) used as client for tests
-
webserver appliance (based on LINUX5) used as original web server accelerated by SQUID
-
NAS appliance used for log storage (via cifs terminal)
-
NET appliance used to have access to internet web servers
-
MON appliance used for monitoring statistics
There are 2 instances of SQUID appliance in test application. The first one named "SQUID" is used for almost all test and the second named "proxy" used only for test forwarding proxy functionality.
The test script is fully automated and includes the ability to install the necessary test software on the LINUX5 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.
-
For successful operation, test suite must be the only application running on the grid, or some tests, mainly performance ones, may fail.
-
Some tests, especially resource-intensive ones, may fail if you do not have enough resources available. This is not a SQUID fault.
-
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 SQUID with different settings and verifies that all settings in squid.conf configuration file is updated accordingly
Test changes multiple properties of SQUID, launches the application, verifies successful changes in squid.conf config file and verifies that SQUID is operational with these settings.
Every possible value of every property is tested. Also verifies inclusion of user defined configuration file from cache volume.
Client connection failure test
Verifies that SQUID is accessible only through the "in" terminal
This test tries to connect to SQUID through other than "in" terminals. All attempts must fail.
Log file test
Verifies that SQUID can write access logs for debugging or statistical purposes
Web accelerator mode and vhosts support test
Verifies that appliance can work as caching reverse proxy. Also verifies support for web servers with virtual hosting features.
Proxy mode test
Verifies that appliance can work as caching forwarding proxy.
Monitoring subsystem functionality test
Verifies that SQUID reports correct statistics counters to mon appliance.
CPU/Memory resource tests
Tests SQUID 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 SQUID performance with all possible combinations to the limits imposed by resource availability. SQUID is tested with the following settings:
- Memory: 64Mb, 128Mb, 192Mb, 256Mb, 384Mb, 512Mb, 1024Mb, 1536Mb, 2048Mb, 3072Mb, 4096Mb
- CPU: 0.10, 0.20, 0.40, 0.50, 1, 1.5, 2
- Bandwidth: 1Mbit, 10Mbits, 100MBits, 200MBits, 500MBits, 1Gbit, 1.5GBits
- 100 clients
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 SQUID performance
For this test SQUID is configured with 2 cpus, 800Mbits of bandwidth. Then the ab test is used to verify SQUID performance with 1,10,100,500,1000 clients.
This test may fail at some point when there are not enough free resources available. This is not a SQUID fault.
Start-Stop test of the SQUID appliance
Verifies that SQUID could be safely started and stopped multiple times.
This test verifies that the SQUID 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 SQUID appliance
Verifies that SQUID 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.
-- AndriyMayevskyy - 19 Feb 2009
Copyright © CA 2005-2011. All Rights Reserved.