2011-11-10 9 views
3

Maintenant, je travaille sur un projet où le script de test doit connecter plusieurs (3-10) ordinateurs distants (SSH et faire certaines choses). J'ai commencé à utiliser le pexpect et c'est simple comme un bouton. Ça fonctionne bien.Sortie pexpect dans une fenêtre différente

Je veux voir la communication pendant le test. Je sais qu'il est possible de rediriger le journal vers l'écran. Mais dans ce cas, les journaux (provenant de différents ordinateurs) sont mélangés. Ce que je voudrais, c'est ouvrir une nouvelle fenêtre de terminal (ou console ou autre) pour chaque nouvel objet spawn. Dans ce cas, je pouvais voir toutes les communications dans différentes fenêtres. De plus, je voudrais garder la possibilité de spawn.interact() dans chaque fenêtre. Je pense que c'est possible mais je ne sais pas comment. Je pense que certains pointeur de fichier (ou pipe) doivent passer à la nouvelle fenêtre en quelque sorte (?) (SecureCRT sait sometihng comme celui-ci, il a onglets fenêtres Consol et peut y accéder séparément, mais il est un produit commercial)

Ou permettez-moi de rendre le problème plus simple. Si je fais cela, je peux ouvrir un nouveau shell dans une nouvelle fenêtre:

p=Popen(["cygstart", "bash"])

Comment puis-je lire et écrire dans cette coquille de mon script (parent) pour voir dans cette nouvelle fenêtre?

J'apprécierais vraiment, si l'un de vous pourrait me diriger dans la bonne direction.

Il suffit que vous me disiez quoi lire ou trouver (sur Google) parce que je n'ai trouvé personne de ce genre de problème. L'environnement est cygwin.

Merci à l'avance

br: DRV

+0

Je sais que c'est très vieux, mais avez-vous déjà eu ce travail? Je dois essentiellement faire exactement la même chose. –

Répondre

0

Avez-vous essayé d'utiliser le paramètre logfile?

child = pexpect.spawn('some_command') 
mylog = open('/tmp/mylog','w') 
child.logfile = mylog 

Cela connectera automatiquement toutes les communications dans le fichier, y compris les commandes que vous entrez après avoir appelé spawn.interact()

Plus d'informations disponibles sur le site: http://pexpect.sourceforge.net/pexpect.html Rechercher « logfile » pour trouver le correspondant Documentation.

Questions connexes