2017-10-16 109 views
0

我想知道是否可以自动化两个应用程序彼此通信。我会用两个例子来解释我的要求,只是为了让你明白。两个移动应用程序的通信测试自动化

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

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

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

如何使用Appium,Java,Selenium使用仿真器或实际设备来执行自动化测试?

+0

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

回答

0

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

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

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

请您详细说明解决方案。我们如何平行运行两个应用程序,并等待输入从一个应用程序提供给另一个应用程序以继续流程。让我们说应用程序x发送数据到应用程序2,然后应用程序2再次发送一些数据到应用程序1继续该过程。谢谢... –

+0

@SanojIndrasinghe我建议顺序运行本身。相反,我会感兴趣的是,您认为从UI角度来看,需要这样的并行执行和验证。 – nullpointer

+0

例如,当乘客应用程序向驱动程序应用程序发送请求时,一旦驾驶员在15秒内接受请求。然后乘客应用程序应该显示司机接受了请求,并且他正在路上。如果客户在途中按驱动程序取消,则驱动程序应显示预订已取消。两种应用程序都由两种类型的用户并行运行。 –

0

开始两个appium会话appium -p 4723appium -p 4727。在应用程序上运行测试,在appium1上预订出租车,然后在接收端查看是否有任何预订。

+0

你的意思是使用两个线程来运行两个会话..? –

+0

其实你不需要两个线程。以'''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)''' –