はじめに
テストオートメーションツール「Autify」は、非技術者でも簡単にWebアプリケーションのE2Eテストを構築・実行することができるツールです。しかしながら、特定の操作が完了するまで待機するといったシチュエーションでは、JavaScriptステップを利用することでより高度な制御が可能になります。
今回は、あるボタンが非活性(disabled)から活性になるのを待つシチュエーションを例に、Autify内でのJavaScriptステップの作成方法を解説します。
シチュエーション
テストシナリオ内で、あるアクションの後、ボタンが活性化されるのを30秒間待ち、活性になったらその後のステップへ進むというシチュエーションを想定します。
解決方法
Autify内でJavaScriptステップを作成し、以下のスクリプトを利用します。
var xpath = "/html/body/div[1]/div/div/div/div[1]/div/div[3]/div[2]/button";
var element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
if (!element) {
throw new Error("Error: cannot find the element with xpath(" + xpath + ").");
}
var endTime = Date.now() + 30000;
(function checkIfEnabled() {
if (Date.now() > endTime) {
throw new Error("Timeout: Button was not enabled within 30 seconds.");
}
if (!element.disabled) {
return;
} else {
setTimeout(checkIfEnabled, 500);
}
})();
まとめ
Autifyは直感的なインターフェースでテストシナリオを組むことができますが、JavaScriptステップをうまく活用することで、さらに柔軟なテストの実現が可能となります。このようなテクニックを駆使して、品質の高いテストオートメーションを構築しましょう。