pyATS provides tools and concepts to support asynchronous execution, allowing programs and functions to run in parallel and independently of the main program flow. The goal is to improve performance by leveraging available CPUs and I/O limits without requiring the user to manage the underlying logistics and overhead.
Rather than reinventing Python's built-in threading or multiprocessing libraries, the pyATS async module builds upon them to automate common boilerplate tasks required in test automation, such as:
- Log file management: Handling logs generated by parallel processes.
- Connection resilience: Re-establishing lost connections or sessions.
- Resource management: Handling resource sharing and locking (e.g., managing shared Telnet/SSH connections).
- Inter-process communication: Facilitating two-way communication and state synchronization between processes.