日本語テストマクロとの対応
最終更新日: 2020年5月4日
R8 | R9
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()は自動呼び出しで、画面遷移後は常にエラーがないことを確認している。
ログオンならびに各種の画面遷移ボタンの末尾
-