我刚刚开始考虑使用实习生测试框架来为我们的移动web应用程序编写功能测试。我希望在实际的iOS设备上运行这些测试。
我将Appium设置为与实习生客户机对话的selenium服务器。它在模拟器上的工作效果和预期一样(尽管我在很多与触摸相关的方法中都得到了“方法未实现”)。
然后我决定在我的运行iOS 9.0.2的iPhone 6 plus上配置所有东西
在与来自here的指令进行了大量的讨论之后,我得到了所有不同的部分(ios-webkit-debug-proxy,来自repo的appium-server,等等)。
最后,我决定运行我的测试。当我运行测试运行程序时,我设备上的Safari启动(通过SafariLauncher应用程序),并且ios-webkit-debug-proxy和appium-server似乎正在相互通信。然而,实习生只是简单地发布了一个“created session on...”消息,然后什么也不做。
为了确保服务器正常运行,我决定使用rest客户端使用JSONWire Protocol方法向它发送POST和GET请求,它似乎正在加载网页url并响应JSONWire请求。因此,很明显,Appium与intern的对话出了问题,反之亦然。
任何关于这方面的帮助/见解都将不胜感激。谢谢!
我还处于一个独特的位置,必须在本地运行这些程序,所以使用SauceLabs、BrowserStack等是不可能的。
发布于 2015-10-14 02:09:52
让它工作了!
因此,诀窍是指定proxyUrl配置选项。
我最初的猜测是basePath等可能存在一些问题,但我注意到测试用例之外的console.log语句运行正常。
这时,我注意到Safari页面在测试开始后立即尝试导航到localhost。这是我第一次使用Intern或Appium或任何Selenium类的东西。因为您不能从iPhone访问localhost (在本例中是用于访问我计算机上的Intern服务器,因为您是在您的计算机上运行测试,而不是在外部设备上),所以我在配置中指定了proxyUrl和proxyPort,并指定了计算机的本地IP (192.168.x.x)和Intern服务器端口(9000)。它仍然不起作用。我查看了Safari中的URL,注意到它没有使用proxyPort字段-因此URL看起来像:192.168.x.x/__intern/clie..。因此,我只是尝试在proxyUrl选项中输入端口-因为该选项是一个字符串- 192.168.x.x:9000。瞧--它成功了!
因此,希望这对其他希望使用此设置的本地移动测试的人有所帮助!
https://stackoverflow.com/questions/33106329
复制相似问题