Create End-to-End Workflows in Business Workflow Test Automation
What You’ll Learn
This guide walks you through creating complete end-to-end business workflows in E2E Test Automation. By the end, you’ll know how to:
- Design and map business processes
- Use the Modeler to build workflows visually
- Add and configure different types of nodes
- Connect nodes to create process flows
- Use variables to pass data between nodes
- Add conditional logic and loops
- Test and debug workflows
- Monitor execution with the Runner
Step 1: Plan Your Workflow
Before opening the Modeler, map out your complete business process on paper or a whiteboard.
Identify the Business Process
What process are you automating?
Ask yourself:
- What is the starting point?
- What is the desired outcome?
- What are all the steps in between?
- Where are the decision points?
- What could go wrong at each step?
Examples of Business Processes:
- User registration and email verification
- Order placement and fulfillment
- Approval workflow with multiple approvers
- Payment processing with notifications
- Data import and validation
- Report generation and distribution
Map Out the Steps
Create a Sequential List:
Example: E-commerce Checkout Process
1. User logs in via UI
2. Validate user session via API
3. User adds product to cart via UI
4. Verify cart contents via API
5. User proceeds to checkout via UI
6. Validate shipping address via API
7. User enters payment info via UI
8. Process payment via Payment API
9. Create order in Order API
10. Reserve inventory in Inventory API
11. Send confirmation email
12. Display confirmation page to userIdentify Node Types Needed
For each step, determine what type of node you’ll use:
Step Analysis:
Step 1: User logs in via UI
→ Node Type: UI Test
→ Required: Login UI test scenario
Step 2: Validate user session via API
→ Node Type: HTTP Request
→ Required: GET /user/session endpoint
Step 4: Verify cart contents via API
→ Node Type: HTTP Request
→ Required: GET /cart endpoint
Step 8: Process payment via Payment API
→ Node Type: HTTP Request
→ Required: POST /payment endpoint
→ Note: May need Wait Activity if payment is async
Step 11: Send confirmation email
→ Node Type: SES Email or Compliance Approval
→ Required: AWS SES credentialsIdentify Conditional Logic
Where do decisions happen?
After Payment Processing:
If payment successful:
→ Continue to order creation
If payment failed:
→ Send failure email
→ End workflow
After Inventory Check:
If items in stock:
→ Continue to fulfillment
If out of stock:
→ Send out-of-stock notification
→ Offer backorder or refundIdentify Variables and Data Flow
What data passes between steps?
Step 1 (Login) produces:
→ userId
→ authToken
→ sessionId
Step 4 (Cart API) produces:
→ cartId
→ itemList
→ cartTotal
Step 8 (Payment) produces:
→ transactionId
→ paymentStatus
→ confirmationNumber
These variables are used in subsequent stepsCreate a Visual Diagram
Draw a simple flowchart:
┌─────────────────┐
│ UI: Login │
└────────┬────────┘
│
↓
┌─────────────────┐
│ API: Get Session│
└────────┬────────┘
│
↓
┌─────────────────┐
│ UI: Add to Cart│
└────────┬────────┘
│
↓
┌─────────────────┐
│ API: Verify Cart│
└────────┬────────┘
│
↓
┌───────┴─────────┐
│ Conditional: │
│ Items Valid? │
└────┬──────┬─────┘
│Yes │No
↓ ↓
Continue ErrorStep 2: Open the Workflow Modeler
Access the Modeler
- Navigate to Business Workflow Test Automation in E2E Test Automation
- Click “Create New Workflow” or “Open Modeler”
- You’ll see the visual workflow designer canvas
Understand the Modeler Interface
Main Components:
Canvas:
- Large central area where you build the workflow
- Drag and drop nodes here
- Connect nodes to create flow
- Zoom in/out and pan around
Node Library (Left Panel):
- Lists all available node types
- Drag nodes from here onto the canvas
- Organized by category
Properties Panel (Right Panel):
- Shows properties of selected node
- Configure parameters, scripts, and settings
- Appears when you click a node
Toolbar (Top):
- Save workflow
- Validate workflow
- Run workflow
- Undo/redo
- Zoom controls
- Layout options
Canvas Controls:
- Zoom slider
- Fit to screen
- Pan (click and drag empty space)
- Select multiple (shift + click)
Step 3: Add Your First Node
Start Node
Most workflows start with a Start node (may be added automatically):
- Represents the beginning of the workflow
- No configuration usually needed
- All workflows must have one start point
Add a Node from the Library
Method 1: Drag and Drop
- Find the node type in the Node Library
- Click and hold on the node
- Drag it onto the canvas
- Release to place it
Method 2: Quick Add
- Right-click on the canvas
- Select “Add Node”
- Choose node type from the menu
- Node appears at cursor location
Example: Adding UI Test Node
- Locate “UI Test” in Node Library
- Drag it onto the canvas
- Position it below the Start node
- You’ll see the node appear with a default name
Step 4: Configure Node Parameters
Click on the node you just added to open the Properties Panel.
Node Configuration Tabs
Every node has three tabs:
Parameters Tab:
- Node-specific settings
- Required fields for the node to execute
- Varies by node type
Pre-Script Tab:
- JavaScript executed before the node runs
- Optional
- Used for setup, validation, data manipulation
Post-Script Tab:
- JavaScript executed after the node completes
- Optional
- Used for validation, data extraction, assertions
Configure Basic Parameters
Example: Configuring UI Test Node
In the Parameters tab:
Test Suite:
- Select the UI test suite from dropdown
- This is the test suite containing your UI scenario
Test Scenario:
- Select the specific scenario to execute
- This is the recorded UI test you want to run
Test Dataset:
- Select any dataset variables needed
- Optional if using default values
Framework:
- Usually auto-selected
- The testing framework for UI tests (Playwright, etc.)
Node Name:
- Give it a descriptive name
- Example: “User Login Test”
Add a Pre-Script (Optional)
Switch to the Pre-Script tab if you need to prepare data before the node runs.
Example Pre-Script:
// Set up test data before UI test runs
inputs.username = "test.user@example.com";
inputs.password = "TestPass123!";
inputs.testEnvironment = "staging";
console.log("Starting UI test with user: " + inputs.username);Pre-scripts are useful for:
- Setting up test data
- Validating prerequisites
- Logging information
- Calculating values
- Conditional setup
Add a Post-Script (Optional)
Switch to the Post-Script tab to process results after the node completes.
Example Post-Script:
// Extract data from UI test results
if (outputs.testStatus === "passed") {
inputs.userId = outputs.extractedUserId;
inputs.sessionToken = outputs.sessionToken;
console.log("Login successful. User ID: " + inputs.userId);
} else {
console.error("Login failed: " + outputs.errorMessage);
throw new Error("Login test failed");
}Post-scripts are useful for:
- Extracting data from results
- Validating outcomes
- Setting variables for next nodes
- Handling errors
- Logging results
Step 5: Add More Nodes to Build the Flow
Continue adding nodes for each step in your workflow.
Add an HTTP Request Node
Common next step: Call an API to validate something.
- Drag “HTTP Request” node onto canvas
- Position it below the previous node
- Click to configure
Configure HTTP Request Parameters:
Host:
- The API base URL
- Example:
https://api.example.com - Can use variable:
${inputs.apiBaseUrl}
Endpoint Path:
- The specific endpoint
- Example:
/user/profile - Can include variables:
/user/${inputs.userId}
Method:
- Select: GET, POST, PUT, PATCH, DELETE
- Example: GET
Authentication Type:
- Predefined Auth: Use saved credentials
- Header Auth: Add auth in headers
- Query Auth: Add auth in query params
- Bearer Token: Use token authentication
Query Params (Optional):
- Add key-value pairs
- Example:
include=profile&detailed=true - Can use variables:
userId=${inputs.userId}
Headers (Optional):
- Add request headers
- Example:
- Key:
Content-Type, Value:application/json - Key:
Authorization, Value:Bearer ${inputs.authToken}
- Key:
Body (Optional, for POST/PUT/PATCH):
- Request payload
- JSON format
- Can include variables:
{ "userId": "${inputs.userId}", "action": "updateProfile", "data": { "email": "${inputs.newEmail}" } }
HTTP Request Post-Script Example:
// Extract user data from API response
const response = JSON.parse(outputs.responseBody);
if (outputs.statusCode === 200) {
inputs.userName = response.name;
inputs.userEmail = response.email;
inputs.accountStatus = response.status;
console.log("User profile retrieved: " + inputs.userName);
} else {
throw new Error("Failed to get user profile: " + outputs.statusCode);
}Add a Conditional Node
When you need branching logic:
- Drag “Simple Conditional” node onto canvas
- Position it where decision happens
- Configure the condition
Configure Simple Conditional:
Condition Field:
- JavaScript boolean expression
- Must evaluate to
trueorfalse
Examples:
// Check if user is active
inputs.accountStatus === "active"
// Check if cart has items
inputs.cartItemCount > 0
// Check if payment succeeded
inputs.paymentStatus === "success" && inputs.transactionId !== null
// Multiple conditions
inputs.userRole === "admin" && inputs.accountAge > 30
// Check variable exists
typeof inputs.orderId !== 'undefined' && inputs.orderId !== nullConditional node has two outputs:
- True: Connects to nodes that execute when condition is true
- False: Connects to nodes that execute when condition is false
Add a Wait Activity Node
When you need to pause execution:
- Drag “Wait Activity” node onto canvas
- Configure wait duration
Configure Wait Activity:
Duration:
- Time to wait in milliseconds
- Examples:
- 1 second:
1000 - 5 seconds:
5000 - 1 minute:
60000 - Can use variable:
${inputs.waitTime}
- 1 second:
Use Cases:
- Wait for asynchronous operation to complete
- Simulate user think time
- Allow email delivery before checking
- Rate limiting between API calls
- Wait for background processing
Example:
HTTP Request: Initiate payment processing
↓
Wait Activity: 5 seconds
↓
HTTP Request: Check payment statusAdd an Email Node
For sending notifications:
SES Email Node:
- Drag “SES Email” onto canvas
- Configure email settings
Configure SES Email:
AWS Credentials:
- SES credentials for sending
- Usually pre-configured in E2E Test Automation
Source Email:
- From address
- Example:
noreply@example.com - Must be verified in AWS SES
To Email:
- Recipient address
- Can use variable:
${inputs.userEmail} - Can be comma-separated for multiple:
user1@ex.com,user2@ex.com
Subject:
- Email subject line
- Can include variables:
Order Confirmation - #${inputs.orderNumber}
Body:
- Email content
- Can be plain text or HTML
- Can include variables:
<html> <body> <h1>Hello ${inputs.userName}!</h1> <p>Your order #${inputs.orderNumber} has been confirmed.</p> <p>Total: $${inputs.orderTotal}</p> </body> </html>
Step 6: Connect Nodes to Create Flow
Nodes need to be connected to define the execution order.
Create Connections
Method 1: Click and Drag
- Click on the output port of a node (small circle on the right side)
- Drag to the input port of the next node (small circle on the left side)
- Release to create connection
- A line appears connecting the nodes
Method 2: Auto-Connect
- Select a node
- Hover over the output port
- Click the ”+” icon that appears
- Select the next node from the menu
- Connection is created automatically
Connection Rules
Sequential Flow:
- Simple: Node A → Node B → Node C
- Each node waits for the previous to complete
Conditional Branches:
- Conditional nodes have two output ports:
- True output (top/right)
- False output (bottom/right)
- Connect each to different nodes
Example:
Simple Conditional: Payment Success?
├─ True → HTTP Request: Create Order
└─ False → SES Email: Payment Failed NotificationMerging Branches:
- Multiple nodes can connect to the same next node
- Useful for joining conditional branches
Example:
Conditional: Stock Available?
├─ True → HTTP Request: Reserve Inventory
│ ↓
└─ False → HTTP Request: Backorder Item
↓
┌────────┴────────┐
SES Email: ConfirmationStep 7: Use Variables for Data Flow
Variables allow data to pass between nodes.
Variable Syntax
Access variables using:
${inputs.variableName}Examples:
${inputs.userId}
${inputs.orderTotal}
${inputs.confirmationEmail}
${inputs.authToken}Setting Variables in Scripts
In Pre-Script or Post-Script:
// Set a variable
inputs.userId = "12345";
inputs.orderTotal = 99.99;
inputs.isAdmin = true;
// Set from API response
const response = JSON.parse(outputs.responseBody);
inputs.userId = response.data.id;
inputs.userName = response.data.name;
// Set from calculation
inputs.taxAmount = inputs.orderSubtotal * 0.08;
inputs.orderTotal = inputs.orderSubtotal + inputs.taxAmount;
// Set from conditional logic
if (response.accountType === "premium") {
inputs.discountPercent = 20;
} else {
inputs.discountPercent = 10;
}Using Variables in Node Parameters
In HTTP Request URL:
https://api.example.com/users/${inputs.userId}/ordersIn HTTP Request Body:
{
"userId": "${inputs.userId}",
"amount": ${inputs.orderTotal},
"currency": "USD"
}In Email Subject:
Order Confirmation - #${inputs.orderNumber}In Email Body:
<p>Hello ${inputs.userName},</p>
<p>Your order for $${inputs.orderTotal} has been confirmed.</p>In Conditional:
inputs.orderTotal > 100 && inputs.userStatus === "premium"Variable Scope
Variables persist throughout workflow:
- Set once, available in all subsequent nodes
- Overwriting a variable updates it for all following nodes
- Variables don’t carry over to separate workflow executions
Step 8: Add Advanced Features
Loops
Loop Over Items Node:
Use when you need to repeat actions multiple times.
Configure Loop:
Iteration Count:
- How many times to repeat
- Example:
5for 5 iterations - Can use variable:
${inputs.retryCount}
Loop Body:
- Connect nodes inside the loop
- These nodes execute each iteration
Example Use Case: Retry API Call
Loop Over Items: Retry 3 times
Inside loop:
HTTP Request: Check payment status
Simple Conditional: Payment complete?
True → Exit loop
False → Wait Activity: 2 seconds → Continue loopAccessing Loop Counter:
// In pre-script or post-script
console.log("Iteration: " + inputs.loopIndex);
// Loop index starts at 0
if (inputs.loopIndex === 2) {
console.log("Last attempt");
}Event Conditionals with Timeout
Event Conditional Node:
Use when waiting for an event with a timeout.
Configure Event Conditional:
Timeout:
- Maximum wait time
- Units: milliseconds, seconds, minutes, hours, days, months
- Example:
5 minutes,2 hours,1 day
Condition:
- Same as Simple Conditional
- JavaScript boolean expression
Behavior:
- Waits for condition to become true
- If condition becomes true → continues on True path
- If timeout expires → continues on False (timeout) path
Example: Approval Workflow
Event Conditional: Wait for approval (timeout: 2 days)
Condition: inputs.approvalStatus === "approved"
True → Approval received within 2 days → Continue process
False → Timeout expired → Send reminder or escalateSignals
Signal Node:
Use to coordinate between parallel workflows or trigger events.
Configure Signal:
Signal Name:
- Unique identifier for the signal
- Example:
payment_completed,order_ready
Purpose:
- Send a signal when this node executes
- Other workflows can wait for this signal
- Useful for coordinating dependent processes
Example:
Workflow A:
HTTP Request: Create Order
↓
Signal: Send "order_created"
Workflow B (running separately):
Wait for Signal: "order_created"
↓
HTTP Request: Start fulfillmentDatabase Queries
Database Node:
Execute MongoDB database queries.
Configure Database:
Query:
- MongoDB query syntax
- Can use variables
Examples:
Find Document:
db.orders.find({ userId: "${inputs.userId}" })Insert Document:
db.orders.insert({
userId: "${inputs.userId}",
total: ${inputs.orderTotal},
status: "pending",
createdAt: new Date()
})Update Document:
db.orders.update(
{ orderId: "${inputs.orderId}" },
{ $set: { status: "completed" } }
)Post-Script to Process Results:
// Parse database query results
const result = JSON.parse(outputs.queryResult);
if (result.length > 0) {
inputs.orderExists = true;
inputs.orderStatus = result[0].status;
} else {
inputs.orderExists = false;
}Step 9: Validate Your Workflow
Before running, validate that the workflow is correctly configured.
Visual Validation
Check the flow visually:
- All nodes are connected
- No orphaned nodes (not connected to anything)
- Conditional branches go to appropriate nodes
- Flow starts at a Start node
- Flow ends at logical conclusion(s)
Use the Validation Tool
Click “Validate” in the toolbar:
Validation checks:
- All required parameters are filled
- Variables are properly formatted
- Connections are valid
- No circular dependencies
- Scripts have valid syntax
Common Validation Errors:
Missing Required Parameters:
Error: HTTP Request node "Get User" missing Host parameter
Fix: Add the API host URLInvalid Variable Reference:
Error: Variable ${inputs.userID} not set in any previous node
Fix: Check spelling (userId vs userID) or set the variable earlierDisconnected Node:
Warning: Node "Send Email" is not connected
Fix: Connect it to the workflowCircular Dependency:
Error: Circular dependency detected
Fix: Remove the connection creating the loopStep 10: Save Your Workflow
Save frequently to avoid losing work:
- Click “Save” button in toolbar
- Give the workflow a name if it’s new:
- Name: Descriptive name (e.g., “E-commerce Checkout Process”)
- Description: What the workflow tests
- Tags: For organization (e.g., “checkout”, “critical”, “e-commerce”)
- Click “Save”
Workflow is now saved and ready to run.
Step 11: Test Your Workflow
Run the Workflow
- Click “Run” button in the Modeler
- Or switch to the Runner tab
- Click “Start Execution”
- Monitor execution in real-time
Monitor Execution
In the Runner, you’ll see:
Current Status:
- Which node is currently executing
- Progress through the workflow
- Visual highlighting of active node
Execution Log:
- Real-time log messages
- Console.log output from scripts
- Node start/complete messages
- Any errors or warnings
Variable Values:
- Current values of all variables
- Updated as workflow progresses
- Useful for debugging
Node Status:
- ✓ Completed successfully (green)
- ⏳ Currently executing (yellow)
- ✗ Failed (red)
- ⏸ Waiting (gray)
Review Results
After execution completes:
Execution Summary:
- Overall status: Success or Failed
- Total execution time
- Number of nodes executed
- Any errors encountered
Node-by-Node Results:
- Click each node to see details
- View inputs and outputs
- Check API responses
- Review script execution logs
Variable Final State:
- All variable values at end of workflow
- Useful for validation
Step 12: Debug and Refine
If the workflow fails or doesn’t behave as expected:
Identify the Failing Node
Check the Runner:
- Failed nodes are marked in red
- Click the failed node to see details
Review Error Messages
Common errors:
HTTP Request Failed:
Error: HTTP Request to https://api.example.com/users failed
Status: 401 UnauthorizedFix: Check authentication, credentials, or API endpoint
Variable Not Found:
Error: Variable ${inputs.userId} is undefinedFix: Ensure the variable is set in a previous node’s post-script
Script Error:
Error in Post-Script: SyntaxError: Unexpected tokenFix: Check JavaScript syntax in the post-script
Timeout:
Error: Node "Check Payment Status" timed out after 30 secondsFix: Increase timeout or check why the operation is slow
Use Console Logs for Debugging
Add console.log statements in scripts:
// Pre-Script
console.log("Starting payment with amount: " + inputs.orderTotal);
console.log("User ID: " + inputs.userId);
// Post-Script
console.log("Payment response: " + outputs.responseBody);
console.log("Status code: " + outputs.statusCode);
const response = JSON.parse(outputs.responseBody);
console.log("Transaction ID: " + response.transactionId);View logs in the Runner to see what’s happening at each step.
Test Individual Nodes
Isolate problematic nodes:
- Create a simple test workflow with just that node
- Test it independently
- Verify parameters and scripts
- Once working, integrate back into main workflow
Adjust and Re-Run
- Make fixes to the workflow
- Save changes
- Run again
- Repeat until workflow completes successfully
Best Practices for Creating Workflows
Design Principles
Keep It Simple:
- Start with a minimal workflow
- Add complexity gradually
- Don’t try to handle every edge case initially
Use Descriptive Names:
- Node names should describe what they do
- “Get User Profile” not “HTTP Request 1”
- Helps with understanding and debugging
Add Comments:
- Use node descriptions to document purpose
- Add comments in scripts
- Document any non-obvious logic
Handle Errors:
- Add conditional checks for failures
- Provide alternative paths
- Send notifications on errors
Validate Data:
- Check that required data exists before using it
- Validate API responses
- Add assertions in post-scripts
Variable Management
Use Consistent Naming:
- camelCase:
userId,orderTotal,confirmationEmail - Descriptive:
paymentTransactionIdnotptid
Set Variables Early:
- Set all required variables before they’re needed
- Check for undefined variables in conditionals
Don’t Overuse Variables:
- Only create variables for data that’s reused
- Clean, focused variable list is easier to manage
Script Best Practices
Keep Scripts Short:
- Simple logic only
- Complex operations should be separate nodes
Use Try-Catch:
try {
const response = JSON.parse(outputs.responseBody);
inputs.userId = response.data.id;
} catch (error) {
console.error("Failed to parse response: " + error);
throw error;
}Validate Before Using:
if (outputs.statusCode === 200) {
const response = JSON.parse(outputs.responseBody);
inputs.userId = response.data.id;
} else {
throw new Error("API call failed with status: " + outputs.statusCode);
}Testing Strategy
Test Incrementally:
- Build a few nodes
- Test that section
- Add more nodes
- Test again
Don’t build entire workflow before first test.
Test Edge Cases:
- What if API returns 500?
- What if payment times out?
- What if user doesn’t exist?
- What if cart is empty?
Use Realistic Test Data:
- Don’t use hardcoded test values in production workflows
- Use variables for flexibility
- Test with data similar to production
Example: Complete Workflow Creation
Let’s walk through creating a complete workflow for User Registration with Email Verification.
Business Process
1. User fills registration form (UI)
2. Create user account (API)
3. Verify account was created (Database)
4. Send verification email (Email)
5. Wait for user to click verification link (Wait)
6. Verify email address (API)
7. Send welcome email (Email)
8. Display success message (UI)Step-by-Step Creation
Step 1: Add UI Test Node - Registration Form
- Name: “User Registration Form”
- Configure: Select UI test suite and registration scenario
- Post-Script:
inputs.userEmail = outputs.registeredEmail; inputs.userId = outputs.newUserId;
Step 2: Add HTTP Request Node - Create Account API
- Name: “Create User Account”
- Host:
${inputs.apiHost} - Endpoint:
/users - Method: POST
- Body:
{ "email": "${inputs.userEmail}", "password": "${inputs.userPassword}", "firstName": "${inputs.firstName}", "lastName": "${inputs.lastName}" } - Post-Script:
const response = JSON.parse(outputs.responseBody); if (outputs.statusCode === 201) { inputs.userId = response.userId; inputs.verificationToken = response.verificationToken; } else { throw new Error("Failed to create user"); }
Step 3: Add Database Node - Verify User Created
- Name: “Verify User in Database”
- Query:
db.users.find({ email: "${inputs.userEmail}" }) - Post-Script:
const result = JSON.parse(outputs.queryResult); if (result.length === 0) { throw new Error("User not found in database"); } inputs.userAccountStatus = result[0].status;
Step 4: Add SES Email Node - Send Verification Email
- Name: “Send Verification Email”
- From:
noreply@example.com - To:
${inputs.userEmail} - Subject:
Verify your email address - Body:
<p>Hi ${inputs.firstName},</p> <p>Please verify your email by clicking this link:</p> <a href="https://example.com/verify?token=${inputs.verificationToken}">Verify Email</a>
Step 5: Add Wait Activity Node - Simulate Email Click Delay
- Name: “Wait for Email Verification”
- Duration:
10000(10 seconds for testing, could be longer in reality)
Step 6: Add HTTP Request Node - Verify Email API
- Name: “Verify Email Address”
- Host:
${inputs.apiHost} - Endpoint:
/users/${inputs.userId}/verify - Method: POST
- Body:
{ "token": "${inputs.verificationToken}" } - Post-Script:
if (outputs.statusCode === 200) { inputs.emailVerified = true; } else { throw new Error("Email verification failed"); }
Step 7: Add Simple Conditional - Check Verification
- Name: “Email Verified?”
- Condition:
inputs.emailVerified === true
Step 8a: Add SES Email Node - Welcome Email (True branch)
- Name: “Send Welcome Email”
- From:
noreply@example.com - To:
${inputs.userEmail} - Subject:
Welcome to Example.com! - Body:
<h1>Welcome ${inputs.firstName}!</h1> <p>Your account is now verified and ready to use.</p>
Step 8b: Add SES Email Node - Failed Verification (False branch)
- Name: “Send Verification Failed Email”
- Similar configuration with failure message
Step 9: Add UI Test Node - Success Page
- Name: “Display Success Message”
- Configure: Select UI test that verifies success message appears
Connect All Nodes
- Connect nodes in sequence as numbered
- Connect conditional True to Welcome Email
- Connect conditional False to Failed Email
- Both email nodes connect to Success Page UI test
Save and Test
- Save workflow as “User Registration with Email Verification”
- Run workflow
- Monitor execution
- Verify all nodes complete successfully
- Check that emails are sent
- Validate user is created in database
Summary
Creating end-to-end workflows in Business Workflow Test Automation involves:
- Planning the workflow - Map out your business process
- Using the Modeler - Visual interface for building workflows
- Adding nodes - Drag and drop different node types
- Configuring nodes - Set parameters, pre-scripts, post-scripts
- Connecting nodes - Define execution flow
- Using variables - Pass data between nodes
- Adding logic - Conditionals, loops, waits
- Validating - Ensure workflow is correct
- Testing - Run and monitor execution
- Debugging - Fix issues and refine
Key Principles:
- Start simple, add complexity gradually
- Use descriptive names and comments
- Test incrementally
- Handle errors gracefully
- Use variables effectively
- Monitor and debug with logs
You’re now ready to create sophisticated end-to-end workflows that validate your complete business processes!