【问题标题】:How to test OTP verification with appium如何使用 appium 测试 OTP 验证
【发布时间】:2015-11-06 01:27:56
【问题描述】:

如何使用 Appium 测试 OTP 验证。 我想通过appium做OTP验证,谁能帮帮我?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 您好 Raj,您的问题有解决方案吗?如果是,请在此处发布。

标签: android macos appium


【解决方案1】:

使用 Appium,您可以自动化和控制您的应用程序,但存在某些限制您需要了解生成 OTP 的过程。每当您进行某些交易时,OTP 都会生成并发送到您的移动设备。因此,您可以自动化执行此类事务的过程。但之后要输入收件箱中的 OTP,您需要打开收件箱,找到消息,提取 OTP,输入它。这是使用 Appium 自动化的非常复杂的过程。

我认为更好的选择是设置一个固定 OTP 编号用于测试目的,而不是实时请求 OTP。

【讨论】:

  • 我的建议是手动进行 OTP 验证部分。如果您使用假 OTP 对其进行了良好的测试,它必须有效。无需人工干预即可自行处理所有可能情况的自动化测试脚本是很好的。但是这样一来,我们最终会开发出另一个很难设计、开发和维护的软件。
【解决方案2】:

您可以在 Android 中的应用之间切换。在使用您的应用发送 OTP 时,切换到 android 默认消息应用并阅读 OTP,然后切换回您的测试应用。

driver.startActivity(AppPackageName, AppActivityName);

上面的调用可以用来在不同的app之间切换。将 AppPackageName 和 AppActivityName 分别替换为您的测试应用包名称/活动名称和 android 默认消息应用名称。

【讨论】:

    【解决方案3】:

    您可以通过两种方式从 Appium 自动执行 OTP 验证。

    1. 通过在 android 中打开消息应用程序并从那里读取 OTP。
    2. 通过打开通知并阅读 OTP。

    要打开消息应用程序,我们需要使用以下代码打开应用程序:

    driver.startActivity(AppPackageName, AppActivityName);
    

    要从通知窗格中读取 OTP,我们可以使用以下代码打开通知窗格:

    driver.openNotifications()
    

    现在您可以检查 OTP 文本元素并阅读文本。例如,如果您的 OTP 文本是

    您的一次性密码是 3357

    你会得到如下的otp:

    string otp = driver.findElementByXpath("//*[contains(@text,"Your OTP is")]").getText().split(" is")[1]
    

    以上代码会将 OTP 返回到字符串变量中。现在您可以使用以下代码返回应用程序。

    driver.navigate().back();
    

    此解决方案仅适用于 Android。

    【讨论】:

      【解决方案4】:

      是的,我认为你是对的,但是,我需要在使用应用程序之前登录,并且登录页面有 OTP 验证,这就是我需要检查 OTP 的原因。 我可以构建一个没有 OTP 的应用程序进行测试,但不能每次都这样做,因为我必须测试将要发送给远用户的生产版本,并且在此版本中我无法隐藏 OTP 验证。

      【讨论】:

        【解决方案5】:

        对于 OTP 验证,您可以使用 Android Messenger。下载 android messenger apk,创建测试脚本以使用此应用启动和阅读消息。

        我不知道如何为 iOS 做,任何人都可以在这里建议如何为基于 iOS 的应用程序做。

        谢谢, 萨迪克

        【讨论】:

          猜你喜欢
          • 2022-01-25
          • 1970-01-01
          • 2016-05-11
          • 1970-01-01
          • 2012-06-29
          • 1970-01-01
          • 1970-01-01
          • 2018-08-22
          • 1970-01-01
          相关资源
          最近更新 更多