【问题标题】:Backdoor concept in Appium (like in Calabash) for UI testing用于 UI 测试的 Appium 中的后门概念(如 Calabash 中)
【发布时间】:2020-04-08 15:38:10
【问题描述】:

在 Calabash 中,您可以实现后门,即在测试用例执行期间调用应用程序委托中的方法的一种方式。这使得在模拟器中模拟蓝牙设备出现/消失等非 UI/外部事件成为可能。

(我理解后门概念是可能的,因为 Calabash-server 链接到可执行文件中。Appium 在未触及的可执行文件上执行测试。)

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

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

【问题讨论】:

    标签: appium ios-ui-automation calabash


    【解决方案1】:

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

    它包括以下功能:

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

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

    【讨论】:

    • 这很酷,亚历克斯!如果我开始另一个使用 Appium 的项目,我会记住这一点 :)
    【解决方案2】:

    我们在一个名为 Illuminator 的框架中支持这一点(完全公开,我是作者),带有一个名为 automation bridge 的 RPC 通道。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        在 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/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-07
          • 1970-01-01
          • 2020-04-16
          • 1970-01-01
          • 1970-01-01
          • 2020-04-07
          • 2021-07-28
          相关资源
          最近更新 更多