合理的オブジェクトスクリプトコマンド
2022-01-07 19:29:41
オブジェクトスクリプティングコマンド
ロボットで記録されたスクリプトは、実用的なテスト目的ではあまり役に立ちません。記録されたスクリプトは制御構造を持たないリニアスクリプトなので、大量のデータをテストしたい場合、記録されたスクリプトだけに頼るのは現実的ではありません。また、制御構造を直接付加したチェックポイント付きのリニアスクリプトは、正しく再生されないことがほとんどである。このような場合、ロボットのオブジェクトスクリプトコマンドを利用するのが良い選択となる。使い方は、レコーディング+ハンドコーディングのミックスです。これにより、明快で保守しやすく、強力なスクリプトができあがります。
以下はやはり電卓の例で、SQAGetPropertyを使ってオブジェクトのプロパティを取得し、SQALogMessageを使ってテスト結果をログに書き込んでいます。
Sub Main
Dim Result As Integer
Dim sum As string
'Initially Recorded: 2003-7-21 11:07:34
'Script Name: jsq-object-script
StartApplication "C:\WINNT\system32\calc.exe"
Window SetContext, "Caption=calculator", ""
InputKeys "1{+}1{ENTER}"
Result= SQAGetProperty ("Type=Label;ObjectIndex=1", "Text", sum)
if left(sum,1)="2" then
SQALogMessage sqaPass, "Test passed", ""
else
SQALogMessage sqaFail, "Test failed", ""
end if
Window CloseWin, "", ""
End Sub
実際のテストでは、このスクリプトが非常にうまく機能することがわかります。
ロボットで記録されたスクリプトは、実用的なテスト目的ではあまり役に立ちません。記録されたスクリプトは制御構造を持たないリニアスクリプトなので、大量のデータをテストしたい場合、記録されたスクリプトだけに頼るのは現実的ではありません。また、制御構造を直接付加したチェックポイント付きのリニアスクリプトは、正しく再生されないことがほとんどである。このような場合、ロボットのオブジェクトスクリプトコマンドを利用するのが良い選択となる。使い方は、レコーディング+ハンドコーディングのミックスです。これにより、明快で保守しやすく、強力なスクリプトができあがります。
以下はやはり電卓の例で、SQAGetPropertyを使ってオブジェクトのプロパティを取得し、SQALogMessageを使ってテスト結果をログに書き込んでいます。
コピーコード
コードは以下の通りです。
Sub Main
Dim Result As Integer
Dim sum As string
'Initially Recorded: 2003-7-21 11:07:34
'Script Name: jsq-object-script
StartApplication "C:\WINNT\system32\calc.exe"
Window SetContext, "Caption=calculator", ""
InputKeys "1{+}1{ENTER}"
Result= SQAGetProperty ("Type=Label;ObjectIndex=1", "Text", sum)
if left(sum,1)="2" then
SQALogMessage sqaPass, "Test passed", ""
else
SQALogMessage sqaFail, "Test failed", ""
end if
Window CloseWin, "", ""
End Sub
実際のテストでは、このスクリプトが非常にうまく機能することがわかります。
関連
-
[解決済み】ValueError: shape mismatch: オブジェクトを1つの形状にブロードキャストできない
-
[解決済み】git pullの取り消し、レポを古い状態に戻す方法
-
[解決済み】必要な形式パラメータに対応する引数が与えられない - .NETエラー
-
[解決済み】TypeError:/のオペランド型が未サポートです。'str'と'str'
-
[解決済み】エラー:Rの無効な添え字型'list'
-
[解決済み] gcloudコマンドが見つからない - Google Cloud SDKのインストール時
-
[解決済み】onActivityResult()が呼ばれない
-
[解決済み] Layout の割り当て時にエラーが発生しました。BoxLayout は共有できない
-
[解決済み】この宣言は、C++でストレージクラスまたは型指定子を持っていない
-
[解決済み] [Solved] Inconsistent Accessibility: パラメータ型はメソッドよりアクセスしにくい
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
期限切れのアカウントを自動的に禁止するRouterOSスクリプト
-
LinuxでRの新バージョンを直接コピーする方法
-
[解決済み】gitが「変更をコミットするか、マージする前に隠してください」と言うのを解決するにはどうしたらいいですか?
-
[解決済み】このリポジトリで別のgitプロセスが動作しているようです。
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】C++ Cout & Cin & System "Ambiguous" 【クローズド
-
[解決済み] クラス内のメソッドを指定された型に適用できない
-
[解決済み】なぜクラスの再定義エラーが発生するのでしょうか?
-
[解決済み】Webpack - クリティカルな依存関係:依存関係の要求は、式です。
-
[解決済み] Maven エラー : Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher [duplicate] メインクラスが見つからない、またはロードできない。