10
votes

Comment puis-je configurer RSPEC pour les tests de performance 'sur le côté'

Nous utilisons RSPEC dans un projet Rails pour des tests d'unités. Je voudrais mettre en place des tests de performance dans RSPEC, mais faites-le de manière à ne pas perturber les caractéristiques et les appareils habituels ».

Idéalement, je serais en mesure de baliser mes spécifications de performance d'une certaine manière dont ils ne sont pas exécutés par défaut. Ensuite, lorsque je spécifie pour exécuter ces spécifications explicitement, il chargera un ensemble de luminaires différents (il est logique de faire des tests de performance avec un ensemble de données beaucoup plus grand et plus «de la production»).

est-ce possible? Il semble que cela devrait être.

Quelqu'un a-t-il mis en place quelque chose comme ça? Comment êtes-vous allé à ce sujet?


0 commentaires

3 Réponses :


0
votes

Si vous souhaitez effectuer des tests de performance, pourquoi ne pas exécuter de nouvelle relique ou quelque chose avec un instantané de données de production? Vous n'avez pas vraiment besoin de spécifications différentes pour cela, je pense.


4 commentaires

Je me demandais principalement à quel point il serait réalisable d'automatiser les tests de performance. De sorte qu'un changement de code introduit un impact significatif de performance négatif serait «déclencherait» un test que d'affirmer qu'une certaine fonction peut exécuter, par exemple moins de 30 secondes.


Vous pourriez faire cela, mais je ne suis pas sûr dans quelle mesure ce serait la pratique, d'autant plus que RSPEC est la meilleure lorsque la RSPEC ne permet pas de tester des trucs en face de l'utilisateur, et la performance est confrontée à l'utilisateur. Je suppose que vous pourriez utiliser du concombre au lieu de RSPEC pour vos tests de performance, mais j'ai tendance à penser que cela est préférable à la nouvelle relique.


Cela s'appelle le profilage, pas les tests de performance. Les tests de performance doivent s'assurer qu'un morceau de code fonctionne dans les délais impartis, compte tenu d'un certain contexte, avant que le nouveau code ne pénètre dans la production.


@Aledalgrande Pour ce type de test de performance, je conseillerais le concombre.



20
votes

J'ai réussi à obtenir ce que je cherchais via ce qui suit: xxx

mais j'ai tendance à être d'accord avec le point de Marnen que ce n'est pas vraiment la meilleure idée des tests de performance.


0 commentaires

7
votes

J'ai créé RSPEC-Benchmark GEM Ruby pour écriture Tests de performance dans RSPEC. Il a de nombreuses attentes pour tester la vitesse, l'utilisation des ressources et l'évolutivité.

Par exemple, pour tester la vitesse de votre code: xxx

ou pour comparer avec une autre implémentation: xxx

ou pour tester la complexité de calcul: xxx

ou pour voir combien d'objets sont alloués: < Pré> xxx


0 commentaires