【问题标题】:Test automation of two mobile applications communicating eachother测试两个相互通信的移动应用程序的自动化
【发布时间】:2018-03-27 13:12:20
【问题描述】:

我想知道是否可以自动化两个应用程序相互通信。我将通过两个示例来解释我的要求,以供您理解。

示例 1 - 让我们使用出租车预订应用程序。乘客应用程序将向司机应用程序发送请求。司机应用安装在司机手机中,乘客应用安装在客户手机中, 当乘客应用发送请求时,司机应用会收到警报,然后司机会接受租用请求。 (司机必须在 30 秒内接受请求)

示例 2 - 支付应用程序, 假设有一个商家应用程序和客户应用程序。当我们向商家应用程序输入一些金额时,它会生成一个二维码,然后从客户应用程序中扫描该二维码,客户可以使用已保存的信用卡付款。

当一个应用程序正在运行时,另一个应用程序应该运行,因为如果我们关闭第一个应用程序,应用程序的当前状态就会丢失。由于一个应用程序正在等待另一个应用程序的响应,并且基于响应,第一个应用程序将继续流程。所以一个应用程序正在等待其他应用程序的响应(例如:驱动程序应用程序应在 15 秒内响应)

如何使用 Appium、Java、Selenium 进行模拟,使用模拟器或真机进行自动化测试?

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。避免一次问多个不同的问题。请参阅How to Ask 页面以获得澄清此问题的帮助。

标签: java selenium mobile automated-tests appium


【解决方案1】:

编写测试时,您需要做的就是在适当的时间断言预期的行为。您可以根据测试的设计访问多个应用程序。

功能可能会在测试运行期间发生变化,您正在访问的应用也会相应地发生变化。流程图有点像:-

  1. 为 X 应用设置驱动程序功能。
  2. 启动应用 X 并在其中执行所需的任务。
  3. 断言这些任务已完成。
  4. 关闭驱动,为 Y 应用设置新的驱动能力。
  5. 启动 Y 应用并对该应用的预期行为执行断言。

【讨论】:

  • 您能否详细说明解决方案。我们如何才能并行运行两个应用程序并等待从一个应用程序向另一个应用程序提供输入以继续流程。假设应用 x 向应用 2 发送数据,然后应用 2 再次向应用 1 发送一些数据以继续该过程。谢谢...
  • @SanojIndrasinghe 我提议自己进行顺序运行。我更感兴趣的是,从 UI 的角度来看,您认为什么任务需要这样的并行执行和验证。
  • 例如,当乘客APP向司机APP发送请求时,司机在15秒内接受请求。然后乘客应用程序应该显示司机接受了请求并且他在途中。如果客户在司机途中按取消,则司机应用程序应显示预订已取消。这两个应用程序由两种类型的用户并行运行。
  • 当一个应用程序运行时,另一个应用程序应该运行,因为如果我们关闭第一个应用程序,应用程序的当前状态就会丢失。由于一个应用程序正在等待另一个应用程序响应,并且基于响应,应用程序将继续流程。因此,一个应用程序正在等待其他应用程序响应(例如:驱动程序应用程序应在 15 秒内响应)如果我们关闭第一个应用程序并启动第二个应用程序,我们如何实现这一点?
  • @SanojIndrasinghe 这主要取决于您在 UI 上显示属性的时间。此外,这类验证最好在 n API 级别完成。
【解决方案2】:

启动两个 appium 会话 appium -p 4723appium -p 4727。在应用程序上运行测试以在 appium1 上预订出租车,并在接收端查看您是否收到任何预订。

【讨论】:

  • 其实你不需要两个线程。在两个不同的语句中启动 appium,例如 - self.driver1 = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)self.driver2 = webdriver.Remote('http://127.0.0.1:4727/wd/hub', desired_caps2)
猜你喜欢
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2019-12-07
  • 1970-01-01
相关资源
最近更新 更多