このブログは「Automated GUI Testing for Qt for WebAssembly Applications」」を翻訳したものです。
以下のビデオでは、Qt for WebAssemblyアプリケーションをSquishでテスト可能にする方法、自動化されたGUIテストの例をいくつか作成する方法、そして最終的には作成したテストを異なるプラットフォームで実行することで、Squishが真のクロスプラットフォームツールであることを実証します。
”Qt for WebAssembly” は、 Qt アプリケーションをウェブ上で実行する方法に革命をもたらしてきました。ウェブブラウザを仮想マシンとして活用することで、バイナリのwasmアプリケーションモジュールをシームレスに実行し、ダイナミックでインタラクティブなjavascriptランタイムアプリケーションを実現します。
”Qt for WebAssembly” アプリケーションをSquishでテストするには、適切にインスツルメンテーションする必要があります。当社の特別パッケージである ”Squish for Qt for WebAssembly” は、この目的のために特別に設計されています。このパッケージは、Qtバージョン6.4および6.5のブラウザで実行されるQtベースのアプリケーションをサポートします。
最初のステップは、プロジェクト・ファイルを変更してSquish Qt組み込みフックを追加することです。
!isEmpty(SQUISH_PREFIX) {
wasm {
SQUISH_BUILTINHOOK = 1
} else {
SQUISH_ATTACH_PORT = 4711
}
static: SQUISH_WRAPPER_EXTENSIONS += squishqtquick squishqtquicktypes
include($$SQUISH_PREFIX/qtbuiltinhook.pri)
}
次に、インスツルメンテッド・アプリケーションを構築します。
qmake C:\Qt\Examples\Qt-6.5.1\demos\coffee\coffee.pro
SQUISH_PREFIX=C:\Squish\Qt\squish-7.2.0alpha-20230725-0545-qt65x-wasm-singlethread
mingw32-make
qmakeの代わりにcmakeを使用しても同じ結果が得られることに注意してください。このトピックの詳細については、”Squish for Qt for WebAssembly” のインストール手順、および、Squish Qt Built-in Hook instrumentationの章を参照してください。
これで、ローカルのウェブサーバーを起動することができます。
emrun –no_browser –port 8000 .
ここからは標準のSquish for Webパッケージを使用します。Webブラウザにアタッチした後、QtアプリケーションはSquishの専用アプリケーションコンテキストとして表示されます。
”Qt for WebAssembly”アプリケーションのGUIテストの自動化は、他のプラットフォームのQtアプリケーションの自動化と似ています。記録、アプリケーション・スパイ、テスト・デバッグなど、同じ方法を使用できます。
お問い合わせ SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、またツールトライアルのご案内もいたしております。