クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
Qtプロジェクト向け
モバイルアプリのデジタル広告
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
3月 10, 2023 by Qt Group 日本オフィス | Comments
こちらの記事はRecording GUI Test Scripts without Mouse Coordinatesの抄訳です。記録したGUIテストを実行する場合、一般的にはマウスの正確な座標位置は重要ではなく、むしろマウスが目的のUIアイテムの内部でクリックされるかどうかが重要です。しかし、実際にはマウスの座標が必要なケースが発生します(例えば、テキストエディタのテストでは、正確な文字にカーソルを置く必要があります)。ほとんど場合、Squishはデフォルトでマウスクリックを(x,y)座標で記録し、これをスクリプトに書き込みます。本稿では、特定のQMLタイプについて、座標なしで記録するようにSquishを設定する方法を説明します。スクリプトから座標情報を削除することで、テスト スクリプトが簡素化され、テスト スクリプトの読みやすさが向上し、そのメンテナンスも容易になります。
ここでは、カスタム(BasicButtonから派生したものではない)Button QML Typeを操作するスクリプトの例を見てみましょう。デフォルトでは、マウスのクリック操作は以下のように(x,y)座標で記録されます。mouseClick関数に関してはこちらを参照ください。
mouseClick(waitForObject(names.o9_Button), 4, 34, Qt.LeftButton)
mouseClick(waitForObject(names.o8_Button), 27, 31, Qt.LeftButton)
mouseClick(waitForObject(names.o_Button_2), 13, 37, Qt.LeftButton)
mouseClick(waitForObject(names.c_Button), 13, 28, Qt.LeftButton)
この座標値(mouseClick関数の第2、第3引数)は、スクリーン座標ではなく、アイテム(ここではButton)の境界の左上隅を基点としています。デフォルトでは、このように座標値が記録されます。これは、テストエンジニアが後で手動で追加するよりも、削除する方が簡単だからです。
しかし、各ボタンの真ん中でクリックされていれば、座標値を指定しなくてもテストスクリプトとしては全く問題はありません。むしろ、座標値はテストのポータビリティを落としてしまうこともあります(異なるディスプレイサイズのデバイスでテストする場合など)。
では、座標を使わずにボタンのクリックを記録する方法を見てみましょう。
Qtで実装されたアプリケーションのテストをSquishで記録する方法をカスタマイズするための設定は、SQUISHDIR/etc/にあるqtwrapper.iniファイル内にあります。(ここで、SQUISHDIRはSquishのインストールフォルダ)
RecordWithoutCoordinatesは、qtwrapper.iniの1つのオプションで、設定可能な値はタイプのリストです。これらのタイプとして、C++やQMLのタイプを使用することができます。BasicButtonとQuickTextは、すでに存在していますが、上記のサンプル・スクリプトからユーザー定義されたButtonは含まれていません。このリストにタイプ名を追加するだけで、今後のすべてのテストスクリプトの記録に反映されます。
RecordWithoutCoordinates = "BasicButton", "QQuickText", "Button"
先ほどの例に戻り、Buttonタイプのカスタマイズを追加すると、生成されるスクリプトは次のようになります。
mouseClick(waitForObject(names.o9_Button))
mouseClick(waitForObject(names.o8_Button))
mouseClick(waitForObject(names.o_Button_2))
mouseClick(waitForObject(names.c_Button))
Buttonのように、常にアイテムの中央をクリックしたいタイプの場合、これらのタイプをRecordWithoutCoordinatesリストに追加することで、テストスクリプトがより単純、堅牢かつ可読性が高い状態で生成されることになり、潜在的にデバッグの容易化にもつながります。
以上が、記事の内容となります。
SquishをはじめとするQtのQA(品質保証)ツールにご興味のおありの方は、Qt JapanのEメールアドレスjapan@qt.ioまでお気軽にご連絡ください。
概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
11 6, 2024
このブログは「Migrating Squish Extension for Google Chrome」を翻訳・一部加筆したものです。 Google..
7 30, 2024
このブログは「Cloud-Native Software-in-the-Loop Testing with Qt and..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.