الحصول على قائمة كاملة بعناوين URL في تطبيق Rails
-
01-07-2019 - |
سؤال
كيف يمكنني الحصول على قائمة كاملة بجميع عناوين URL التي يمكن أن ينشئها تطبيق Rails الخاص بي؟
لا أريد أن تحصل المسارات التي أحصل عليها على مسارات نموذجية، وبدلاً من ذلك أريد الحصول على عناوين URL الفعلية التي تتوافق مع جميع الصفحات التي تم إنشاؤها ديناميكيًا في تطبيقي...
هل هذا ممكن حتى؟
(خلفية:أفعل هذا لأنني أريد قائمة كاملة بعناوين URL لبعض اختبارات التحميل التي أرغب في إجرائها، والتي يجب أن تغطي نطاق التطبيق بالكامل)
المحلول
تمكنت من إنتاج مخرجات مفيدة باستخدام الأمر التالي:
$ wget --spider -r -nv -nd -np http://localhost:3209/ 2>&1 | ack -o '(?<=URL:)\S+'
http://localhost:3209/
http://localhost:3209/robots.txt
http://localhost:3209/agenda/2008/08
http://localhost:3209/agenda/2008/10
http://localhost:3209/agenda/2008/09/01
http://localhost:3209/agenda/2008/09/02
http://localhost:3209/agenda/2008/09/03
^C
مرجع سريع لل wget
الحجج:
# --spider don't download anything.
# -r, --recursive specify recursive download.
# -nv, --no-verbose turn off verboseness, without being quiet.
# -nd, --no-directories don't create directories.
# -np, --no-parent don't ascend to the parent directory.
عن ack
ack
يشبه grep
لكن استخدم perl
regexps، والتي هي أكثر اكتمالا/قوة.
-o
يروي ack
لإخراج السلسلة الفرعية المتطابقة فقط، والنمط الذي استخدمته يبحث عن أي شيء غير مسبوق بمسافة 'URL:'
نصائح أخرى
يمكنك بسرعة اختراق برنامج يلتقط مخرجات rake routes
ثم يقوم بتحليل الإخراج لتجميع قائمة بعناوين URL.
ما قمت به عادةً لاختبار التحميل هو استخدام أداة مثل تحميل الويب والبرمجة النصية لعدة أنواع مختلفة من جلسات المستخدم (أو طرق مختلفة يمكن للمستخدمين اتباعها).ثم أقوم بإنشاء مزيج من جلسات المستخدم وتشغيلها عبر موقع الويب للحصول على صورة قريبة من الصورة الدقيقة لكيفية تشغيل الموقع.
عادةً ما سأفعل ذلك أيضًا على إجمالي 4 أجهزة مختلفة تعمل على تشغيل حوالي 80 جلسة مستخدم متزامنة لمحاكاة ما سيحدث من خلال التطبيق بشكل واقعي.وهذا يضمن أيضًا عدم قضاء الكثير من الوقت في تحسين الصفحات التي لا تتم زيارتها بشكل متكرر، ويمكنني بدلاً من ذلك التركيز على الأداء العام للتطبيق عبر المسارات المهمة.
تحقق من اختبارات التكامل العنكبوتية التي كتبها كورتناي جاسكينج