Question

J'ai une application Web qui a besoin de fonctionnalités et de performances testées, et une partie de la suite de test que nous prévoyons d'utiliser est déjà écrite en python. Quand j'ai écrit ceci pour la première fois, j'ai utilisé Mécanisé comme moyen de crampons sur le Web, mais cela semble être trop volumineux pour ce que j'essaie de faire (soit ça, soit il me manque quelque chose).

La disposition de base de ce que j'essaie de faire est la suivante. Tous sont des objets.

  • L'utilisateur a Comm (était l'interface entre mes affaires et mécaniser)
  • Comm a Browser (tient mes objets Cookiejar, UlLlib2 et BeautifulSoup, était autrefois mécanisé)
  • Le navigateur a une forme (s) (utilisé pour mécaniser)

Maintenant, en ce qui concerne le filetage, j'ai cela. L'ajustement entre le traitement du GIL et le fait d'avoir des instances distinctes de course de python seront effectuées au besoin, mais des suggestions seront prises.

Donc, ce que je dois faire, c'est de filmer les utilisateurs de l'application et de faire diverses choses (connexion, de remplir des formulaires, de soumettre des formulaires pour le traitement, etc.) tout en ne faisant pas crier trop fort la boîte de test. Mon problème actuel avec mécanisé semble être RAM.

Une partie de ce qui cause le problème de RAM est la nécessité d'instances de navigateur séparées pour que chaque utilisateur empêche l'écrasement du JSESSIONID Cookie à chaque fois que je fais quelque chose avec un autre utilisateur.

Une grande partie de cela peut sembler triviale, mais j'essaie d'exécuter des milliers de fils ici, donc de petits ajustements peuvent signifier beaucoup. Toute entrée est appréciée.

Était-ce utile?

La solution 3

En fait, je suis allé sans utiliser mécaniser et utiliser le module de filetage. Cela a permis de transactions assez rapides, et je me suis également assuré de ne pas avoir trop à l'intérieur de chaque fil. Connexion des informations et obtenir le WebApp dans l'état nécessaire avant que je ficelle aidé les threads à s'exécuter plus courts et donc plus rapidement.

Autres conseils

Le filetage provoque des problèmes avec le gil, plus encore avec plus de cœurs. Essayez d'utiliser mécaniser avec événement Pour atteindre la concurrence (via plusieurs processus), consultez également multi-mécanisant

Avez-vous envisagé Twisted, la bibliothèque asynchrone, pour au moins une interaction avec les utilisateurs?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top