SystemUtil.Run、SetSecure、Set、Type を理解する: QTP/UFT
⚡ スマートサマリー
SystemUtil.Run は UFT 1 つのコマンドは実行セッションの開始時にファイルまたはアプリケーションを起動し、Set、SetSecure、および Type は開いたウィンドウに値とキーストロークを供給します。

SystemUtil.Run で UFT
すべての記録されたGUIテストには、テスト対象のアプリケーションを画面に表示する最初のステップが必要です。 OpenText 機能テスト(UFT 1つは、以前はマイクロフォーカスでした。 UFT そして元々はHP QTPそのステップは SystemUtil.Run次のコードを理解しましょう
SystemUtil.Run "C:\Program Files\HP\samples\flight\app\flight.exe" Dialog("Login").WinEdit("Agent Name:").Set "Guru" Dialog("Login").WinEdit("Agent Name:").Type micTab Dialog("Login").WinEdit("Password:").SetSecure "4af272a62666d2e" Dialog("Login").WinButton("OK").Click Window("Flight Reservation").Close
- 最初のステップは、 SystemUtil.Run コマンドは、デフォルトで使用されます。 UFT/QTP アプリケーションを開く。 録音中に、 Windows スタートメニュー、「」に移動しましたフライト予約「アプリケーション」。当時、マイクロフォーカスは UFT 実行可能ファイルの場所を特定し、SystemUtil.Run コマンドを挿入してそれを開きます。
- 2行目はエージェント名の設定です Guru アクティブスクリーンに表示されているとおり
- 行 3 は、キーボードの Tab キーを押してフォーカスをエージェント名フィールドからパスワード フィールドに移動することであり、これはまさにこのステップです。 人間ユーザーは、画面上の特定のオブジェクトにフォーカスするために、タブキーまたはクリック操作を使用する必要があります。一方、 クイックテスト オブジェクトのプロパティを使用してオブジェクトを直接識別することができ、これらの「操作」操作を必要としません。このステップは削除できます。 UFT この操作を行わなくても、パスワードフィールドを設定することは可能です。
- 4行目はパスワードを次のように設定しています Mercury. UFT パスワードを自動的に暗号化する 録音中に入力した セキュリティ侵害を回避するために、この値は復号化できません。つまり、この暗号化されたデータを使用して元の値を復元する方法はありません。パスワードエンコーダツールを使用して、パスワードを明示的に暗号化できます。学習目的のため、パスワードは生の形式で使用します。また、操作はSetに変更されます。
- 5行目は「OK」ボタンをクリックしています
- 6行目はウィンドウを閉じています
⚠️ バージョンノート: 上記の記録された経路は古い C:\Program Files\HP\samples\flight HPが使用する場所 QTPサンプルフライト予約アプリケーションには、引き続き以下のものが含まれています。 UFT 1つですが、現在のインストールフォルダの下にあるため、今日記録されたスクリプト内の実際のパスは異なります。
詳しくはこちら こちら ビデオにアクセスできない場合
SystemUtil.Run の構文と引数
上記の記録された行では最初の引数しか使用されていませんが、このメソッドは5つの引数を受け入れます。それらすべてを知ることで、SystemUtil.Runは単なる記録ツールではなく、手動で記述できる意図的な起動手順になります。
SystemUtil.Run file, [params], [dir], [op], [mode]
| 引数 | 必須? | 何それがありません |
| file | 必須 | 実行するファイルまたはアプリケーションの名前。実行可能ファイル以外のファイルは、関連付けられたアプリケーションで開きます。 |
| paramsは | オプション | アプリケーションに渡されるパラメータ file 実行ファイルです。デフォルトは空の文字列です。 |
| DIR | オプション | アプリケーションまたはファイルのデフォルトディレクトリ。デフォルト値は空の文字列です。 |
| op | オプション | 実行するアクション:開く、編集、探索、検索、印刷。空白の場合は開く操作を実行します。 |
| モード | オプション | ウィンドウが開いたときの表示方法を制御する整数値。デフォルト値は1です。 |
その op 引数は、ほとんどのテスターが発見しないものです。それは同じ動詞に対応します Windows エクスプローラーは右クリックで表示されます。
| op値 | 結果 |
| 開いた | 指定されたファイル、フォルダ、または実行可能ファイルを開きます。 file. |
| edit | エディタを起動し、ドキュメントを編集用に開きます。ファイルが編集可能なドキュメントでない場合は失敗します。 |
| 探る | 指定されたフォルダーを探索します file. |
| find | 指定されたフォルダパスから検索を開始します。 |
| 印刷 | 指定されたドキュメントを印刷します fileファイルが印刷可能でない場合は失敗します。 |
『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する モード日常的に重要な値は、0(ウィンドウを非表示にして別のウィンドウをアクティブにする)、1(アクティブにして元のサイズで表示する)、2(最小化してアクティブにする)、3(最大化してアクティブにする)です。より高い値はフォーカスと復元動作を制御しますが、テストではほとんど必要ありません。
SystemUtil.Run の例: アプリケーション、ブラウザー、ファイル
以下の例では、引数を一つずつ追加していくので、各位置で何が追加されるかを確認できます。これらの例を新しいアクションに貼り付けて、一行ずつ実行してみてください。
1) ファイルのみ — 最も短く便利な形式。システムパス上の実行ファイルはフォルダを必要とせず、ドキュメントはどのアプリケーションでも開きます。 Windows 登録済みです。
SystemUtil.Run "notepad.exe" SystemUtil.Run "C:\Data\Orders.txt"
2) ファイルとパラメータ コマンドラインでアプリケーションが受け付ける内容はすべてここに記述します。こうすることで、ブラウザをホームページではなく特定のアドレスで開くことができます。
SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt"
3) ディレクトリを追加する — アプリケーションが自身のフォルダを作業ディレクトリにしないと起動しない場合に役立ちます。
SystemUtil.Run "flight.exe", "", "C:\Program Files\HP\samples\flight\app\"
4) opを追加する 同じファイルなのに、結果は4通り。
SystemUtil.Run "C:\Data\Orders.txt", "", "", "edit" SystemUtil.Run "C:\Data", "", "", "explore" SystemUtil.Run "C:\Data", "", "", "find" SystemUtil.Run "C:\Data\Orders.txt", "", "", "print"
5) モードの追加 — ウィンドウを最大化して開くことで、後続の手順が部分的に隠れたコントロールによって妨げられることがなくなります。
SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt", "", "open", 3
起動されたウィンドウは通常のテストオブジェクトとなるため、次の行でそのウィンドウを操作できます。公式ドキュメントでは、まさにこの方法で「実行」と「タイプ」および「閉じる」を組み合わせています。
SystemUtil.Run "C:\type.txt", "", "", "" Window("Text:=type.txt - Notepad").Type "happy days" Window("Text:=type.txt - Notepad").Close
記述に注目してください テキスト:= そのスニペットの形式:リポジトリエントリは不要です。同じ考え方は、以下で詳しく説明されています。 記述的プログラミング、そして上記のようなハードコードされたパスは通常、 環境変数 つまり、すべてのマシンで同じスクリプトが実行されるということです。
Set、SetSecure、およびType:どのメソッドを使用するか
記録されたスクリプトの2行目から4行目では、同じ種類の編集フィールドに対して3つの異なる方法が使用されています。これらの方法は互換性がなく、間違った方法を選択すると、何も入力されずに処理がスキップされてしまうというよくある原因となります。
| 方法 | 送信するもの | 次のようなときに使用します |
| 作成セッションプロセスで | プレーンテキストの値をフィールドに直接書き込みます。 | 通常のデータ入力(読み取られても構わないパスワードを含む)。 |
| SetSecure | エンコードされた文字列を書き込む UFT 実行時にデコードする。 | パスワードフィールドはすべて、その値がスクリプトや結果に表示されないようにするためのものです。 |
| タイプ | micTabなどのキーを含む、生のキーストロークを送信します。 | キーボードの動作はテストの一部であり、あるいはコントロールは実際のキーにのみ反応する。 |
解説にあるように、3行目のTabキー入力は、録音機が人間の習慣を捉えたためにのみ存在する。 UFT パスワードフィールドはそのプロパティによって識別されるため、その行を削除しても何も変わりません。SetSecureをSetに置き換えると、同じログインが読みやすいパスワードで実行されます。
Dialog("Login").WinEdit("Password:").Set "mercury"
逆方向に、つまり記録セッション外で値をエンコードするには、 パスワードエンコーダーGUIツールには以下のものが付属しています。 UFT 1つ、そして同じエンコーディングはコマンドラインから利用できます。 CryptonCMD.exe -e 製品の bin フォルダー内。どちらも SetSecure 引数または データテーブルパラメータベンダーは、このエンコード方式はセキュリティ標準ではないことを明言しています。これは画面上で値を隠すものであり、実際の顧客データを保護するものではありません。
これら3つの方法が自然に身につくと、残りの言語もすぐに身につく。 VBScriptの基礎 そしてより広い UFT チュートリアルシリーズ1つ ループ、条件、再利用可能な関数をカバーする一方で オブジェクトスパイとGetROProperty どの物件かを表示します UFT 実際にマッチングしているのは1人です。
