Skip to content

Commit d3cf8f0

Browse files
committed
DRY
1 parent 4b47a32 commit d3cf8f0

File tree

4 files changed

+31
-18
lines changed

4 files changed

+31
-18
lines changed

docs/saucelabs-troubleshooting.md

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ export SAUCE_ACCESS_KEY="your_sauce_access_key"
1616
### 2. Outdated Platform/Device Combinations
1717
The error often occurs when requesting deprecated or unavailable devices/OS versions.
1818

19+
**Critical Configuration Issues:**
20+
- Using `app: localPath` instead of `app: 'storage:filename=app.apk'`
21+
- Requesting too recent OS versions (Android 12+, iOS 16+)
22+
- Using specific device models that may not be available
23+
- Missing proper capability namespacing for Appium 2.x
24+
25+
**Quick Fix Checklist:**
26+
1. ✅ Use `storage:filename=` for app references
27+
2. ✅ Use Android 10.0/11.0 and iOS 14.x/15.x versions
28+
3. ✅ Use standard device names: "Android GoogleAPI Emulator", "iPhone 13 Simulator"
29+
4. ✅ Set `noReset: false` for clean test state
30+
5. ✅ Use regional endpoints: `ondemand.us-west-1.saucelabs.com`
31+
1932
**Updated Android Configuration:**
2033
```javascript
2134
{
@@ -26,6 +39,7 @@ The error often occurs when requesting deprecated or unavailable devices/OS vers
2639
protocol: 'https',
2740
user: process.env.SAUCE_USERNAME,
2841
key: process.env.SAUCE_ACCESS_KEY,
42+
app: 'storage:filename=your-app.apk', // Use Sauce Storage reference
2943
desiredCapabilities: {
3044
'sauce:options': {
3145
appiumVersion: '2.0.0',
@@ -39,12 +53,11 @@ The error often occurs when requesting deprecated or unavailable devices/OS vers
3953
},
4054
browserName: '',
4155
platformName: 'Android',
42-
platformVersion: '12.0', // Use recent versions
43-
deviceName: 'Google Pixel 6 GoogleAPI Emulator',
56+
platformVersion: '10.0', // Use stable versions (9.0-11.0)
57+
deviceName: 'Android GoogleAPI Emulator', // Use standard names
4458
automationName: 'UiAutomator2',
4559
autoGrantPermissions: true,
46-
noReset: true,
47-
app: 'sauce-storage:your-app.apk'
60+
noReset: false, // Clean state for reliable tests
4861
}
4962
}
5063
}
@@ -61,6 +74,7 @@ The error often occurs when requesting deprecated or unavailable devices/OS vers
6174
protocol: 'https',
6275
user: process.env.SAUCE_USERNAME,
6376
key: process.env.SAUCE_ACCESS_KEY,
77+
app: 'storage:filename=your-ios-app.zip', // Use Sauce Storage reference
6478
desiredCapabilities: {
6579
'sauce:options': {
6680
appiumVersion: '2.0.0',
@@ -74,12 +88,11 @@ The error often occurs when requesting deprecated or unavailable devices/OS vers
7488
},
7589
browserName: '',
7690
platformName: 'iOS',
77-
platformVersion: '16.0', // Use recent versions
78-
deviceName: 'iPhone 14 Simulator',
91+
platformVersion: '15.5', // Use stable versions (14.x-15.x)
92+
deviceName: 'iPhone 13 Simulator', // Use widely available devices
7993
automationName: 'XCUITest',
8094
autoAcceptAlerts: true,
81-
noReset: true,
82-
app: 'sauce-storage:your-ios-app.ipa'
95+
noReset: false, // Clean state for reliable tests
8396
}
8497
}
8598
}

test/helper/AppiumWeb_test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ describe('Appium Web', function () {
2626
},
2727
browserName: 'Chrome',
2828
platformName: 'Android',
29-
platformVersion: '12.0',
30-
deviceName: 'Google Pixel 6 GoogleAPI Emulator',
29+
platformVersion: '10.0', // Use very stable Android 10.0
30+
deviceName: 'Android GoogleAPI Emulator', // Standard emulator
3131
automationName: 'UiAutomator2',
3232
autoGrantPermissions: true,
3333
noReset: true,

test/helper/Appium_ios_test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ describe('Appium iOS Tests', function () {
3434
},
3535
browserName: '',
3636
platformName: 'iOS',
37-
platformVersion: '16.0',
38-
deviceName: 'iPhone 14 Simulator',
37+
platformVersion: '15.5', // Use more stable iOS version
38+
deviceName: 'iPhone 13 Simulator', // Use widely available device
3939
automationName: 'XCUITest',
4040
androidInstallTimeout: 90000,
4141
appWaitDuration: 300000,

test/helper/Appium_test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('Appium', function () {
4242
})
4343
} else {
4444
app = new Appium({
45-
app: apk_path,
45+
app: 'storage:filename=selendroid-test-app-0.17.0.apk', // Use Sauce Storage reference
4646
desiredCapabilities: {
4747
'sauce:options': {
4848
appiumVersion: '2.0.0',
@@ -56,17 +56,17 @@ describe('Appium', function () {
5656
},
5757
browserName: '',
5858
platformName: 'Android',
59-
platformVersion: '12.0', // Updated to more recent Android version
60-
deviceName: 'Google Pixel 6 GoogleAPI Emulator', // More specific device
59+
platformVersion: '10.0', // Use very stable Android 10.0
60+
deviceName: 'Android GoogleAPI Emulator', // Standard emulator
6161
automationName: 'UiAutomator2',
6262
androidInstallTimeout: 90000,
6363
appWaitDuration: 300000,
6464
autoGrantPermissions: true,
65-
noReset: true,
65+
noReset: false, // Clean state for each test
6666
},
6767
restart: true,
68-
protocol: 'https', // Use HTTPS for better security
69-
host: 'ondemand.us-west-1.saucelabs.com', // Use specific regional endpoint
68+
protocol: 'https',
69+
host: 'ondemand.us-west-1.saucelabs.com',
7070
port: 443,
7171
user: process.env.SAUCE_USERNAME,
7272
key: process.env.SAUCE_ACCESS_KEY,

0 commit comments

Comments
 (0)