用于UI测试的Appium中的后门概念(如在Calabash中)

时间:2015-06-08 09:29:50

标签: appium ios-ui-automation calabash

在Calabash中,您可以实现后门,即在测试用例执行期间调用app委托中的方法的方法。这样就可以在模拟器中模拟非UI /外部事件,如蓝牙设备出现/消失等。

(我理解后门概念是可能的,因为Calabash-server链接到可执行文件中.Appium对未经修改的可执行文件执行测试。)

Appium中是否有类似的概念?如果不是那么替代品呢?

(我无法在Appium文档中找到任何内容。)

4 个答案:

答案 0 :(得分:1)

为了在Appium设置中获得后门概念,我编写了一个库。它被称为 Insider

它包括以下功能:

  • 从远程脚本向应用发送消息;
  • 从远程脚本向应用发送消息并等待响应;
  • 使用来自远程脚本的给定参数通过 NSNotificationCenter 发送本地通知;
  • 在运行测试时获取设备系统状态信息( CPU,内存,IP地址等);
  • 在运行测试时管理应用程序沙箱中的文件/目录( Documents,Library,tmp );

GitHub https://github.com/alexmx/Insider
API参考http://alexmx.github.io/Insider/

答案 1 :(得分:0)

我们在名为Illuminator的框架中(完全披露,我是作者)支持这一点,并使用名为automation bridge的RPC通道。

当乐器运行时,我们使用performTaskWithPathArgumentsTimeout函数来调用我们的脚本,该脚本将我们提供的参数传递给正在运行的应用程序(在模拟器或硬件上)。从应用程序返回的任何数据都会转发回UIAutomation。

答案 2 :(得分:0)

我刚刚完成一个项目来完成此任务。就我而言,我需要模拟一些蓝牙事件。我的应用程序适用于Android和iOS,它们使用Xamarin框架以C#编写。可使用Python或Robot Framework访问后门。但是最后它只是一个MQTT服务器,因此可以用其他语言实现。我在这里分享它是因为其他人可能会发现它有用: https://github.com/sebnil/appium-mqtt-backdoor

这并不是真正的纯Appium解决方案,更像是一种解决方法。我没有找到在Appium中实现后门并使它在Android和iOS上均可使用的可靠方法。但是原则上,在python或Robot Framework中编写测试用例时,其工作原理是相同的。

答案 3 :(得分:0)

在Xamarin中开发iOS和Android应用程序并在Appium中对其进行测试时,我遇到了非常相似的问题。基本上,我发现没有可靠的方法来实现可在Android和iOS上运行相同功能的后门。

如果使用Espresso驱动程序,则可以对Android应用程序进行后门操作: https://appiumpro.com/editions/51

我采用了将后门添加到测试框架本身的解决方案。因此,我没有在Appium中实现后门,而是在Python和Robot Framework中实现了这两者(两者均可用于控制Appium)。基本上,后门是通过MQTT代理实现的。此处的更多信息: https://sebastiannilsson.com/blog/appium-mqtt-backdoor/