Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用appium测试OTP验证_Android_Macos_Appium - Fatal编程技术网

Android 如何使用appium测试OTP验证

Android 如何使用appium测试OTP验证,android,macos,appium,Android,Macos,Appium,如何使用Appium测试OTP验证。 我想通过appium进行OTP验证,有人能帮我吗?使用appium,您可以自动化和控制您的应用程序,但您需要了解生成OTP的过程,但存在某些限制。每当你做一些交易,OTP就会生成并发送到你的移动设备。因此,您可以自动化执行此类事务的过程。但在这之后,要输入收件箱中的OTP,您需要打开收件箱,找到邮件,提取OTP,然后输入。使用Appium实现自动化是一个非常复杂的过程 我认为更好的选择是设置一个固定OTP号码用于测试,而不是实时请求OTP。是的,我认为你是对

如何使用Appium测试OTP验证。
我想通过appium进行OTP验证,有人能帮我吗?

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


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

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

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

我不知道如何为iOS做些什么,这里有人能建议如何为基于iOS的应用程序做些什么吗

driver.navigate().back();
谢谢,
Sadik

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

driver.startActivity(AppPackageName, AppActivityName);

上述呼叫可用于在不同应用程序之间切换。将AppPackageName和AppActivityName分别替换为测试应用程序包名称/活动名称和android默认消息应用程序名称。

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

  • 通过在android中打开消息应用程序并从中读取OTP
  • 通过打开通知并阅读OTP
  • 要打开messages应用程序,我们需要使用以下代码打开该应用程序:

    driver.startActivity(AppPackageName, AppActivityName);
    
    driver.openNotifications()
    
    要从通知窗格中读取OTP,我们可以使用以下代码打开通知窗格:

    driver.startActivity(AppPackageName, AppActivityName);
    
    driver.openNotifications()
    
    现在您可以检查OTP文本元素并读取文本。例如,如果您的OTP文本为

    你的OTP是3357

    您将获得以下otp:

    string otp = driver.findElementByXpath("//*[contains(@text,"Your OTP is")]").getText().split(" is")[1]
    
    上面的代码将OTP返回到字符串变量中。现在您可以使用下面的代码返回应用程序

    driver.navigate().back();
    

    此解决方案仅适用于Android。

    到目前为止您尝试了什么?嗨,Raj,您的问题有解决方案吗?如果是这样,请张贴在这里。我的建议是手工制作OTP变体部分。如果你用假OTP测试的很好的话,它一定会起作用。一个自动测试脚本可以在没有人工干预的情况下自行处理所有可能的情况,这是很好的。但通过这样做,我们最终将开发出另一个软件,而这个软件又很难设计、开发和维护