CLIF is a Java framework providing a generic infrastructure to generate load on any kind of system, and gather performance measurements (request response times, computing resources usage).
- It is Open Load testing platform
- It includes load injectors, for generating traffic (a variety of protocols are supported such as HTTP, FTP, SIP…), and
- Probes, for measuring resource usage (processor, memory, network…).
Some key Features
- It has four user interface: Swing-based GUI, Eclipse-based GUI, command line, plug-in for Hudson/Jenkins continuous integration server
- Graphical monitoring and execution control of all probes and load injectors
- Advanced, generic, extensible scenario definition environment ISAC, coming with:
- a graphical editor
- plug-ins for managing target protocols (HTTP, DNS, TCP, SIP, etc.) and miscellaneous utilities (counters, random timers, runtime parameter provisioning from an external data source…)
- a powerful execution engine, able to manage a million virtual users and a million requests/second throughput per load injector (the actual limits depend on the computing overhead of the target protocol management)
- load injectors provided for UDP, TCP, FTP, HTTP(S), SIP, RTP, LDAP, JDBC, JMS, IMAP
- Eclipse wizard to define extra load injectors in Java for any protocol
- Low footprint probes available for CPU, memory, disks, network, JVM
- Java framework to define custom probes (samples for SNMP and JMX management protocols)
How it works
The load injector is in charge of hosting and executing test scenarios and measuring response times, while the probe component measures the consumption of system resources (related to CPU, memory, swap, network, disk, etc.). There are other components which cover different functionalists as listed below:
- The storage component, which is responsible for storing test data.
- The collector component responsible for transporting test data to the storage component.
- The analyzer component supporting exploitation of test data and a number of scenario components, one per load injector, responsible for invoking the tested system.
Execution control, monitoring, and setup of load injectors and resource probes, is done from a supervision console. Supervision is achieved either through graphical user interfaces, or using command-line tools enabling batch programming of tests.
For more details click here.