محاكاة الطلبات والتجسس عليها
يأتي WebdriverIO مع دعم مدمج لتعديل استجابات الشبكة مما يسمح لك بالتركيز على اختبار تطبيق الواجهة الأمامية دون الحاجة إلى إعداد الخادم الخلفي أو خادم وهمي. يمكنك تحديد استجابات مخصصة لموارد الويب مثل طلبات واجهة برمجة التطبيقات REST في اختبارك وتعديلها ديناميكيًا.
لاحظ أن استخدام أمر mock
يتطلب دعمًا لبروتوكول Chrome DevTools. يتوفر هذا الدعم إذا كنت تشغل الاختبارات محليًا في متصفح يعتمد على Chromium، أو عبر Selenium Grid الإصدار 4 أو أعلى، أو من خلال مزود سحابي يدعم بروتوكول Chrome DevTools (مثل SauceLabs، BrowserStack، LambdaTest). سيتوفر الدعم الكامل عبر المتصفحات بمجرد وصول الأدوات الأساسية المطلوبة في Webdriver Bidi وتنفيذها في المتصفحات المعنية.
إنشاء محاكاة
قبل أن تتمكن من تعديل أي استجابات، يجب عليك أولاً تحديد محاكاة. يتم وصف هذه المحاكاة بواسطة عنوان URL للموارد ويمكن تصفيتها بواسطة طريقة الطلب أو الرؤوس. يدعم المورد تعبيرات glob بواسطة minimatch:
// mock all resources ending with "/users/list"
const userListMock = await browser.mock('**/users/list')
// or you can specify the mock by filtering resources by headers or
// status code, only mock successful requests to json resources
const strictMock = await browser.mock('**', {
// mock all json responses
requestHeaders: { 'Content-Type': 'application/json' },
// that were successful
statusCode: 200
})
تحديد استجابات مخصصة
بمجرد تعريف محاكاة، يمكنك تحديد استجابات مخصصة لها. يمكن أن تكون هذه الاستجابات المخصصة إما كائنًا للرد على JSON، أو ملفًا محليًا للرد باستخدام بيانات ثابتة مخصصة، أو مورد ويب لاستبدال الاستجابة بمورد من الإنترنت.