Calabash 使用 Paypal 进行自动化测试

Calabash Automated Testing with Paypal

我正在使用 Calabash 框架进行测试自动化,并且需要自动化 Android/IOS 应用程序的注册场景。

碰巧注册步骤之一是 link 到 Paypal 帐户。

至少 Android,我可以确认 Paypal/Braintree SDK 会打开默认的外部浏览器供用户完成 linking 过程,当发生这种情况时,Calabash 框架无法与浏览器交互,测试挂起。

我可以强制 Paypal SDK 在 linking 过程中使用嵌入式 webview 吗? 如果没有,有没有人想出另一种方法来自动化这个场景?

虽然这是一个常见的场景(即 facebook 登录,Google 登录等)不幸的是,目前 calabash 框架都没有提供与第 3 方应用程序交互的记录方式。限制在于两种操作系统的安全功能,这些功能不允许自动化跳出其进程(移动浏览器是单独的进程)。

然而,正如我提到的,这是一个常见的场景,因此有一个解决方案:我们通常建议人们使用名为 "backdoor methods" 的东西,这些方法位于您的应用程序内部,您可以直接从 calabash 中触发。 Xamarin 的官方文档页面提供了 iOS and Android 的文档。

您的想法是在您的应用程序中创建一个后门方法,模拟用户通过 Paypal/facebook/whatever 成功登录 in/done 的任何内容。当您到达测试中用户通常会转到该第三方应用程序的部分时,您改为调用后门。

也从哲学上考虑:如果 Paypal/facebook/whatever 宕机了会发生什么?如果用户由于应用程序无法控制的因素而无法登录怎么办?在这种情况下,您的应用程序测试失败没有意义,因为失败与您的应用程序无关。换句话说,后门允许您测试您的应用程序,而不是 Paypal。

希望这对您有所帮助,如果您需要更多信息,请告诉我。