如何提供login凭据的自动化androidtesting?

我正在寻找一种方法来“提供login”到我的应用程序,以便自动化testing“已login”,并可以testing整个应用程序。 目前它当然被login屏幕封锁了。

因为我使用SmartLock作为密码,所以这可能是提供一些testing凭据的机会 – 但我不知道如何。


在testing过程中是否有一些最佳实践来提供证书/跳过login? 我可以想象一个特殊的buildType / -flavor,它正在模拟login,但是这样它不能用来testing发布版本。

如果能够testing一个最终版本的版本,当testing成功时可以上传到商店,这将是非常棒的。 这样,我可以使用PlayStore中的embedded式预启动报告(这将是非常好的)。

转到Firebase控制台 – >testing实验室 – >select维度,然后点击

显示高级选项

并寻找

testing帐户凭证(可选)

然后填写如下:

Enter username resource :您的用户名(电子邮件)的名称EditText资源,跳过R.id部分,所以为R.id.edit_text_emailinputedit_text_email

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

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

Enter password :您将用于testing的密码,例如testTEST123


看来Robo(testing机器人)一旦find用ID资源指定的EditTexts,就会在证书中键入内容,但是如果你有其他auth选项,例如Sign与谷歌“和”继续与Facebook“。 在其他服务尝试几分钟后,似乎幸运地按下右键继续通过使用您提供的凭据进行身份validation。

在编写本文的时候,没有办法编写login行为的脚本,因此build议使用哪个button来进行身份validation,所以只要使用上面的方法并给Robo足够的testing时间(控制台中的Test timeout )无需点击右键一会儿。

如果您提供Sign in With GooglebuttonSign in With Google Robo以使用自己的Google凭据进行login,请记住,如果您提供Test account credentials ,则此操作将不起作用。 IE浏览器。 要能够使用Sign in with Google确保您没有提供任何其他login凭据,否则将失败。


注意:您可以使Robo使用类似的方法填写其他EditText字段 – 请查看Test Lab文档以获取更多信息。

对于Robotesting(在Play商店开发者控制台中启动发布前报告),绕过login是已知的限制之一,您可以在文档的底部阅读这些限制。 但是,Robo最近有能够自动使用Google帐户login的function。 现在,testing实验室中的所有设备都有与其关联的Google帐户,只要Google帐户需要login,该帐户就会使用。

如果要testing通常需要其他typeslogin的应用程序,则猜测您需要提供configuration为不需要login的替代APK。 这样做不是很方便,特别是对于在alpha / beta版本中testing的应用程序。 您可以尝试一下,以编程方式决定是否需要login,可以查阅将在testing实验室设备上设置的特殊系统属性(“firebase.test.lab”)。 你可以在这里阅读。 这通常在仪器testing中使用,但它也可能用于Robotesting(我还没有尝试过,我将不得不稍后与团队确认)。