Skip to content

argus-authz/load-testsuite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

load-testsuite

A load testsuite for Argus based on Grinder

Synopsis

This load test suite provides two tests:

  1. Authorize test

    Each run execute three authorize request: the first expects Permit as response value, the second one expects Deny, the last expects Not Applicable.

  2. Concurrent test

    Every thread of each process, execute the same request in every run. Before send the request, threads wait on a barrier, with the purpose of verify the correct user mapping.

Configuration

For configuring load test, edit the file test.properties. Basically you need to specify:

  • user certificate path (public and private key);
  • one or more PEPD endpoints;
  • a resource id
  • a permit range, a deny range and a not applicable range
  • an action id
  • which test you want run

Values specified in the properties file must be coherent with the policies loaded in the Argus deployment. An example for load some policy is provided within this testsuite in bin/setup_argus.sh shell script.

Run manually

For run the load testsuite, on the client host must be installed:

First, install dependencies:

# yum install java-1.8.0-openjdk argus-pep-api-java argus-pep-common

Before run the test, create a proxy certificate. For example:

$ voms-proxy-init --voms test.vo --cert user_cert/test0.cert.pem --key user_cert/test0.key.pem

Export an environment variable with the proxy location:

$ export X509_USER_PROXY=/tmp/x509up_u`id -u`

Then execute the load test, running the shell script:

$ ./run.sh

Run with Docker

This testsuite provides a Docker image for run the load tests. All the needed files are located in docker folder. First, build the new image:

$ ./build-image.sh

This shell script creates a new docker image, named italiangrid/argus-load-testsuite in the local image repository. Then run the container:

$ docker run italiangrid/argus-load-testsuite:latest

The last command launch a container that run load-testsuite with default setup. For customize the execution, provide to Docker the properties file with the -v option and the proper environment variables with -e option. For example:

$ docker run -v ~/test.properties:/tmp/test.properties -e REPO_BRANCH="feature/ISSUE-1" -e PROCESS=1 -e THREADS=1 -e RUNS=1 -e TEST_PROP_FILE=/tmp/test.properties italiangrid/argus-load-testsuite:latest

When customize the properties file, pay attention to grinder.script option. Remember that load-testsuite is located in /home/tester/load-testsuite, so the use of absolute path is recommended.

Available environment variables
Variable Default Meaning
REPO_BRANCH master Git branch to checkout
PROCESS 10 Number of process to run
THREADS 10 Number of thread for each process
RUNS 100 How many times iterate the test
TEST_PROP_FILE argus/pepd/test.properties Test properties file
USE_CONSOLE false Use Grinder console for manage load test
CONSOLE_HOST localhost Hostname where Grinder console is running
PROXY_VO test.vo VO used for generate proxy certificate
USER_CERT /home/tester/.globus/usercert.pem User public key path
USER_KEY /home/tester/.globus/userkey.pem User private key path

About

A load testsuite for Argus based on Grinder

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published