Robust iOS agents?

We’ve been running mobitest-agent with our private instances for about a year now – with mixed results.

As some of you may have seen, the numbers are not always reliable, even over wifi. The agents crash randomly, hang up, and so on.

I saw a few notes about Appurify, but they seem to have been swallowed by google. If they have an improved iOS agent, it isn’t opensource and they’re not taking new customers.

What are you folks using to test pre-release websites on iOS?

I spent some time a few months ago writing an iOS agent for real devices using the real Safari. If you’re willing to do the same, here is what I did:

I took the browser_ios code, forked it and removed all instances of any SSH commands. SSH requires jailbreaking - which I didn’t want to do.

Without SSH, you won’t be able to interact with the iOS device to clear cache, etc. For these operations, I bought this bluetooth board to pretend to be an accessibility device to the phone/tablet. With the bluetooth board connected to the computer, you can input UI actions to close tabs, clear cache, etc. I coded this logic back into the stubs where these actions were required in browser_ios.

And that’s it. It pretty much works flawlessly after that. Real Safari on real devices.

The node.js agent that WPT uses for Android also supports iOS but it is somewhat more involved (I assume that is the browser_ios referenced above as it drives Safari proper).

I just got (good) video capture working for iOS so I’ll be cleaning the and documenting the iOS support in the node agent over the next few weeks. It does require a jailbreak though to clear the caches as noted above.

Hi Patrick,

Trying to debug and get the iOS client running i have been noticing the below issue where the url goes blank. Any thoughts or suggestions? When i try run the command from the command line it launches the browser but also reports “Recv timeout. Exiting.” Not sure why this happens.

wpt_client.js:554 Client. : Failed run 1a/1 of finished job 150408_0H_3: (‘/wpt/agent/js/lib/ios/idevice/Darwin x86_64/idevice-app-runner’ -u 5805fdd016aa6348681ea322cf7be49eab813184 -r com.google.openURL --args http:// failed, code 1, stderr[23] Recv timeout. Exiting.

Great work Patric, any update on IOS mobile testing ?

Would love an update on the ios node agents! Cheers for the great work!

anywhere a simple tutorial für IOS nodejs Agent like for android?