خدمة Sauce
خدمة WebdriverIO التي توفر تكاملاً أفضل مع Sauce Labs. يمكن استخدام هذه الخدمة لـ:
- سحابة Sauce Labs للأجهزة الافتراضية (سطح المكتب/المحاكي/محاكي الجهاز)
 - سحابة Sauce Labs للأجهزة الحقيقية (iOS و Android)
 
يمكنها تحديث بيانات الوظيفة التعريفية ('name'* و 'passed' و 'tags' و 'public' و 'build' و 'custom-data') وتشغيل Sauce Connect إذا كان مطلوبًا.
ماذا ستفعل هذه الخدمة أيضًا من أجلك:
- بشكل افتراضي، ستقوم خدمة Sauce بتحديث 'name' الوظيفة عند بدء الوظيفة. هذا سيعطيك خيار تحديث الاسم في أي وقت.
 - يمكنك تحديد معلمة 
setJobNameوتخصيص اسم الوظيفة وفقًا لقدراتك وخياراتك وعنوان المجموعة - ستقوم خدمة Sauce أيضًا بدفع مكدس الخطأ للاختبار الفاشل إلى علامة تبويب أوامر Sauce Labs
 - ستسمح لك بتكوين وتشغيل Sauce Connect تلقائيًا
 - وستضع نقاط سياق في قائمة الأوامر الخاصة بك لتحديد الأوامر التي تم تنفيذها في أي اختبار
 
التثبيت
الطريقة الأسهل هي الاحتفاظ بـ @wdio/sauce-service كتبعية تطوير في ملف package.json الخاص بك، عبر:
npm install @wdio/sauce-service --save-dev
يمكن العثور على تعليمات حول كيفية تثبيت WebdriverIO هنا.
التكوين
لاستخدام الخدمة لسحابة الأجهزة الافتراضية/المحاكي/محاكي الجهاز وسحابة الأجهزة الحقيقية ، تحتاج إلى تعيين user و key في ملف wdio.conf.js الخاص بك. سيستخدم تلقائيًا Sauce Labs لتشغيل اختبارات التكامل الخاصة بك. إذا كنت تقوم بتشغيل اختباراتك على Sauce Labs ، يمكنك تحديد المنطقة التي تريد تشغيل اختباراتك فيها عبر خاصية region. العناوين المختصرة المتاحة للمناطق هي us (افتراضي) و eu. يتم استخدام هذه المناطق لسحابة Sauce Labs VM وسحابة الأجهزة الحقيقية Sauce Labs. إذا لم تقم بتوفير المنطقة، فإن القيمة الافتراضية هي us.
إذا كنت تريد أن يقوم WebdriverIO تلقائيًا بإنشاء نفق Sauce Connect، فأنت بحاجة إلى تعيين sauceConnect: true. إذا كنت ترغب في تغيير مركز البيانات إلى الاتحاد الأوروبي، أضف region:'eu' حيث يتم تعيين مركز بيانات الولايات المتحدة كإعداد افتراضي.
// wdio.conf.js
export const config = {
    // ...
    user: process.env.SAUCE_USERNAME,
    key: process.env.SAUCE_ACCESS_KEY,
    region: 'us', // or 'eu'
    services: [
        ['sauce', {
            sauceConnect: true,
            sauceConnectOpts: {
                // ...
            }
        }]
    ],
    // ...
};
إذا كنت تريد استخدام نفق Sauce Connect موجود بالفعل، فأنت بحاجة فقط إلى توفير tunnelName. إذا كنت تستخدم نفقًا مشتركًا، ولست المستخدم الذي أنشأ النفق، فيجب عليك تحديد مستخدم Sauce Labs الذي أنشأ النفق لاستخدامه في اختبارك. قم بتضمين tunnelOwner في القدرات مثل هذا:
- Tunnel Name
 - Tunnel Owner
 
export const config = {
    // ...
    {
        browserName: 'chrome',
        platformName: 'Windows 10',
        browserVersion: 'latest',
        // Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
        'sauce:options': {
            tunnelName: 'YourTunnelName',
            // Example options
            build: 'your-build-name',
            screenResolution: '1600x1200',
            // ...
        },
    },
    // ...
};
export const config = {
    // ...
    {
        browserName: 'chrome',
        platformName: 'Windows 10',
        browserVersion: 'latest',
        // Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
        'sauce:options': {
            tunnelName: 'TunnelName',
            tunnelOwner: '<username of owner>,
            // Example options
            build: 'your-build-name',
            screenResolution: '1600x1200',
            // ...
        },
    },
    // ...
};