From runnings tests in parallel to how to use small, atomic, autonomous tests check out this comprehensive guide on best practices for running tests.

Avoid External Test Dependencies

Avoid Dependencies between Tests to Run Tests in Parallel

Don't Use Brittle Locators in Your Tests

Have a Retry Strategy for Handling Flakes

Keep Functional Tests Separate from Performance Tests

Use Build IDs, Tags, and Names to Identify Your Tests

Use Environment Variables for Authentication Credentials

Use Explicit Waits

Use the Latest Version of Selenium Client Bindings

Use Small, Atomic, Autonomous Tests

Use Page Objects to Model Repeated Interactions and Elements

Use Breakpoints to Diagnose Flaky Tests

Use New Accounts for Each Test

Avoid Leakage of Credentials

Be Aware of the Load on Your Servers

Imperative v. Declarative Test Scenarios

Use Maven to Manage Project Dependencies