Qt for WebAssemblyアプリケーションの自動GUIテスト

このブログは「Automated GUI Testing for Qt for WebAssembly Applications」」を翻訳したものです。

Squish GUI Testerは長年にわたり、Windows、Linux、macOSなどのデスクトップや組み込みシステム上のQtアプリケーションのテストに最適なツールでした。しかし、最新バージョンであるSquish 7.2では、革新的なQt for WebAssemblyプラットフォーム上のQtアプリケーションにもテスト機能を拡張できるようになりました。
 

以下のビデオでは、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