Overview
TestDriver sandboxes can be customized to match your testing requirements. Install applications, configure system settings, and prepare environments programmatically to ensure your tests run in the right context.Provisioning API
The provisioning API allows you to customize sandbox environments before running tests.Installing Applications
Use the provisioning API to install software packages:System Configuration
Configure system settings and preferences:Exec Command
Theexec command allows you to run shell commands directly in the sandbox:
Examples
Installing Development Tools
Setting Up a Web Server
Installing Language Runtimes
Pre-Test Setup
Run setup commands before each test:Environment Templates
Create reusable environment configurations:Custom VM Images (Enterprise)
For more complex customization needs, Enterprise customers can work with TestDriver to create custom VM images.Benefits of Custom AMIs
- Faster Startup: Pre-installed applications ready to use
- Consistency: Identical environments across all test runs
- Complex Setup: Handle intricate installation procedures once
- Version Control: Track and manage environment changes
What Can Be Pre-Installed
- Desktop applications (browsers, IDEs, etc.)
- System dependencies and libraries
- Language runtimes and frameworks
- Database servers and tools
- Custom certificates and credentials
- System configurations and settings
Working with TestDriver
Enterprise customers receive dedicated support for custom environments:- Requirements Gathering: Discuss your environment needs
- AMI Development: We build and test the custom image
- Validation: Review and approve the environment
- Deployment: Roll out to your test infrastructure
- Maintenance: Regular updates and security patches
Best Practices
Keep Setup Scripts Fast
- Pre-install large dependencies in custom AMIs when possible
- Cache downloaded files and packages
- Run setup in parallel when independent
Make Setup Idempotent
- Check if software is already installed before installing
- Use version checks to avoid unnecessary reinstalls
- Handle errors gracefully
Version Lock Dependencies
- Specify exact versions of tools and packages
- Avoid “latest” tags that can change
- Document version requirements

