2010-11-05 9 views
0

Ok, voici mon scénario (soyez gentil, j'utilise Python depuis peu):Python - itération Test d'un service SOAP; besoin d'utiliser différentes variables par itération

J'ai un service que j'appelle et j'ai besoin d'exécuter plusieurs itérations du même test avec une variable différente passée à la méthode. Je suis capable d'exécuter des itérations contre une seule méthode, mais j'ai besoin de la variable pour chaque test et sans compter l'appel pour obtenir une variable aléatoire comme une itération. Je vais probablement à ce sujet dans le mauvais sens mais j'aimerais toute aide que je peux obtenir.

Voici mon code jusqu'ici:

data = "" 

class MyTestWorkFlow: 
    global data 
    def Data(self): 
     low = 1 
     high = 1000 
     pid = random.randrange(low,high) 
     data = linecache.getline('c:/tmp/testData.csv', pid) 

    def Run(self): 
     client = Client(wsdl) 
     result = client.service.LookupData(data) 
     f = open('/tmp/content','w') 
     f.write (str(result)) 
     f.close() 
     f = open('/tmp/content','r') 
     for i in f: 
      print i 
     f.close() 

test = MyTestWorkFlow() 
for i in range(1,2): 
    test.Run() 
+0

Petite astuce: n'utilisez pas global: vous pouvez simplement affecter 'self.data = quelquechose' et ensuite utiliser dans une autre méthode avec, par exemple,' result = client.service.LookupData (self.data) ' – rubik

+0

Quelle variable Avez-vous besoin de changer? –

+0

les données variables obtiennent une variable aléatoire à partir d'un fichier csv. J'ai besoin que cette méthode soit exécutée chaque fois que je fais une itération de Run et la variable de données dans la méthode Run doit être mise à jour afin que j'obtienne une plus large gamme de résultats. – r3nrut

Répondre

1

Il y a beaucoup nous pourrions parler en ce qui concerne les tests automatisés en Python, mais le problème est que vous ne semblez pas être invoquer votre méthode Data.

Si vous changez votre code comme ceci:

def Run(self) 
    self.Data() 
    client = Client(wsdl) 
    ... 

fait-il ce que vous avez besoin?

+0

Cela a beaucoup de sens, cependant, ça ne change pas ma sortie. On dirait que je reçois mes données de test mais je reçois toujours les mêmes données de test ... comme si elles étaient mises en cache d'une manière ou d'une autre. – r3nrut