【问题标题】:Asynchrounous call from iOS automation test file using instruments使用仪器从 iOS 自动化测试文件异步调用
【发布时间】:2015-04-18 04:45:21
【问题描述】:

我正在使用 iOS 提供的工具应用程序来自动化原生 iOS 应用程序。测试脚本写在一个js文件中,所以我在想是否可以通过这个测试脚本进行AJAX调用。基本上我想在测试中继续轮询来自 URL 调用的一些数据。

我想做的就是这样:

try{
    var pinger = new new XMLHttpRequest();
    pinger.open("POST", "http://localhost/someurl/getData_ping"), true);
    pinger.send();
}catch(e){
    //returns null
}

然后我可以检查响应并执行所需的任何操作。但每次它只是进入 catch 块并将错误返回为 null。

有什么方法可以通过充当测试脚本的 js 文件来完成吗?还有关于这个js文件在哪里执行或者它支持什么的任何信息,因为我找不到任何这样的文档。

【问题讨论】:

    标签: javascript ios ios-simulator instruments


    【解决方案1】:

    问得好,如果您尝试使用的课程不在此处

    https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

    或 ECMA 规范的一部分,那么您将无法使用它。因此,您没有任何常见的文档对象模型或浏览器对象模型类,例如 DocumentXMLHTTPRequest。您想使用的任何库都不能依赖于这些对象中的任何一个,不幸的是,这消除了大多数常见的 JS 库。我能够找到一个 XML 解析库来避免这种情况,这对我很有帮助https://code.google.com/p/marknote/

    至于尝试在您的测试中发帖,我认为您唯一的选择是使用UIAHost.performTaskWithPathArgumentsTimeout (see here) 调用 curl 或 python 脚本或将您需要发布的内容作为参数的东西。如果您还需要执行 get,此方法会返回调用的输出。

    至于您的 null 错误,这有点奇怪,尽管我之前遇到过 null 或 undefined 错误(我认为这永远不会发生)。我注意到你有两次new,也许如果你去掉其中一个,你会得到一个 XMLHttpRequest 变量未找到或类似的东西。希望这会有所帮助。

    【讨论】:

    • 感谢指点,new 出现两次是打字错误(更多的是复制粘贴错误)。我想我现在会使用 curl,因为它似乎可以完成工作。
    猜你喜欢
    • 2012-02-03
    • 1970-01-01
    • 2021-02-05
    • 2012-09-24
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多