Qt for WebAssemblyアプリケーションの自動GUIテスト
9月 14, 2023 by Qt Group 日本オフィス | Comments
このブログは「Automated GUI Testing for Qt for WebAssembly Applications」」を翻訳したものです。
以下のビデオでは、Qt for WebAssemblyアプリケーションをSquishでテスト可能にする方法、自動化されたGUIテストの例をいくつか作成する方法、そして最終的には作成したテストを異なるプラットフォームで実行することで、Squishが真のクロスプラットフォームツールであることを実証します。
SquishでQt for WebAssemblyアプリケーションをテストする
”Qt for WebAssembly” は、 Qt アプリケーションをウェブ上で実行する方法に革命をもたらしてきました。ウェブブラウザを仮想マシンとして活用することで、バイナリのwasmアプリケーションモジュールをシームレスに実行し、ダイナミックでインタラクティブなjavascriptランタイムアプリケーションを実現します。
1. Squish で Qt for WebAssembly アプリケーションをテスト可能にする
”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の章を参照してください。
2. インスツルメンテーションされた Qt for WebAssembly アプリケーションで Web サーバーを実行します。
これで、ローカルのウェブサーバーを起動することができます。
emrun –no_browser –port 8000 .
3. Squish for Webを使用した自動GUIテストの実装
ここからは標準のSquish for Webパッケージを使用します。Webブラウザにアタッチした後、QtアプリケーションはSquishの専用アプリケーションコンテキストとして表示されます。
”Qt for WebAssembly”アプリケーションのGUIテストの自動化は、他のプラットフォームのQtアプリケーションの自動化と似ています。記録、アプリケーション・スパイ、テスト・デバッグなど、同じ方法を使用できます。
お問い合わせ SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、またツールトライアルのご案内もいたしております。
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.6 Now!
Download the latest release here: www.qt.io/download.
Qt 6.6. is a feature release with focus on improving UX capabilities including responsive UI technology and the Qt Graph module.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.