mabl小ネタ集 #mabljapan

細かいところでどうするかメモ。ただ、最終的にJSでがりがり書くのはmablのようなサービスのメリットである「簡単にテストできる」に反するので、サービス側で実装されるのを期待(FBもしておこう)。

おまじないを作る

初期処理で共通化できるものをFlowとして「おまじない」にすると便利です。以下のような処理を入れておくと便利です。

  • ログインユーザのIDとパスワード
  • テスト内で一意にしたいID的なランダム文字列
  • テスト実行環境が開発・STG・PROのどこかを判定し変数envにdev、stg、proという文字を設定するJSスニペット

などなど。

さらにAnnotationでわかりやすく書いておけば、なにがどうなっているかよくわかります。

disabled属性が存在する・しないを確認する

https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_disabled で動作確認しました。mablトレーナーを使って要素の存在確認をするにはXpathを使う方法があるのですが、それだと自動修復などが動かないため(Xpathで固定されたものなので他の要素候補が見つかってもmablは提案できない)、上記のような方法で書いて回避できます。

ただ、見ての通り、「Assert “disabled” of the “Last name:” text field does not equal “false”」と、NotなのかFalseなのかDisableなのか、何言ってるのかわかりにくい。

環境ごとに異なるHTML内のリンク先(ドメイン)を確認するスニペット

たとえば開発環境のドメインが「dev.daipresents.com」の場合、まちがって開発やSTGのドメインのまま本番にリリースしちゃうとリンク切れが多発しちゃいます。

ビルドを自動化していればこういったミスも防げますが、人間は間違えるものなので、各テストの準備処理に環境ごとのリンク先確認処理をいれておくと便利です。

mablはJavascriptのSnippetを公開しています。

参考: mabl Javascript Snippets

ユーザからのPRも受け付けているみたいなので、PRを送っていみました。参考までに。

参考: https://github.com/mablhq/mabl-javascript-snippets/pull/41

受信したメール内のURLを抽出する

こちらもJS Snippetにしてみました。

参考: https://github.com/mablhq/mabl-javascript-snippets/pull/40

メールがHTML形式だと要素を特定できるようですが、Plain形式だと文字処理する必要があるようです。

ローディング画像(ぐるぐるのやつ)が消えるまで待つ

mablは「Wait until」メソッドを持っていますが、「要素が現れるまで」しかまてません。その逆で「要素がなくなるまで」待つのがこちらのスニペットです。

参考: https://github.com/mablhq/mabl-javascript-snippets/pull/42

今後もTIPSはできるだけオープンにしていこうと思います。