The Squish Test Balancer is a Python-based tool designed to distribute and execute Squish test cases across multiple Squish servers efficiently. It leverages historical execution times to optimize the distribution of test cases, ensuring that longer-running tests are prioritized and balanced across available servers. This tool is particularly useful for teams running large test suites and looking to reduce overall execution time.
- Distributed Execution: Run Squish test cases across multiple Squish servers in parallel.
- Historical Execution Tracking: Track and utilize historical execution times to optimize test distribution.
- Dynamic Load Balancing: Automatically balance the load across servers based on test case execution times.
- Detailed Logging: Color-coded logging for easy monitoring of test execution and results.
- Configurable: Easily configure Squish servers, test directories, and other parameters via a YAML configuration file.
-
Clone the Repository:
git clone https://github.com/CyberAlpaca/squish-test-balancer.git cd squish-test-balancer
-
Python Installation: Ensure you have Python 3.7+ installed.
-
Configure: Edit the
config.yaml
file to specify your squishservers, squishrunner path, and test suites directory.Example
config.yaml
:squish_servers: - 192.168.1.100:4432 - 192.168.1.101:4432 squishrunner_path: /path/to/squishrunner test_suites_dir: /path/to/test_cases
Run the balancer with the following command:
python stb.py /path/to/config.yaml
test_suites_dir
: [Optional] Directory containing the Squish test cases (directories starting withtst_
).config_file
: Path to the configuration file (YAML format).-v, --verbose
: Increase output verbosity.
python stb.py /path/to/config.yaml --verbose
The tool tracks the execution times of test cases and uses this data to optimize future test distributions. Historical data is stored in a JSON file (execution_history.json
) and can be used to calculate average, median, and standard deviation of execution times.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.
- Squish: The GUI test automation tool by Qt.
For any issues or questions, please open an issue on the GitHub repository.
Happy Testing! 🚀