Outline
ローコードのtest automation toolとしてT-Dashがある。
”誰でもかんたん”が売りのようなので、どこまで複雑な処理がテスト自動化できるか試してみた
T-DashはMablやAutifyと違いlocalで動かすことが前提である。
Cloud環境で利用するか、local(オンプレ)で動かしたいかでまず大きく使用判断が異なるようだ。
target scenario
先日、Mablで試したシナリオをT-DashでもTRYしてみる。
- loginする
- 投票ページに遷移する
- 指定した競馬場・レース番号を選ぶ
- 単勝の馬番 x を購入する <- データ駆動で任意の馬番を複数選ぶ
- 投票を完了する




実際のスクリプト
各テストケースの処理詳細
- Login : Login
- goto-bet-page : 投票ページに遷移して、 指定した競馬場・レース番号を選ぶ
- choose-Tansho-x Uma : 単勝の馬番 x を購入する
- complete-bet : 投票を完了する
1. Login
Login test caseは特にはまるところはなかった。
ボタンクリックと入力フォームへテキスト入力する
尚、このLoginのstepは使いまわしのできる動作セット(共通モジュール)にできるのではないか?と思う人がいるでしょう。今回動作セットにしませんでした。
動作セットにすると、以下のようになります。
この動作セットを使ったテストケースで、データ駆動を設定しようとすると、データ駆動の変数として選ぶことができない!!!
ここは、改善してほしいところだなと思う。
2. goto-bet-page
STEPはそこまで難しくはなかった。
ただ、画面定義をするところに工夫が必要だった。
指定した競馬場・レース番号を特定するには工夫がいる。
developer toolで園田11Rの要素のxpathを取得してみると、以下の値になった。
//*[@id="voteContents"]/div/ul[2]/li[1]/table/tbody/tr[3]/td[14]/a/span
これは競馬場の表で3行目、14列目(ダート・芝・天気・1~12R )を指す。
これは一見合っているようだが、失敗する。なぜなら、競馬のサービスの特徴として日々開催競馬場が異なるからである。今回、園田が3行目であったが、翌日は4行目になる可能性がある。
そのため、xpathの指定方法を以下のようにする
//*[@id="voteContents"]/div/ul[2]/li[1]/table/tbody/tr/th[text()='園田']/../td[14]/a/span[text()='投票']
これは、まず園田のセルを特定する。その後、相対パスを用いて園田の行を特定し、その行の14列目を指定する。
3. choose-Tansho-x
ここが一番データ駆動化したかったところだ。結論から言うと、できなかった(購入する馬番号を外だしできなかった)
まず、変数を含めたxpathを画面定義では使えなかったので、カスタム動作を利用した。
robotframeworkを用いて、xpathに変数を含めて、任意の馬番号を選べるようにする
//tbody[@class='paddockList']/tr/td[5]/a[text()='${value1}']
${value1} : 馬番号
このカスタム動作を呼び出すときに、任意の馬番号を指定することができる。
このように、カスタム動作 投票_単勝 を使い、引数に1,2,4,8,16 と任意の馬番を指定するとことでテストケースを構成することができる。
って、ちょっとまってよ。これだと、テストケースの中にデータを埋め込んでいて、データ駆動になってないじゃん。
はい、このカスタム関数を1行記載して、データ駆動設定しようとしたのですが、先述の動作セットと同様にデータ駆動として設定できなかった。
ここもデータ駆動として設定できるようになると、非常にエレガントだと思った。
4. complete-bet
完了ステップはそこまで難しくはない。
最後の確認ページで、購入合計金額を入力させるSTEPがある。そこは、合計金額の値を取得して変数にいれる。
その変数を入力フォームで入力するだけでよい。
実行
実行結果が以下の通り