في هذه المقالة، نقارن بين LoadRunner وLoadView باستخدام سيناريو اختبار عملي على تطبيق العينة PhoneNumberMonitoring.com. سير الاختبار بسيط:
تشغيل التطبيق → تسجيل الدخول → التنقل إلى تبويب → تسجيل الخروج
ومع ذلك، فإن طريقة تنفيذ هذا السيناريو في LoadRunner مقابل LoadView مختلفة تمامًا — خاصة عندما يتعلق الأمر بـجهد الإعداد، والمرونة، وقابلية التوسع، ودقة محاكاة العالم الحقيقي.
استخدام LoadRunner: قوة على مستوى البروتوكول مع تعقيد عالٍ
LoadRunner يوفر تحكمًا عميقًا على مستوى البروتوكول باستخدام VuGen (مولد المستخدمين الافتراضيين) ويدعم بروتوكولات مثل HTTP/HTML، SAP، خدمات الويب، TruClient، وغيرها. رغم أن هذا يوفر مرونة لاختبار المؤسسات، إلا أن الجهد المطلوب لإعداد حتى تدفق أساسي يمكن أن يكون مرهقًا.
لهذا الاختبار، استخدمنا بروتوكول Web HTTP/HTML، وهو مناسب لتطبيقات الويب التي لا تتطلب عرضًا كاملاً للمتصفح.
ما الذي قمنا به في LoadRunner
- اختيار البروتوكول: اخترنا HTTP/HTML؛ ومع ذلك، فإن اختيار وضع التسجيل الصحيح (القائم على HTML مقابل القائم على URL) قرار حاسم وغالبًا ما يتطلب التجربة والخطأ لضمان إنشاء البرنامج النصي بشكل صحيح.
- التسجيل باستخدام VuGen: قمنا بتكوين تعيين المنفذ (كما هو موضح في لقطة الشاشة) واختيار مستوى الالتقاط (مثل WinInet أو Socket) — ولكل منهما سلوك خاص به
- إعداد الارتباط: استخراج يدوي للبيانات الديناميكية للجلسة باستخدام web_reg_save_param_ex و JSON path. إذا تم تجاهل الارتباط، يفشل الاختبار — لا توجد اقتراحات تلقائية أو تلميحات عبر الواجهة.
- المعلمات: استبدلنا القيم الثابتة بملفات بيانات باستخدام أداة LoadRunner لتحديد المعلمات.
- زمن التفكير والمعاملات: قمنا بتغليف الإجراءات الحرجة داخل lr_start_transaction() وأضفنا lr_think_time() لمحاكاة تأخير المستخدم.
- إدارة الجلسة: إدارة ملفات تعريف الارتباط والرؤوس المخصصة يدويًا بين الطلبات
- منطق متقدم: أضفنا تعبيرات if-else، الحلقات، وكود مخصص بلغة C للتحكم في التدفق
نقاط الألم والقيود الأساسية مع LoadRunner
رغم كونه أداة قوية، يقدم LoadRunner عدة نقاط احتكاك: تعقيد التسجيل
- الاختيار بين التسجيل القائم على HTML أو URL غالبًا ما يؤثر على البرنامج النصي
- الاختيار بين WinInet وSocket يمكن أن يربك المبتدئين — بعض التطبيقات تستجيب فقط لنمط معين من الالتقاط.
استكشاف الأخطاء وتحليل السجلات
- سجلات LoadRunner خاصة بالبروتوكول وغالبًا ما تكون غامضة — سجلات HTTP، تفريغ XML، وسجلات الإعادة موزعة على تبويبات ومن الصعب ربطها في الوقت الفعلي.
- إعادة تشغيل جلسة المستخدم الحية غير متوفرة — مما يجعل من الصعب تحديد الخطأ بصريًا أثناء تنفيذ البرنامج النصي.
الارتباط الخاص بالبروتوكول
- كل بروتوكول (SAP، Oracle، HTTP، إلخ) يتطلب طرق ارتباط مختلفة.
بروتوكول HTTP/HTML
web_reg_save_param، web_reg_save_param_ex، web_reg_save_param_json، web_reg_save_param_xpath (HTTP/HTML، خدمات الويب)، web_reg_save_param_attrib وغيرها
بروتوكول SAP GUI
sapgui_get_text، sapgui_select_active_window، sapgui_set_property، sapgui_get_property، sapgui_status_bar_set_text وغيرها
بروتوكول Oracle NCA
nca_set_window، nca_set_menu_item، nca_edit_set، nca_button_press، nca_get_text وغيرها
بروتوكول خدمات الويب
web_custom_request، web_service_call وغيرها
- لا يوجد إطار موحد للارتباط — حتى TruClient يتصرف بشكل مختلف تمامًا ولا يشارك منطق الارتباط مع بروتوكول HTTP.
الأداء وسهولة الاستخدام
- برامج TruClient النصية تحاكي تدفقات المتصفح ولكنها تستهلك موارد النظام بشكل كبير وتستغرق وقتًا أطول للتنفيذ.
- تحرير التدفق بصريًا بسيط، تحليل الأعطال يتطلب التبديل بين نوافذ السجل ولقطات الشاشة.
إعداد اختبار تحميل موزع باستخدام LoadRunner
- يتطلب LoadRunner عدة مكونات: VuGen للبرمجة، Controller للتنسيق، وLoad Generators (LGs) للتوزيع.
- يتطلب إعدادًا يدويًا، قواعد جدار حماية، فتح المنافذ، والشبكة
- قابلية التوسع وتنسيق التنفيذ تزيد من التعقيد — غير مناسب للفرق التي تتبع منهجية Agile وتحتاج سرعة.
LoadRunner قوي للأنظمة القديمة، لكنه غير مثالي لاختبارات الويب الحديثة أو الدورات السريعة.
استخدام LoadView: اختبار تحميل المتصفح الحقيقي أصبح بسيطًا
LoadView يقدم نهجًا حديثًا مع اختبار تحميل قائم على المتصفح وسحابي بالكامل. يحاكي سلوك المستخدم الحقيقي في متصفحات مثل Chrome أو Edge، مما يتيح التحقق من أداء الواجهة الأمامية وليس فقط الاستجابة الخلفية.
لنفس التدفق على PhoneNumberMonitoring.com، استخدمنا EveryStep Recorder وأكملنا إعداد الاختبار في أقل من 5 دقائق — بدون برمجة، بدون إعدادات، وبدون إضافات.
لماذا كان استخدام LoadView سهلاً
- التسجيل كمستخدم حقيقي: فقط انقر، اكتب، مرر — كما يتفاعل المستخدم فعليًا.
- بدون ارتباط: يقوم LoadView بالتقاط القيم الديناميكية (الرموز، الجلسات)
- دعم كامل لبرمجة C#: للمستخدمين المتقدمين، يوفر LoadView إمكانيات كاملة لبرمجة C#، مما يسمح باستخدام الحلقات، الشروط، التصريحات المتغيرة، والمزيد — مما يوفر مرونة لتخصيص التدفق.
مثال: إيقاف تنفيذ البرنامج النصي عند خطأ في التحقق من المحتوى
- إعداد ملفات تعريف الارتباط والرؤوس مسبقًا: يمكنك تكوين رؤوس الطلب، تفاصيل المصادقة، ملفات تعريف الارتباط، وعوامل المستخدم قبل التنفيذ لمحاكاة السيناريوهات الحقيقية بدقة أكبر.
- سهل للمبتدئين، جاهز للخبراء: بينما من السهل البدء بالتسجيل البسيط، يتوسع LoadView حسب احتياجات مختبري الأداء المحترفين، مما يجعله مزيجًا نادرًا من البساطة والقوة.
- عرض كامل للمتصفح: يدعم SPAs، AJAX، WebSockets — ما تراه هو ما يتم اختباره.
- اختبار موزع جغرافيًا: اختر من بين أكثر من 40 منطقة عالمية لمحاكاة حمل المستخدم من مواقع حقيقية.
- إعادة تشغيل الجلسة الحية: يمكنك مشاهدة كيفية تنفيذ الاختبار، خطوة بخطوة، بما في ذلك عرض الصفحات ونشاط الإدخال — هذا غير ممكن في LoadRunner.
- مقاييس الواجهة الأمامية: عرض LCP (أكبر محتوى مرئي)، FCP (أول محتوى مرئي)، وTTI (الوقت حتى التفاعل) مباشرة من التقرير.
- محرر تدفق مرئي: عدل أي خطوة بصريًا — دون الحاجة إلى لمس الكود أو فحص السجلات
مقارنة الميزات: LoadRunner مقابل LoadView
الميزة | LoadRunner | LoadView |
خيارات التسجيل | مستويات متعددة (WinInet، Socket)، قرارات حسب البروتوكول | تسجيل بنقرة واحدة عبر المتصفح |
هل تتطلب برمجة؟ | نعم – برمجة متقدمة، تحديد معلمات، ارتباط | لا – سجل وشغّل بدون برمجة |
معالجة القيم الديناميكية | يدوي – حسب البروتوكول | ارتباط تلقائي |
محاكاة المتصفح الحقيقي | فقط عبر TruClient (بطيء وثقيل) | Chrome/Edge أصلي |
مقاييس الواجهة الأمامية | محدودة في TruClient | متوفرة بالكامل (FCP، LCP، TTI) |
إعادة تشغيل الجلسة الحية | غير متاحة | متاحة — مع التشغيل |
مدة إنشاء الاختبار | 45–90 دقيقة | 5–10 دقائق |
تحليل السجلات | سجلات بروتوكول معقدة، ارتباط يدوي | سجلات خطوة عبر الواجهة، لقطات شاشة |
التعامل مع البروتوكولات | حسب نوع التطبيق (HTML، SAP، Oracle) | مسجل موحد لكل تدفقات الويب |
اختبار موزع | يتطلب Load Generators وController | تنفيذ سحابي مدمج |
متطلبات المهارات | عالية – تتطلب برمجة وتصحيح | منخفضة – يمكن للمستخدمين العاديين الاختبار أيضًا |
التكلفة والترخيص | ترخيص مؤسسي مكلف | تسعير شفاف حسب الاستخدام |
تأثير التطبيقات الواقعية
حالة الاستخدام | LoadRunner | LoadView |
إتمام الشراء في التجارة الإلكترونية | يتطلب برمجة للتعامل مع الرموز والمهل الزمنية لجافا سكريبت | تدفق شراء فعلي عبر المتصفح مع تحقق من تجربة المستخدم |
لوحات تحكم مصرفية | يتطلب ارتباطًا عميقًا، تتبع الرموز | سهل لمحاكاة تسجيل الدخول والتنقل بلوحات التحكم الآمنة |
محاكاة التحميل الجغرافي | يتطلب إعداد LG لكل منطقة | محدد مواقع جغرافي بسيط في الواجهة |
اختبار دورات Agile | أبطأ في التعديل وإعادة التشغيل | إنشاء سريع وإعادة استخدام سهلة |
عروض العملاء والنماذج الأولية | يتطلب إعدادًا وتنسيقًا | سجل وشارك نتائج الاختبار فورًا |
الملخص النهائي
اختر LoadRunner إذا:
- كنت بحاجة لاختبار على مستوى البروتوكول بعمق
- تعمل مع تطبيقات قديمة (SAP، Oracle، الأنظمة الرئيسية)
- فريقك ذو كفاءة تقنية ويملك بنية تحتية مخصصة
اختر LoadView إذا:
- كنت تريد اختبار تطبيقات حديثة قائمة على المتصفح
- تهتم بـأداء الواجهة الأمامية وتجربة المستخدم
- تحتاج إلى دورة اختبار أسرع وأبسط بدعم المتصفح الحقيقي