در فیلمهای کارآگاهی، بررسی دوربینهای مداربسته کمک میکند اتفاقها همانطور که رخ دادهاند دیده شوند. بازپخش نشست (Session Replay) نیز کاربرد مشابهی در اپلیکیشن دارد: بهجای اینکه فقط گزارش خطا را بخوانید، میتوانید ببینید کاربر پیش از بروز مشکل با کدام بخشهای صفحه تعامل داشته است.
Session Replay نمایی بازسازیشده از نشست کاربر در اپلیکیشن ارائه میدهد. این قابلیت کمک میکند مسیر رسیدن به خطا، رفتار رابط کاربری و شرایطی را که باعث بروز مشکل شدهاند، بهتر بررسی کنید.
Session Replay چگونه کار میکند؟
Session Replay یک فایل ویدئویی از صفحه کاربر نیست. کیت توسعه نرمافزار سنتری (Sentry SDK) ساختار صفحه، تغییرات آن و بعضی تعاملهای کاربر را ثبت میکند. سنتری با استفاده از این اطلاعات، نشست را بازسازی میکند تا بتوانید اتفاقها را بهترتیب زمانی ببینید.
در اپلیکیشنهای وب، این اطلاعات میتوانند شامل تغییرات مدل شیء سند (Document Object Model یا DOM)، کلیکها، اسکرولها، جابهجایی میان صفحهها و وضعیت رابط کاربری باشند.
میزان اطلاعات ثبتشده به نسخه SDK و تنظیمات Session Replay بستگی دارد. همچنین، بهدلیل نمونهبرداری یا تنظیمات ضبط، ممکن است برای همه نشستها و خطاها Replay وجود نداشته باشد.
Session Replay چه اطلاعاتی ثبت میکند؟
هنگام مشاهده یک Replay میتوانید مسیر تعامل کاربر با اپلیکیشن را بررسی کنید. بسته به تنظیمات، این اطلاعات میتوانند شامل موارد زیر باشند:
- صفحههایی که کاربر مشاهده کرده است؛
- ترتیب کلیکها و اسکرولها؛
- تغییرات رابط کاربری در طول نشست؛
- زمان بروز خطا در جریان نشست؛
- وضعیت صفحه پیش و پس از وقوع مشکل؛
- مرورگر، سیستمعامل و اطلاعات فنی مرتبط با نشست.
برای مثال، ممکن است گزارشی دریافت کنید که نشان دهد فرم ثبت سفارش با خطا مواجه شده است. Stack Trace محل وقوع خطا در کد را نشان میدهد، اما لزوماً مشخص نمیکند کاربر پیش از آن چه مسیری را طی کرده است. Session Replay میتواند نشان دهد کاربر ابتدا یک گزینه را انتخاب کرده، چند بار روی دکمه ثبت کلیک کرده و سپس با پیام خطا روبهرو شده است.
Session Replay چه کمکی میکند؟
بعضی خطاها به وضعیت خاصی از رابط کاربری وابستهاند و بازتولید آنها دشوار است. ممکن است مشکل فقط پس از انجام چند مرحله مشخص، بازگشت به صفحه قبلی یا چند کلیک متوالی رخ دهد.
Session Replay کمک میکند:
- مسیر رسیدن کاربر به خطا را ببینید؛
- مشکلات دشوار برای بازتولید را بهتر بررسی کنید؛
- رفتار غیرمنتظره رابط کاربری را شناسایی کنید؛
- متوجه شوید کاربر هنگام بروز خطا چه چیزی دیده است؛
- اطلاعات فنی خطا را در کنار تعاملهای کاربر تحلیل کنید.
این قابلیت فقط برای خطاهایی که باعث ازکارافتادن کامل اپلیکیشن میشوند کاربرد ندارد. گاهی یک دکمه واکنش نشان نمیدهد، صفحه در وضعیت بارگذاری باقی میماند یا پیام خطا برای کاربر واضح نیست. Replay میتواند چنین مشکلاتی را نیز آشکار کند.
ارتباط Replay با Error و Transaction
ارزش اصلی Session Replay زمانی مشخص میشود که در کنار سایر اطلاعات سنتری استفاده شود. اگر هنگام یک نشست، خطا یا رخداد عملکردی ثبت شده باشد، سنتری میتواند آن را به Replay مرتبط کند.
در این حالت میتوانید از صفحه خطا (Error) وارد Replay مربوط شوید و اتفاقهای پیش از وقوع آن را ببینید. همچنین ممکن است از Replay به رخدادها یا تراکنشهای (Transaction) مرتبط دسترسی داشته باشید.
این ارتباط کمک میکند مشکل را از دو زاویه بررسی کنید:
- زاویه فنی: کدام بخش کد با خطا مواجه شده یا کدام عملیات کند بوده است؛
- زاویه کاربر: کاربر چه مسیری را طی کرده و هنگام بروز مشکل چه چیزی دیده است.
وجود Replay برای هر Error یا Transaction به تنظیمات SDK، نرخ نمونهبرداری و ثبتشدن نشست بستگی دارد.
حریم خصوصی و اطلاعات حساس
Session Replay ممکن است با بخشهایی از اپلیکیشن در ارتباط باشد که اطلاعات کاربران را نمایش میدهند. به همین دلیل، تنظیمات حریم خصوصی باید پیش از فعالسازی آن بررسی شوند.
با استفاده از تنظیمات Masking و Blocking میتوانید متنها، فیلدهای ورودی، تصاویر یا بخشهای مشخصی از صفحه را از محتوای Replay حذف یا پنهان کنید. اطلاعاتی مانند رمز عبور، توکن، اطلاعات پرداخت و دادههای هویتی نباید برای سنتری ارسال شوند.
پیش از استفاده از Session Replay در محیط عملیاتی:
- مشخص کنید ثبت کدام صفحهها و اجزا ضروری است؛
- فیلدها و اطلاعات حساس را پنهان کنید؛
- تنظیمات را در محیط آزمایشی بررسی کنید؛
- نرخ نمونهبرداری را متناسب با نیاز و حجم رخدادها تنظیم کنید؛
- سیاست حریم خصوصی محصول خود را در نظر بگیرید.
چه زمانی از Session Replay استفاده کنیم؟
Session Replay برای بررسی این موارد مفید است:
- خطاهایی که بازتولید آنها دشوار است؛
- مشکلات فرمها و فرایندهای چندمرحلهای؛
- کلیکهای بینتیجه یا رفتار غیرمنتظره دکمهها؛
- صفحههایی که در وضعیت بارگذاری باقی میمانند؛
- خطاهایی که فقط برای بعضی کاربران رخ میدهند؛
- مشکلاتی که گزارش کاربر اطلاعات کافی درباره آنها ندارد.
Session Replay جایگزین Stack Trace، لاگ یا Tracing نیست. این قابلیت اطلاعات مربوط به تعامل کاربر را به دادههای فنی اضافه میکند تا تصویر کاملتری از شرایط وقوع مشکل داشته باشید.