Immer eine vollständige Liste der URLs in einer Rails-Anwendung
-
01-07-2019 - |
Frage
Wie erhalte ich eine komplette Liste aller URLs, die meine Rails-Anwendung erzeugen könnte?
Ich möchte nicht über die Routen, die ich bekommen Rake Routen Form bekommen, anstatt möchte ich die actul URLs der dynmically corrosponding allen Seiten erzeugt in meiner Anwendung bekommen ...
Ist das überhaupt möglich?
(Hintergrund: Ich tue dies, weil ich eine vollständige Liste der URLs für einige Lasttests soll ich tun möchte, die die gesamte Breite der Anwendung abdecken muss)
Lösung
Ich konnte Nutzleistung mit dem folgenden Befehl erzeugen:
$ 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
Eine schnelle Referenz der wget
Argumente:
# --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.
Über ack
ack
ist wie grep
aber perl
regexps verwenden, die vollständigere / mächtig sind.
-o
des angepassten String nur Ausgang ack
Tells und das Muster habe ich Blicke auf alles Nicht-Raum, der von 'URL:'
voran
Andere Tipps
Sie können ziemlich schnell hacken ein Programm zusammen, das die Ausgabe von rake routes
packt und analysiert dann die Ausgabe zusammen eine Liste der URLs zu setzen.
Was ich habe, in der Regel, für Lasttests durchgeführt ist, ein Werkzeug zu verwenden, wie WebLOAD und Skript mehr verschiedene Arten von Benutzersitzungen (oder verschiedene Routen Benutzer ausführen können). Dann erstelle ich eine Mischung aus Benutzersitzungen und sie über die Website laufe etwas in der Nähe ein genaues Bild davon zu bekommen, wie die Website laufen könnte.
Normalerweise werde ich dies auch auf insgesamt 4 verschiedene Maschinen über 80 gleichzeitige Benutzersitzungen laufen realistisch zu simulieren, was durch die Anwendung wird passiert. Dies macht auch sicher, dass ich nicht allzu viel Zeit damit verbringen, selten besuchten Seiten zu optimieren und kann stattdessen konzentrieren sich auf die gesamte Anwendungsleistung entlang der kritischen Pfade.
Spider Integration Check out schriftliche Tests von Courtnay Gasking