SmoothDeploy Docs
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