الحصول على قائمة كاملة بعناوين URL في تطبيق Rails

StackOverflow https://stackoverflow.com/questions/84290

  •  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 جلسة مستخدم متزامنة لمحاكاة ما سيحدث من خلال التطبيق بشكل واقعي.وهذا يضمن أيضًا عدم قضاء الكثير من الوقت في تحسين الصفحات التي لا تتم زيارتها بشكل متكرر، ويمكنني بدلاً من ذلك التركيز على الأداء العام للتطبيق عبر المسارات المهمة.

تحقق من اختبارات التكامل العنكبوتية التي كتبها كورتناي جاسكينج

http://pronetos.googlecode.com/svn/trunk/vendor/plugins/spider_test/doc/classes/Caboose/SpiderIntegrator.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top