TestCafeでSSOなシステムにログインする
前書き
面倒な社内システムの作業の自動化に
を使っているのですが、SSOな環境でログイン後にうまく動かなかったのでメモ。
解決法
の公式ドキュメントをよくよく読んで見ると、
Troubleshooting
の Test Actions Fail After Authentication
にそのものズバリな項目が。
preserveUrl
というオプションを指定すればいけるようです。
ポイント
- ログインする動作はRoleで指定する(これは 公式ドキュメント にも書いてある正攻法)
- roleに
preserveUrl
オプションを指定する fixture
でpage
を指定する代わりに- testケース内で
navigateTo
を指定する
import { Role } from 'testcafe'; const role = Role('http://example.com/login', async t => { // 1 await t .typeText('#login', 'username') .typeText('#password', 'password') .click('#sign-in'); }, { preserveUrl: true }); // 2 fixture `My Fixture`; // 3 test('My test', async t => { await t .navigateTo('http://example.com/') // 4 .useRole(role); });
まとめ
雑ですがどなたかの参考になれば。