گزارشگر خط زمانی
wdio-timeline-reporter یک پکیج شخص ثالث است، برای اطلاعات بیشتر لطفا به GitHub | npm مراجعه کنید
یک گزارشگر همهکاره WebdriverIO برای تجسم تجمیعی نتایج آزمونهای شما زیرا "دیدن باور کردن است"
چرا
زیرا ما زمان زیادی را صرف اشکالزدایی آزمونهای ناموفق میکنیم و از خروجی ترمینال به مشاهده تصاویر خطا و غیره میپردازیم. این گزارشگر تمام اطلاعات معمولی که نیاز خواهید داشت را در یک گزارش جمعآوری میکند. آزمونها را اجرا کنید و یک خط زمانی زیبا از رویدادها داشته باشید که میتوانید به آن نگاه کنید تا بیشتر تأیید کنید همه چیز خوب به نظر میرسد.
ویژگیها شامل:
- با چارچوبهای Mocha و Jasmine عالی کار میکند. همچنین با Cucumber کار میکند اما هر مرحله به عنوان یک آزمون گزارش میشود
- خلاصه واضح نتایج آزمون.
- جزئیات هر اجرای آزمون، از جمله تمام تصاویر گرفته شده در طول اجرای آزمون.
- فیلتر کردن نتایج آزمون. عالی برای تمرکز بر آزمونهای ناموفق
- ردیابی پشته خطا به آزمون متصل شده است.
- توانایی افزودن اطلاعات اضافی به آزمون در زمان اجرا.
- نیازی به پردازش پس از اتمام نیست. پس از اتمام فرآیند آزمون wdio، یک فایل گزارش html استاتیک ایجاد میشود.
- سرویس خط زمانی برای مدیریت گرفتن تصاویر شامل تغییر اندازه تصاویر.
یک نمونه گزارش html را میتوان اینجا پیدا کرد
دستورالعملهای نحوه نصب WebdriverIO
را میتوان اینجا یافت.
نصب
برای نسخه سازگار با WEBDRIVERIO V4 به اینجا مراجعه کنید
npm install --save wdio-timeline-reporter
یک وابستگی به package.json
شما اضافه خواهد شد
{
"dependencies": {
"wdio-timeline-reporter": "^5.1.0"
}
}
استفاده
timeline
را به آرایه گزارشگران در فایل پیکربندی wdio خود اضافه کنید.
همچنین TimelineService
را از wdio-timeline-reporter وارد و اضافه کنید.
سرویس برای ترکیب گزارشها و ایجاد html ضروری است زیرا گزارشگرها اکنون به ازای هر نمونه اجرا در webdriverio 5 راهاندازی میشوند. بحث باز در مورد webdriverio را ببینید
TimelineService همچنین میتواند گرفتن تصاویر را در طول اجرای آزمونها مدیریت کند. شما گزینه کاهش اندازه و کیفیت تصاویر و همچنین جاسازی تصاویر در گزارش به عنوان base64 را دارید. اینها با استفاده از گزینههای گزارشگر قابل تنظیم هستند.
// wdio.conf.js
const { TimelineService } = require('wdio-timeline-reporter/timeline-service');
exports.config = {
// ...
reporters: [['timeline', { outputDir: './desired_location' }]],
// ...
services: [[TimelineService]]
};
گزینههای گزارشگر
اگر میخواهید پیکربندی پیشفرض گزارشگر را تغییر دهید، یک شیء literal از گزینههای گزارشگر را به آرایه timeline در زیر reporters اضافه کنید، همانطور که در زیر نشان داده شده است.
شاخص | توضیحات |
---|---|
1. | دایرکتوری که فایل html و تصاویر در آن ایجاد میشود. گزینه اجباری |
2. | نام فایل گزارش html. مقدار پیشفرض timeline-report.html است |
3. | تصاویر را به صورت base64 در فایل html جاسازی کنید. مقدار پیشفرض false است |
4. | گزینههای شیء برای دستکاری تصویر |
5. | کیفیت JPEG را تنظیم کنید. فقط در صورتی مرتبط است که گزینه resize برابر با true باشد. هرچه مقدار کمتر باشد، اندازه و کیفیت تصویر کمتر خواهد بود. مقدار پیشفرض 70 است. حداکثر مقدار مجاز 100 است |
6. | تغییر اندازه تصویر. مقدار پیشفرض false است |
7. | مقدار برای کاهش تعداد کل پیکسلها. فقط در صورتی مرتبط است که گزینه resize صحیح باشد. پیشفرض 1 است. مقادیر معتبر 1 - 5 |
8. | چند وقت یکبار تصاویر گرفته شوند. مقادیر پشتیبانی شده on:error ، before:click ، none هستند. پیشفرض none است. before:click یک گزینه عالی برای ایجاد یک خط زمانی از تصاویر برنامه تحت آزمون است. |
افزودن اطلاعات اضافی به زمینه آزمون
امکان افزودن اطلاعات اضافی به یک آزمون با استفاده از متد استاتیک addContext
وجود دارد. این میتواند برای افزودن اطلاعات مهم که میتواند به اشکالزدایی آزمونهای ناموفق کمک کند، به عنوان مثال یک کاربر ایجاد شده در طول اجرای آزمون با نام کاربری پویا، مفید باشد
استفاده پایه
متد استاتیک TimelineReporter.addContext
یا یک پارامتر رشتهای یا یک شیء literal با دو خاصیت title
و value
را میپذیرد، به عنوان مثال
{ title: 'sessionId', value: 'b59bb9ec-ab15-475e-9ce6-de8a14ca0cd3' }
مقدار میتواند همچنین یک لینک باشد
مثال Mocha
const TimelineReporter = require('wdio-timeline-reporter').default;
describe('Suite', function() {
it('Test', function() {
// object literal parameter
TimelineReporter.addContext({
title: 'Test User',
value: 'user id created during the test'
});
// value as anchor tag
TimelineReporter.addContext({
title: 'Dynamic link',
value: '<a href="">Some important link related to test</a>'
});
// string parameter
TimelineReporter.addContext('This test might be flaky');
});
});
قدردانی
دوست دارم از نویسندگان و نگهدارندگان wdio-json-reporter تشکر کنم. بررسی راه حل نسخه 5 آنها به تسریع کار من کمک کرد