自動テストが「ログイン」してアプリ全体をテストできるように、アプリに「ログインを提供する」方法を探しています。現在は、もちろんログイン画面によってブロックされています。
私はパスワードに SmartLock を使用しているため、テスト用の資格情報を提供するチャンスになるかもしれませんが、方法がわかりません。
テスト中に認証情報を提供したり、ログインをスキップしたりするためのベストプラクティスはありますか? ログインをモックする特別な buildType / -flavor を考えることもできますが、この方法ではリリースビルドのテストには使用できません。
テストが成功したらストアにアップロードできる最終リリース ビルドをテストできたら素晴らしいと思います。こうすれば、PlayStore に埋め込まれたリリース前レポートも使用できます (これは本当に便利です)。
ベストアンサー1
Firebaseコンソール->Test Lab->ディメンションを選択してクリックします
高度なオプションを表示
そして探す
テストアカウントの資格情報(オプション)
次に、次のように入力します。
Enter username resource
: ユーザー名(メールアドレス)EditTextリソース、R.id
部分をスキップしてR.id.edit_text_email
入力するedit_text_email
Enter password resource
: 上記と同じですが、パスワード用です。ここでも、 をスキップしますR.id
。例:edit_text_password
Enter username
: テストに使用するユーザー名またはメールアドレス、例:[email protected]
Enter password
: テストに使用するパスワード、例:testTEST123
Robo (テスト ボット) は、ID リソースで指定された EditText を見つけるとすぐに資格情報を入力するようですが、「Google でサインイン」や「Facebook で続行」などの他の認証オプションがある場合は、ログインするためにどのボタンをクリックすればよいかを判断するのに少し時間がかかることがあります。他のサービスで数分間試行した後、幸運にも正しいボタンを押して、提供された資格情報を使用して認証を続行するようです。
これを書いている時点では、ログイン動作をスクリプト化して認証に使用するボタンを提案する方法はありません。そのため、上記の方法を使用し、しばらくTest timeout
正しいボタンがクリックされないままになっている場合に備えて、Robo に十分なテスト時間 (コンソール内) を与えてください。
Sign in With Google
Robo が独自の Google 認証情報を使用してサインインするためのボタンを提供する場合、 を提供するとこれが機能しないことに注意してくださいTest account credentials
。つまり、 を使用できるようにするにはSign in with Google
、他のログイン認証情報を提供していないことを確認してください。そうしないと、失敗します。
注: 同様の方法で、他のEditTextフィールドもRoboに入力させることができます。テストラボのドキュメント詳細については。