Steps
Custom Steps
Creating custom step types for specific needs
Create custom step types to handle specific testing scenarios not covered by built-in steps.
Creating Custom Steps
Step Definition
Define custom step behavior using JavaScript.
Basic Structure:
- Name: Clear, descriptive name
- Description: How to use the step
- Parameters: Configurable inputs
- Script: Custom JavaScript code
Custom Action Example
Validate API Response:
- Purpose: Check API endpoint responses
- Parameters: API URL, expected data
- Script: Custom validation logic
Custom Step Types
API Testing Steps
Test API endpoints and responses.
Example:
- Create User: Test user creation API
- Get Data: Retrieve data from API
- Update Record: Modify existing records
- Delete Item: Remove items via API
Database Steps
Interact with databases directly.
Example:
- Verify User Created: Check database for new user
- Count Records: Count items in database
- Check Data: Validate database content
- Clean Up: Remove test data
File Operations
Handle file system operations.
Example:
- Read Config File: Load configuration data
- Write Log File: Create log entries
- Check File Exists: Verify file presence
- Delete Files: Clean up temporary files
Advanced Custom Steps
Conditional Logic
Implement complex conditional behavior.
Smart Login:
- Check if already logged in
- Only login if needed
- Handle different user types
- Manage session state
Data Processing
Transform and validate data.
Process CSV Data:
- Read CSV file content
- Parse data into structured format
- Validate data integrity
- Return processed results
Custom Step Libraries
Organization-specific Steps
Create steps specific to your application domain.
E-commerce Steps:
- Add product to cart
- Process checkout
- Handle payments
- Manage orders
User Management Steps:
- Create user accounts
- Update user profiles
- Change passwords
- Delete accounts
Best Practices
Step Design
- Single Responsibility: One clear purpose per step
- Reusability: Design for multiple use cases
- Error Handling: Include proper error handling
- Documentation: Clear parameter descriptions
Performance
- Efficient Code: Optimize for execution speed
- Resource Management: Clean up resources
- Timeout Handling: Set appropriate timeouts
- Memory Usage: Avoid memory leaks
Security
- Input Validation: Validate all inputs
- Secure Storage: Handle sensitive data properly
- Access Control: Respect permission boundaries
- Audit Trail: Log important actions
Testing
- Unit Testing: Test custom steps in isolation
- Integration Testing: Test with real scenarios
- Error Scenarios: Test failure cases
- Performance Testing: Validate execution time