2009-09-03 4 views
3

Je suis novice dans le domaine des tests d'intégration, mais j'ai réussi jusqu'à présent à réaliser une série de tests avec Se: IDE. Au cours de mes tests, il m'est apparu que je produisais une quantité importante de données et que je voudrais nettoyer après moi-même.Analyse de l'URL pour les valeurs de la chaîne de requête avec Selenium IDE

La plupart de mes tests impliquent la création d'une nouvelle «page», et l'identifiant est disponible dans la chaîne de requête. Je souhaite que Se: IDE stocke une valeur de chaîne de requête et la transmette à une autre page qui appelle une méthode de suppression pour la ranger après avoir effectué mes vérifications.

Je vois que je peux utiliser la commande storeLocation, mais je ne suis pas sûr de savoir comment procéder pour analyser cette valeur pour l'id dans la chaîne querystring, puis la passer à une autre page en utilisant Open.

Ai-je atteint le point où j'ai besoin de migrer mes tests vers C#, ou est-ce possible en utilisant l'IDE?

Répondre

5

Si vous conservez tous vos cas de test dans la même suite de tests. Ils peuvent partager des variables entre les exécutions sans problèmes. Donc, tout ce que vous devez faire est de stocker la valeur souhaitée:

storeLocation | variable | | 

et dans un futur test, vous devez utiliser la variable comme suit:

open | ${variable} | | 

Note: pour plus d'informations sur les suites de test, jetez un oeil à: http://seleniumhq.org/docs/03_selenium_ide.html#writing-a-test-suite

Mise à jour:

Vous pouvez maintenant utiliser javascript express régulier ions pour obtenir une sous-chaîne d'une variable:

storeEval | reg = /substring pattern/;reg.exec(${variable}) | substring 
open | ${substring} | | 

Exemple:

store | "012la4la" | a 
storeEval | re = /[0-3]*la/;re.exec(${a}) | new 
echo | ${new} | 

sortie:

[info] echo: 012la 
+0

Bien que ce soit très utile de savoir, il me reste la question de l'analyse de l'URL qui est stocké dans $ {variable} pour la valeur querystring. Soit j'ai besoin d'une méthode qui peut retourner la valeur de la chaîne de requête, soit d'une manière quelconque pour analyser $ {variable} avec une expression régulière. –

+1

Mis à jour le poste au cas où vous auriez besoin de l'analyser en utilisant regexp – Santi

+0

La solution d'expression régulière de Santi est un peu plus élégante que la mienne. Salutations Santi. –

2

Un exemple rapide pour extraire un paramètre identifiant à partir d'une chaîne de requête serait:

storeLocation | myLocation 
store | javascript{ storedVars['myLocation'].substring(storedVars['myLocation'].indexOf('id=')+3, storedVars['myLocation'].length); } | idValue 

Cela suppose que le paramètre id est le dernier dans la chaîne de requête. Si ce n'est pas le cas, il vaut mieux scinder l'emplacement sur '&' et faire une boucle sur le tableau résultant pour la valeur du paramètre 'id'.

+0

Dois-je exécuter le javascript à partir de la zone de texte Valeur? –

+0

Ah compris, je dois utiliser storeEval pour exécuter javascript contre la variable stockée. –

3

J'ai eu un problème similaire au travail, et ce Q & Un blog m'a beaucoup aidé. Dans mon cas, j'ai dû supprimer les paramètres de chaîne de requête d'une URL aspx, et vérifier leur existence.

Et j'ai utilisé une approche de filtre en 2 étapes pour la vérification (1) storeLocation, storeEval et verifyExpression. (2) verifyHTMLsource et englobement la chaîne

<tr> 
    <td>verifyLocation</td> 
    <td>http://qa.clockstock.com/confirmation.aspx?exrc=90210&amp;csrc=</td> 
    <td></td> 
</tr> 
<tr> 
    <td>storeLocation</td> 
    <td>urlconf</td> 
    <td></td> 
</tr> 
<tr> 
    <td>echo</td> 
    <td>${urlconf}</td> 
    <td></td> 
</tr> 
<tr> 
    <td>storeEval</td> 
    <td>storedVars['urlconf'].indexOf('exrc=90210');</td> 
    <td>exrcurlconf</td> 
</tr> 
<tr> 
    <td>verifyExpression</td> 
    <td>javascript{(storedVars['CIDurlconf']&gt;0)}</td> 
    <td>true</td> 
</tr> 
<tr> 
    <td>storeEval</td> 
    <td>storedVars['urlconf'].indexOf('csrc=');</td> 
    <td>CSRCurlconf</td> 
</tr> 
<tr> 
    <td>verifyExpression</td> 
    <td>javascript{(storedVars['CSRCurlconf']&gt;0)}</td> 
    <td>true</td> 
</tr> 
<tr> 
    <td>verifyHtmlSource</td> 
    <td>glob:*confirmation.aspx*exrc=90210*csrc=*</td> 
    <td></td> 
</tr> 
Questions connexes