Login Suites

Login suites handle authentication once and share the logged-in state with other test suites.

Why Login Suites?

Without login suites:

  • Every test repeats login steps
  • Tests are slower
  • More points of failure
  • Duplicate code

With login suites:

  • Login happens once
  • Cookies/session are saved
  • Other tests start authenticated
  • Faster, more reliable tests

Creating a Login Suite

Step 1: Create the Suite

  1. Create a new test suite
  2. Name it something like "Login" or "Authentication"

Step 2: Mark as Login Suite

  1. Open suite settings
  2. Enable Login Suite
  3. Save

Step 3: Add Login Test

Create a test with steps like:

1. Navigate to the login page
2. Enter email in the email field
   Data: {{run.email}}
3. Enter password in the password field
4. Click the "Sign In" button
5. Wait until dashboard is visible

Step 4: Configure Auth Settings

In project or suite settings, add:

  • Email - The test account email
  • Password - The test account password

Use dedicated test accounts, not personal accounts. Test accounts should be safe to use repeatedly.

How It Works

Execution Order

1. Login Suite runs first
   - Performs login
   - Saves cookies and localStorage

2. Regular Suites run next
   - Cookies are pre-loaded
   - Tests start logged in

3. Cleanup Suite runs last (if any)
   - Cleans up test data

What Gets Saved

After successful login suite execution:

  • Cookies - Session cookies, auth tokens
  • localStorage - Client-side storage
  • sessionStorage - Session data

This "storage state" is automatically applied to subsequent suites.

Configuration

Suite-Level Auth

Set credentials in suite settings:

Email: testuser@yourapp.com
Password: TestPassword123!

Project-Level Auth

Set default credentials in project settings. Suites inherit these unless overridden.

Using Dynamic Credentials

For tests that create new users:

Login Test Step 1: Enter email
Data: {{run.email}}

Login Test Step 2: Enter password

Multiple Login Suites

You can have multiple login suites for different user types:

Admin Login Suite:

- Login as admin user
- Admin-specific cookies saved

Customer Login Suite:

- Login as customer
- Customer cookies saved

When you have multiple login suites, each will run and overwrite the storage state. Usually you want just one login suite.

Best Practices

Keep Login Suites Simple

Only include login-related steps:

Good:
1. Navigate to login page
2. Enter email
3. Enter password
4. Click login
5. Verify logged in

Too much:
1. Navigate to login page
2. Enter email
3. Enter password
4. Click login
5. Verify logged in
6. Update profile (not login-related)

Add Verification Step

Always verify login succeeded:

Step 5: Wait until user menu is visible
Assertion: User is logged in

Use Dedicated Test Accounts

  • Create accounts specifically for testing
  • Ensure they have appropriate permissions
  • Do not use production data

Handle Auth Failures

If login fails, all dependent tests will fail. Make your login suite robust:

  • Use explicit wait conditions
  • Verify each step succeeds
  • Add clear assertions

Troubleshooting

Tests Still Prompt for Login

  • Verify login suite is marked as "Login Suite"
  • Check login suite runs successfully
  • Ensure cookies are actually set
  • Check if cookies have expired

Login Suite Keeps Failing

  • Verify credentials are correct
  • Check if account exists and is active
  • Look for captcha or rate limiting
  • Check for 2FA requirements

Cookies Not Persisting

  • Some sites clear cookies on logout
  • Check cookie expiration times
  • Verify no steps inadvertently log out

Different Auth for Different Tests

Create separate projects or use suite-level credential overrides.

Example: Complete Login Suite

Suite: Authentication (Login Suite: enabled)

Test: User Login

Steps:
1. Navigate to the login page
   Wait Until: Login form is visible

2. Enter email in the email field
   Data: {{run.email}}

3. Enter password in the password field

4. Click the "Sign In" button
   Wait Until: Dashboard page loads

Assertions:
- User avatar is visible in header
- Welcome message shows user's name