صوص لابز
جميع الأوامر مدعومة فقط على متصفح Chrome باستخدام إمكانيات Extended Debugging من Sauce Labs. يمكنك تمكين هذه الميزات عن طريق تعيين خيارات Sauce التالية:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
الحصول على معلومات سجل محددة لصفحة الويب بناءً على آخر تحميل للصفحة.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.getPageLogs(type)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
type | string | نوع السجل (مثل 'sauce:network'، 'sauce:performance') |
أمثلة
// Get Network Logs
console.log(browser.getPageLogs('sauce:network'));
/**
* outputs:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// Get Performance Logs (needs capturePerformance capability see: https://docs.saucelabs.com/performance/transitions/#setting-performance-capabilities
console.log(browser.getPageLogs('sauce:performance'));
/**
* outputs:
* {
* "speedIndex": 1472.023,
* "timeToFirstInteractive": 1243.214,
* "firstMeaningfulPaint": 892.643,
* ...
* }
*/
القيمة المرجعة
- <object>
log
: مخرجات السجل من النوع المطلوب (انظر المثال)
sauceThrottleNetwork
باستخدام تكييف الشبكة، يمكنك اختبار موقعك على مجموعة متنوعة من اتصالات الشبكة، بما في ذلك Edge و3G وحتى في وضع عدم الاتصال. يمكنك تقييد معدل نقل البيانات، بما في ذلك الحد الأقصى لمعدل التنزيل والتحميل، واستخدام معالجة زمن الاستجابة لفرض الحد الأدنى من التأخير في وقت الرحلة ذهابًا وإيابًا للاتصال (RTT).
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.sauceThrottleNetwork(condition)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
condition | string, object | حالة الشبكة المراد تعيينها (مثل 'online'، 'offline'، 'GPRS'، 'Regular 2G'، 'Good 2G'، 'Regular 3G'، 'Good 3G'، 'Regular 4G'، 'DSL'، 'Wifi') |
أمثلة
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
يمكنك تقييد وحدة المعالجة المركزية (CPU) في DevTools لفهم كيفية أداء صفحتك تحت هذا القيد.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.throttleCPU(rate)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
rate | number | معدل تقييد وحدة المعالجة المركزية. |
أمثلة
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
يسمح بتعديل أي طلب يتم إجراؤه بواسطة المتصفح. يمكنك حظر أو تعديل أو إعادة توجيه هذه الطلبات حسب المطلوب لاختباراتك.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.interceptRequest(rule)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
rule | object | قاعدة تصف اعتراض الطلب. |
أمثلة
// redirect a request
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// Blacklist requests to 3rd party vendors
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// Modify requests to REST API (Mock REST API response)
browser.interceptRequest({
url: 'http://sampleapp.appspot.com/api/todos',
response: {
headers: {
'x-custom-headers': 'foobar'
},
body: [{
title: 'My custom todo',
order: 1,
completed: false,
url: 'http://todo-backend-express.herokuapp.com/15727'
}]
}
})
assertPerformance
التحقق من الأداء مقابل خط الأساس لتطبيقك.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.assertPerformance(name, metrics)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
name | string | اسم المهمة التي أنشأت خط الأساس الخاص بك. |
metrics اختياري | string[] | أسماء المقاييس التي تريد التحقق منها مقابل خط الأساس. |
مثال
// test performance for a page
browser.url('https://webdriver.io')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // make sure that the name is also set in the sauce options in your capabilities
metrics: ['score', 'firstPaint']
})
القيمة المرجعة
- <object>
hasRegression
: كائن يحتوي على النتيجة وكذلك مقاييس حول النتيجة.
jankinessCheck
إجراء اختبار التمرير الذي يقيم مدى تقطع التطبيق.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.jankinessCheck()
مثال
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
القيمة المرجعة
- <object>
testResults
: كائن يحتوي على النتيجة وكذلك مقاييس حول مدى سلاسة تجربة المستخدم للصفحة أثناء الاختبار.
mockRequest
يحاكي مورد شبكة.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.mockRequest(url, filterOptions)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
url | string | نمط عنوان URL لمطابقة عنوان URL المراد محاكاته. |
filterOptions اختياري | object | خيارات تصفية إضافية لعنوان URL المراد محاكاته (مثل الرؤوس، الطريقة). |
القيمة المرجعة
- <object>
mockId
: كائن يحتوي على معرف المورد المحاكى.
getMockCalls
استلام معلومات الطلب حول الطلبات التي تتطابق مع المورد المحاكى.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.getMockCalls(mockId)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
mockId | String | معرف المحاكاة |
القيمة المرجعة
- <object>
requests
: قائمة بمعلومات الطلب.
clearMockCalls
مسح قائمة مكالمات المحاكاة.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.clearMockCalls(mockId, restore)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
mockId | String | معرف المحاكاة |
restore اختياري | boolean | اضبط على true إذا كان يجب استعادة المحاكاة أيضًا. |
respondMock
الاستجابة إذا تطابقت المحاكاة مع مورد محدد.
أمر Sauce Labs. يمكن العثور على مزيد من التفاصيل في وثائق البروتوكول الرسمية.
الاستخدام
browser.respondMock(mockId, payload)
المعاملات
الاسم | النوع | التفاصيل |
---|---|---|
mockId | String | معرف المحاكاة |
payload اختياري | object | معلومات عن استجابة المحاكاة. |