如何为自动Android测试提供登录凭据?

时间:2016-07-08 07:12:19

标签: android login automated-tests google-smartlockpasswords firebase-test-lab

我正在寻找一种方法来“提供登录”到我的应用程序,以便自动测试“登录”并可以测试整个应用程序。目前它当然被登录屏幕阻止。

因为我正在使用SmartLock作为密码,这可能是为测试提供一些凭据的机会 - 但我不知道如何。

在测试期间是否有一些最佳做法可以提供/跳过登录?我可以想到一个特殊的buildType / -flavor,它正在模拟登录,但这样它就不能用来测试发布版本。

当我测试最终版本构建时,这将是很好的,可以在测试成功时上传到商店。这样,我也可以在PlayStore中使用嵌入式预启动报告(这将非常好)。

2 个答案:

答案 0 :(得分:18)

转到Firebase控制台 - >测试实验室 - >选择尺寸,然后单击

显示高级选项

并寻找

测试帐户凭据(可选)

然后填写如下:

Enter username resource : 您的用户名(电子邮件)EditText资源的名称,跳过R.id部分,因此R.id.edit_text_email输入edit_text_email

Enter password resource :与上述相同,但是对于密码。再次,跳过R.id,例如。 edit_text_password

Enter username :您用于测试的用户名或电子邮件,例如。 test@mywebsite.com

Enter password :您用于测试的密码,例如testTEST123

一旦发现使用ID资源指定的EditTexts,Robo(测试机器人)似乎会在凭据中键入内容,但如果您有其他身份验证选项,可能需要花一点时间确定要单击哪个按钮进行登录as'使用Google登录'和'继续Facebook'。在其他服务尝试几分钟后,幸运的是按下右键继续使用您提供的凭据进行身份验证。

在撰写本文时,无法编写登录行为的脚本,因此建议使用哪些按钮进行身份验证,因此只需使用上述方法并为Robo提供足够的测试时间(Test timeout控制台)以防它在没有点击右键的情况下粘在一起。

如果您为Robo提供Sign in With Google按钮以使用自己的Google凭据登录,请记住,如果您提供Test account credentials,这将无效。 IE浏览器。能够使用Sign in with Google确保您的避风港未提供任何其他登录凭据,否则将失败。

注意:您可以使用类似的方法在其他EditText字段中填充Robo - 请查看Test Lab documentation以获取更多信息。

答案 1 :(得分:7)

对于Robo测试(在Play商店开发者控制台上为启动前报告提供支持),绕过登录是已知的限制之一,您可以在bottom of the documentation上阅读。但是,Robo最近有能力自动使用Google帐户登录。测试实验室中的所有设备现在都有一个与之关联的Google帐户,无论何时需要Google帐户登录,都会使用该帐户。

如果您想测试通常需要其他类型登录的应用,那么您猜测您需要提供配置为不需要登录的替代APK是正确的。这样做并不是很方便,特别是对于在alpha / beta中测试的应用程序。您可以尝试的一件事是,以编程方式决定是否要求登录,可以参考将在Test Lab设备上设置的特殊系统属性(“firebase.test.lab”)。你可以阅读here。这通常用于仪器测试,但它也适用于Robo测试(我没有尝试过,我将不得不与团队确认这一点)。