日本語テストマクロとの対応

最終更新日: 2021年3月9日
R8 | R9

マクロとJavaコマンドの対応

Javaを使わず、日本語でテストシナリオを作成することができます。[マニュアルページへのリンク...]

ここで利用できるテストシナリオマクロは、実際には 1:1 の関係で Java コードに展開されています。この対応表を示します。

日本語テストシナリオマクロとJavaコードの対応表
マクロ表記 対応するWTFのコード
ログオン [ユーザ名] [パスワード] ログオン "admin" "wagby" logon("admin", "wagby", "日本語");
ログオン! [ユーザ名] [パスワード] ログオン! "admin" "wagby" logon("admin", "wagby", "日本語", false);
ログオン [ユーザ名] [パスワード] [言語] ログオン "admin" "wagby" "English" logon("admin", "wagby", "English");
ログオフ ログオフ logoff();
ページタイトル? [ページタイトル] ページタイトル? "メニュー" pageTitle().shouldHave(exactText("メニュー"));
ページタイトル?? [ページタイトル] ページタイトル?? "メニュー" pageTitle().shouldHave(texts("メニュー"));
タイトル? [タイトル] タイトル? "Wagby アプリケーション ログオン" assertThat(title(), is("Wagby アプリケーション ログオン"));
メニュー メニュー menu();
メニュー [メニュー] メニュー "サービス > 顧客検索" selectMenu("サービス", "顧客検索");
サブメニュー [メニュー] サブメニュー "サービス > 顧客検索" selectSubMenu("サービス", "顧客検索");
エラーメッセージ?? [文言] [文言] ... エラーメッセージ?? "ユーザ名またはパスワードが間違っています" errors().shouldHave(texts("ユーザ名またはパスワードが間違っています"));
警告メッセージ? [文言] [文言] ... 警告メッセージ? "顧客名称 は必須項目となっています。" warns().shouldHave(exactText("顧客名称 は必須項目となっています。"));
情報メッセージ? [文言] [文言] ... 情報メッセージ? "1件の顧客データを新規登録しました。" infos().shouldHave(exactTexts("1件の顧客データを新規登録しました。"));
エラーメッセージ数 [整数]
警告メッセージ数 [整数]
情報メッセージ数 [整数]
情報メッセージ数 "1" infos().shouldBe(size(1));
画面 登録 [モデル名(省略可)] 画面 登録
画面 登録 "顧客"
clickNewButton();
clickNewButton("customer");
画面 更新 [モデル名(省略可)] 画面 更新
画面 更新 "顧客"
clickEditButton();
clickEditButton("customer");
画面 コピー 画面 コピー clickCopyButton();
画面 親モデル詳細 画面 親モデル詳細 clickDetailButton();
画面 検索 画面 検索 clickSearchPageButton();
画面 一覧 画面 一覧 clickListPageButton();
画面 一覧更新 画面 一覧更新 clickUpdateListPageButton();
ボタン 保存 ボタン 保存 save();
ボタン キャンセル ボタン キャンセル cancel();
ボタン 削除 ボタン 削除 clickDeleteButton();
confirmIfExists();
ボタン ウィザード次 ボタン ウィザード次 clickWizardNextButton();
ボタン ウィザード前 ボタン ウィザード前 clickWizardPrevButton();
ボタン 検索 ボタン 検索 search();
ボタン リセット ボタン リセット resetSearch();
ボタン [オリジナルボタン名] ボタン "オリジナルボタン1" clickButton("オリジナルボタン1");
入力 モデル名.項目名 [値] 入力 顧客.顧客名称 "山田" customer.customername.val("山田");
入力 モデル名.コンテナ名[INDEX].項目名 [値] 入力 顧客.問い合わせ[1].内容 "電話ありました。" customer.cont.get(1).ccontent.val("電話ありました。");
入力 モデル名.郵便番号項目名 [郵便番号] 入力 顧客.郵便番号 "901-2227" customer.postcode.val("901-2227").sync();
選択肢確認? モデル名.項目名 [値] [値]... 選択肢確認? 顧客.業種リストボックス "流通" "製造" "販売" customer.joblistbox.getOptions().shouldHave(exactTexts("流通", "製造", "販売"));
ボタン クリア モデル名.項目名 ボタン クリア 顧客.業種ラジオボタン customer.jobradiobutton.clickClearButton();
?ボタン クリア モデル名.項目名 ?ボタン クリア 顧客.業種ラジオボタン customer.jobradiobutton.getClearButton().shouldBe(exist);
ボタン トグル モデル名.項目名 ボタン トグル 顧客.業種チェックボックス customer.jobcheckbox.clickToggleButton();
?ボタン トグル モデル名.項目名 ?ボタン トグル 顧客.業種チェックボタン customer.jobcheckbox.getToggleButton().shouldBe(exist);
ボタン 開く モデル名.項目名 ボタン 開く 顧客.業種サブウィンドウ customer.jobsubwindow.subWindow().show();
ボタン 閉じる モデル名.項目名 ボタン 閉じる 顧客.業種サブウィンドウ customer.jobsubwindow.subWindow().hide();
ボタン #OK ボタン #OK confirmIfExists();
アップロード モデル名.項目名 [ファイル] アップロード 顧客.写真 "myphoto.png" customer.photo.uploadFile(new File("myphoto.png"));
ダウンロード モデル名.項目名 [ファイル] ダウンロード 顧客.写真 "myphoto.png" assertThat(FileUtils.contentEquals(new File("myphoto.png"), customer.photo.download()), is(true));
入力可 モデル名.項目名 入力可 顧客.顧客名称 customer.customername.shouldHave(enabled);
入力不可 モデル名.項目名 入力不可 顧客.顧客名称 customer.customername.shouldHave(disabled);
入力 モデル名.追記型リストボックス項目名 [値] 入力 顧客.趣味 "読書" customer.hobby.val("読書");
入力 モデル名.追記型リストボックス項目名 [値]
#SELECT
入力 顧客.趣味 "読書" #SELECT customer.hobby.dropdown().select("読書");
入力 モデル名.繰り返し項目名 [値] [値]... 入力 顧客.メールアドレス "yamada" "y@mada" customer.mailaddress.get(1).val("yamada").add().val("y@mada");
入力 モデル名.繰り返し項目名[INDEX] [値] 入力 顧客.メールアドレス[1] "yamada" customer.mailaddress.get(1).val("yamada");
入力 モデル名.繰り返し項目名 #CLEAR 入力 顧客.メールアドレス #CLEAR customer.mailaddress.clear();
ボタン 追加 モデル名.繰り返し項目名 ボタン 追加 顧客.メールアドレス customer.mailaddress.add();
ボタン 挿入|追加|削除 モデル名.コンテナ名 ボタン 挿入 顧客.問い合わせ
ボタン 追加 顧客.問い合わせ
ボタン 削除 顧客.問い合わせ
customer.cont.insert();
customer.cont.add();
customer.cont.remove();
入力非存在 モデル名.項目名 入力非存在 顧客.顧客名称 customer.customername.element().shouldNotBe(exist);
値確認 モデル名.項目名 値確認 顧客.顧客名称 "山田" customer.customername.shouldHave("山田");
値確認 モデル名.繰り返し項目名 値確認 顧客.メールアドレス "yamada" "y@mada" customer.mailaddress.shouldHave("yamada","y@mada");
値確認 モデル名.コンテナ名[INDEX].項目名 値確認 顧客.問い合わせ[1].内容 "電話ありました。" customer.cont.get(1).ccontent.shouldHave("電話ありました。");
サイズ確認 モデル名.繰り返し項目名 [整数]
サイズ確認 モデル名.コンテナ名 [整数]
サイズ確認 顧客.問い合わせ "2" assertEquals(customer.askcon.size(), 2);
値確認RO モデル名.項目名 [値] 値確認RO 顧客.登録ユーザ "admin" customer.insertuser.shouldBeReadOnly().shouldHave("admin");
出力非存在 モデル名.項目名 出力非存在 顧客.顧客名称 customer.customername.contentElement().shouldNotBe(exist);
検索条件 モデル名.項目名 [値] 検索条件 顧客.顧客名称 "山田" condition.customername.val("山田");
検索条件 モデル名.項目名(下限) [値] 検索条件 顧客.ID(下限) "1" condition.ID1jshparam.val("1");
検索条件 モデル名.項目名(上限) [値] 検索条件 顧客.ID(上限) "100" condition.ID2jshparam.val("100");
検索結果 [文言] 検索結果 "1件中、1件目から1件目を表示しています。" $(".display_resultcount").shouldHave(text("1件中、1件目から1件目を表示しています。"));
一覧値確認 モデル名[INDEX].項目名 [値] 一覧値確認 顧客[1].顧客名称 "山田" list.get(1).customername.shouldHave("山田");
ボタン 詳細 モデル名[INDEX] ボタン 詳細 顧客[1] list.get(1).clickDetailButton();
ダウンロード モデル名.項目名 ダウンロード 顧客.写真 customer.photo.download();
フォントサイズ [大|中|小] フォントサイズ "大" changeFontSize("large");
ワークフロー 申請フロー選択 [フロー名] ワークフロー 申請フロー選択 "年休申請フロー" workflow().participants_id.val("年休申請フロー");
ワークフロー コメント [コメント] ワークフロー コメント "年休申請します。" workflow().comment.val("年休申請します。");
ワークフロー 申請 ワークフロー 申請 workflow().application();
ワークフロー 承認 ワークフロー 承認 workflow().admit();
ワークフロー 差し戻し ワークフロー 差し戻し workflow().back();
ワークフロー 却下 ワークフロー 却下 workflow().reject();
ワークフロー 取り消し ワークフロー 取り消し workflow().cancel();
ワークフロー 決裁 ワークフロー 決裁 workflow().admit();
ワークフロー 値確認[INDEX].項目名 [値] ワークフロー 値確認[1].処理者 "山田"
ワークフロー 値確認[1].処理内容 "新規登録"
ワークフロー 値確認[2].コメント "年休申請します。"
workflow().getWorkstate(1).username.shouldHave("山田");
workflow().getWorkstate(1).event.shouldHave("新規登録");
workflow().getWorkstate(2).comment.shouldHave("年休申請します。");
ウィンドウサイズ [幅] [高さ] ウィンドウサイズ "800" "600" changeWindowSize(800, 600);
スクリーンショット [ファイル名] スクリーンショット "capture1.png" fullscreenshot("capture1.png");
エクスポート #ALL エクスポート #ALL ImportExport page = Operations.importExport();
page.selectAllModels();
page.exportData();
エクスポート [モデル] エクスポート "顧客" "お知らせ" ImportExport page = Operations.importExport();
page.targetModels.val("顧客","お知らせ");
page.exportData();
エクスポート #RESET エクスポート #RESET Operations.importExport().deselectAllModels();
エクスポート #DOWNLOAD [ファイル名] エクスポート #DOWNLOAD "data_test01.zip" Operations.importExport().download("data_test01.zip");
エクスポート #DELETE [ファイル名] エクスポート #DELETE "data_test01.zip" Operations.importExport().delete("data_test01.zip");
インポート [ファイル] インポート "data_test01.zip" Operations.importExport().importData("data_test01.zip");

メタ文字

用意しているメタ文字は次の通りです。

メタ文字 説明 付与できる命令 Javaコード
? 完全一致 タイトル、ページタイトル、メッセージの末尾 shouldHave(exactText())
?? 部分一致 shouldHave(texts())
! checkNoErros()呼び出しを行わない。標準ではcheckNoErrors()は自動呼び出しで、画面遷移後は常にエラーがないことを確認している。 ログオンならびに各種の画面遷移ボタンの末尾 -