@@ -28,6 +28,33 @@ The UI tests run as part of our deployment during the Deploy To Test (DTT) via `
2828
2929Each suite uploads its own status page (` test_status_{Safari_iPad_iPhone_UI,Chrome_Firefox_UI,Eyes}.html ` ) to the test machine and to S3.
3030
31+ ## Concurrency limits
32+
33+ SauceLabs and Device Farm each have their own cost structure and concurrency
34+ limits. SauceLabs charges by maximum concurrency. Device Farm charges per test
35+ run, but also has separate concurrency limits for desktop and mobile within each
36+ AWS account. Device Farm limits can be increased at no additional cost by
37+ negotiating with AWS support based on current need an availability.
38+
39+ Today, the relevant concurrency limits are:
40+
41+ | Provider | AWS Account | Concurrency | Usage |
42+ | ---------------------| -------------| -------------| -------------------------|
43+ | SauceLabs | — | 65 | DTT + local development |
44+ | Device Farm Desktop | codeorg | 150 | DTT + local development |
45+ | Device Farm Desktop | codeorg-dev | 150 | Drone (CI) |
46+
47+ Staying under concurrency limits in DTT is straightforward, because only one DTT
48+ runs at a time. Staying under limits in Drone is less predictable, because there
49+ is no limit to the number of concurrent Drone runs, and each concurrent drone
50+ run might not be running the maximum number of UI tests at a given time.
51+ Therefore, the simplest plan is to request additional increases to Device Farm
52+ Desktop (codeorg-dev) concurrency if/when we start seeing UI tests fail in Drone
53+ with concurrency errors like this one:
54+ ```
55+ Cannot exceed 150 concurrent sessions. Currently active=130, pending=20, failed=0 (Selenium::WebDriver::Error::SessionNotCreatedError)
56+ ```
57+
3158## Local Setup
3259
3360### On your machine: Chrome webdriver
0 commit comments