Obtenir une liste complète des URL dans une application rails
-
01-07-2019 - |
Question
Comment obtenir une liste complète de toutes les URL que mon application rails pourrait générer?
Je ne veux pas que les itinéraires que je reçois obtiennent des itinéraires de type rake, je souhaite plutôt obtenir les URL d'actul correspondant à toutes les pages générées de manière dynmique dans mon application ...
Est-ce même possible?
(Contexte: je le fais parce que je veux une liste complète d’URL pour les tests de charge que je veux effectuer, ce qui doit couvrir toute l’étendue de l’application)
La solution
J'ai pu produire une sortie utile avec la commande suivante:
$ 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
Une référence rapide des arguments 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.
À propos de ack
ack
est comme grep
mais utilisez des expressions rationnelles perl
, qui sont plus complètes / puissantes.
-o
indique à ack
de ne générer que la sous-chaîne correspondante, et le modèle que j'ai utilisé recherche tout ce qui n'est pas un espace précédé de 'URL:'
Autres conseils
Vous pouvez très rapidement regrouper un programme qui récupère la sortie de routes de râteau
, puis analyse la sortie pour constituer une liste des URL.
Ce que j'ai généralement fait pour le test de charge est d'utiliser un outil tel que WebLOAD et de rédiger un script pour différents types de sessions utilisateur (ou différents itinéraires que les utilisateurs peuvent emprunter). Ensuite, je crée un mélange de sessions utilisateur et les dirige sur le site Web pour obtenir une image fidèle du fonctionnement du site.
En règle générale, je le ferai également sur 4 machines différentes exécutant environ 80 sessions utilisateur simultanées afin de simuler de manière réaliste ce qui se passera dans l'application. Cela me permet également de ne pas perdre trop de temps à optimiser les pages rarement visitées et de me concentrer sur les performances globales des applications le long des chemins critiques.
Découvrez les tests d’intégration de l’araignée écrits par Courtnay Gasking