在Calabash中,您可以实现后门,即在测试用例执行期间调用app委托中的方法的方法。这样就可以在模拟器中模拟非UI /外部事件,如蓝牙设备出现/消失等。
(我理解后门概念是可能的,因为Calabash-server链接到可执行文件中.Appium对未经修改的可执行文件执行测试。)
Appium中是否有类似的概念?如果不是那么替代品呢?
(我无法在Appium文档中找到任何内容。)
答案 0 :(得分:1)
为了在Appium设置中获得后门概念,我编写了一个库。它被称为 Insider 。
它包括以下功能:
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/