2009-09-03 31 views
3

私は統合テストの初心者ですが、これまでSe:IDEを使用した一連のテストを構築してきました。私がテストを行っていたとき、私は相当量のデータを生成していて、私は自分自身で後から取り除きたいと思っていました。Selenium IDEでクエリーストリング値のURLを解析する

私のテストのほとんどは、新しい 'ページ'を作成することを伴います。このIDはクエリ文字列で利用できます。 Se:IDEにクエリーストリングの値を格納して、それを別のページに渡して、私の検証を実行した後で削除メソッドを呼び出すようにしたいと思います。

私はstoreLocationコマンドを使うことができますが、querystringのidの値を解析してOpenを使って別のページに渡す方法がわかりません。

テストをC#に移行する必要があるか、IDEを使用してこれを実行する必要がありますか?

答えて

5

すべてのテストケースを同じテストスイートに入れておく場合は、実行間の変数を問題なく共有することができます。 だから、あなたがしなければならないすべてが所望の値格納することです:

storeLocation | variable | | 

と将来のテストでは、次のように変数を使用する必要があります。

open | ${variable} | | 

注:詳細はあなたは今、JavaScriptの正規Expressを使用することができます

http://seleniumhq.org/docs/03_selenium_ide.html#writing-a-test-suite

更新:テストスイートで、見てみましょう変数からストリングを取得するためのイオン:

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

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

出力

[info] echo: 012la 
+0

をグロブ、私はまだクエリ文字列値を$ {変数}の中に保存されているURLを解析する問題があります。どちらか私はquerystringの値を返すことができるメソッド、または$ {variable}を正規表現で解析する何らかの方法が必要です。 –

+1

regexp – Santi

+0

を使用して解析する必要がある場合のために投稿を更新しました。Santiの正規表現ソリューションは、私のものよりやや優雅です。乾杯サンティ。 –

2

クエリ文字列からIDパラメータを抽出するための簡単な例

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

これは、idパラメータがクエリ文字列の最後であることを前提としています。そうでない場合は、位置を '&'に分割し、結果の配列を 'id'パラメータ値としてループするのが最もよいかもしれません。

+0

値のテキストボックスからjavascriptを実行しますか? –

+0

ああ、私はstoreEvalを使用して、格納された変数に対してjavascriptを実行する必要があります。 –

3

私は仕事で同様の問題を抱えていましたが、このQ &ブログが私を助けました。私の場合は、aspx URLからクエリ文字列パラメータを取り除き、その存在を確認しなければなりませんでした。

私は確認のために2段階のフィルタ手法を使用しました。 (1)storeLocation、storeEval、およびverifyExpression。 (2)verifyHTMLsource、それは知ることは非常に便利ですが、文字列

<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>