29

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

因为我将 SmartLock 用于密码,所以这可能是为测试提供一些凭据的机会 - 但我不知道如何。


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

当我可以测试最终版本构建时,它会很棒,当测试成功时可以上传到商店。这样,我也可以在 PlayStore 中使用嵌入的发布前报告(这将非常好)。

4

2 回答 2

35

转到 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


似乎 Robo(测试机器人)在找到使用 ID 资源指定的 EditTexts 后会立即输入凭据,但如果您有其他身份验证选项(例如“Sign与 Google 合作”和“继续使用 Facebook”。在其他服务中尝试了几分钟后,似乎幸运地按下了正确的按钮以使用您提供的凭据继续进行身份验证。

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

如果您提供Sign in With Google按钮让 Robo 使用自己的 Google 凭据登录,请记住,如果您提供Test account credentials. IE。为了能够使用Sign in with Google,请确保您没有提供任何其他登录凭据,否则它将失败。


注意:您可以使用类似的方法让 Robo 填写其他 EditText 字段 - 查看测试实验室文档以获取更多信息。

于 2017-02-26T13:00:02.443 回答
10

对于 Robo 测试(它确实为 Play 商店开发者控制台上的发布前报告提供支持),绕过登录是已知限制之一,您可以在文档底部阅读。但是,Robo 最近有一项功能,可以自动使用 Google 帐户登录。测试实验室中的所有设备现在都有一个与之关联的 Google 帐户,当需要 Google 帐户登录时将使用该帐户。

如果您想测试通常需要某种其他登录方式的应用程序,那么您猜测您需要提供一个配置为不需要登录的替代 APK 是正确的。这样做不是很方便,特别是对于在 alpha/beta 中测试的应用程序。为了以编程方式决定是否需要登录,您可以尝试的一件事是查阅将在测试实验室设备上设置的特殊系统属性(“firebase.test.lab”)。你可以在这里阅读。这通常用于仪器测试,但它也可能适用于 Robo 测试(我没有尝试过,稍后我必须与团队确认)。

于 2016-07-09T16:45:25.083 回答