このセクションでは、モバイル デバイスで Web ページを表示している最中に、SOAtest を使って Web ページを記録、再生、および検証する方法について説明します。
このセクションの内容:
SOAtest のモバイル インターフェイス テスト
SOAtest を使って、モバイル デバイスで Web ページを表示している最中に、Web ページを記録、再生、および検証することができます。SOAtest のユーザーエージェントを変更して、あたかもモバイル デバイスを使用しているかのように (モバイル用のブラウザー表示レイアウトで) テストできます。たとえば、Android デバイスのように振る舞う場合、SOAtest は以下の図のように旅行サイトの Web ページにアクセスするかもしれません。
適切なユーザー エージェントを入力してブラウザーをエミュレートできます。ただし、再生に使用するブラウザーは、レガシー エンジンを使用する Firefox または Chrome でなければなりません。
ユーザー エージェントの構成
モバイル インターフェイスにアクセスするよう SOAtest を設定するには、次の操作を行います。
- 適切なユーザー エージェントを使用するために、テストするモバイル インターフェイスごとに 1 個の Extension Tool を構成します。それには、システムプロパティの soatest.useragent.override に適切なユーザー エージェントを設定します。詳細については、「Sample Configurations」 を参照してください。
- モバイル デバイスのユーザー エージェント設定を消去する (デフォルト状態に戻す) には、Extension Tool を構成します。それには、システム プロパティの soatest.useragent.override に空文字列を設定します。たとえば、以下はモバイル デバイスのユーザー エージェント設定を消去する Jython スクリプトです。
from java.lang import *
def setToDefault():
System.setProperty("soatest.useragent.override", "");
ユーザー エージェントの設定
Extension Tool の構成が完了したら、以下のように Extension Tool を使用します。
- モバイル インターフェイスに対して記録/再生操作を実行する前に、 Extension Tool を実行し、適切なユーザーエージェントを設定します。
- モバイル インターフェイスの記録/再生を停止する場合、Extension Tool を実行し、モバイル デバイスのユーザー エージェント設定を消去 (デフォルト状態に) します。
Extension Tool を実行してユーザー エージェントを更新する場合、SOAtest が開いている限り、またはユーザー エージェントをデフォルトに戻す Extension Tool を実行するまで、ユーザー エージェントの設定は持続します。SOAtest を終了すると、設定は破棄されます。
ヒント
- ユーザー エージェントを設定する .tst ファイルをモバイル デバイスごとに作成し、複数のシナリオでこの .tst ファイルを参照できます (.tst ファイルの参照の詳細については、「テスト スイートの再利用 / モジュール化」 および 「再利用可能な (モジュラーな) テスト スイートの作成」を参照してください)。 このようにすると、一度作成した Extension Tool を複数のプロジェクトとシナリオで再利用することができます。なお、参照されるテスト スイートは、テストがモバイル インターフェイスを呼び出す前に実行するようにシナリオを構成してください。
- テスト シナリオが、デバイスに依存しないステップとデバイス固有のステップを組み合わせて使用する場合、共通のステップに対して 1 個の .tst ファイルを作成し、デバイス固有のシナリオでその .tst ファイルを参照すると良いでしょう。したがって、テスト スイートは、ユーザー エージェントを設定する .tst ファイルを参照することによって開始し、次にデバイスに依存しない機能を実行し、最後にデバイス固有のナビゲーションあるいは検証を実行するかもしれません (たとえば、「Download our app for Android」とリンクが表示することをチェックします)。
- コマンドライン テストを実行する場合、cli セッションごとに 1 個のユーザー エージェントを使用するのが最も良い方法です。
- デスクトップ ブラウザーに戻すのを含めて、適切なユーザー エージェントを設定する呼び出しが各シナリオにある場合、それぞれ別のユーザー エージェントを使用する一連のシナリオを実行できます。
- ただし、デスクトップ ブラウザーを使用するシナリオがユーザー エージェントを明示的に設定しないと推測する場合、ユーザー エージェントを設定する他のシナリオとともにそれらを cli セッションで実行することはできません。仮にそのようにしてしまった場合、モバイル シナリオの後に実行するデスクトップ シナリオはモバイル ユーザー エージェントを使用してしまいます。
- 通常と同じように負荷テスト用に構成・検証を行えば、作成済みの機能テストを使用して、 Parasoft Load Test で負荷テストを実施できます (「負荷テスト用の機能テストの用意」で説明しています)。
- これらのデバイスで負荷テストを実行する場合、必ず各負荷テストが 1 個のユーザー エージェントを使用するようにしてください。ユーザー エージェントを設定するオプションはグローバルな製品オプションであり、セッション単位やユーザー エージェント単位で設定することはできません。したがって、異なるユーザー エージェントを設定する異なるテスト シナリオが負荷テスト中にある場合、あるシナリオがユーザー エージェントを変更すると、すべての仮想ユーザーについてユーザー エージェントが変更されます。
サンプル構成
以下は、一般的なモバイル デバイス用の Jython スクリプトの例です。単純に適切なユーザーエージェントを設定するだけで、「任意の」モバイル デバイスで表示するインターフェイスにアクセスできます。
IPhone
from java.lang import *
def setToMobile():
System.setProperty("soatest.useragent.override", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/ 528.16");
iPad
from java.lang import *
def setToDefault():
System.setProperty("soatest.useragent.override", "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/ 531.21.10");
Android
from java.lang import *
def setToDefault():
System.setProperty("soatest.useragent.override", "Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
Blackberry
from java.lang import *
def setToDefault():
System.setProperty("soatest.useragent.override", "BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1");
Windows Phone 7
from java.lang import *
def setToDefault():
System.setProperty("soatest.useragent.override", "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; Taylor)");