Keynote's Mobile Internet Testing Environment, or MITE, is a desktop-based performance testing tool that measures the performance of mobile Websites from a large range of mobile devices. Given the diversity of mobile devices represented among companies' employees and customers, MITE can help developers ensure that their Web-based applications function properly for as many mobile users as possible.
I tested MITE Version 2.1 with a handful of mobile-oriented Websites and applications, including our own eWEEK Labs blog, the mobile version of which taps the popular WPtouch Wordpress plug-in. I used MITE to gauge site performance while browsing interactively, as well as with scripts that I recorded and played back through the MITE interface. I also used the product's remote Keynote wireless agent to browse and run scripts through the network of any of 16 wireless carriers in nine locations around the world.
In my tests, I was impressed by the breadth of MITE's device catalog, though there were a few particular devices I missed, such as Samsung's 10-inch Galaxy tablet and an iPod touch running version 4.x of iOS. I found the product's browsing and scripting functions easy to use and worthwhile, but I'd like to see the interface support shifting between portrait and landscape modes. Access to the remote testing agents was spotty at times, but overall, I found that to be a valuable feature as well.
The basic version of MITE is freely downloadable and runs on Windows XP, Vista or Windows 7. A separate version of the product, MITE Pro, adds support for automated testing and for testing Web performance over the air with through Keynote's remote testing network. Annual subscriptions to MITE Pro, which include 100 hours of remote testing, start at $5,000.
MITE in Action
Getting starting with MITE is a straightforward affair-I began by clicking the "Browse Website" button in the MITE tool bar, typing in a URL to test and picking a mobile device profile to test against. MITE Pro ships with a daunting 2,000 profiled devices, but the application's device selector sports a filter box that made it easy to locate the profiles I sought.
Kicking off a browsing session pulls up a representation of the selected device that looks just like one of the emulators that ship with mobile device SDKs. One of the first device profiles I tried out was for RIM's PlayBook tablet, and I was surprised to find there was no way to switch the orientation of the emulated device from portrait to landscape. Each of the tablet profiles I tried hewed to a portrait orientation. A Keynote representative cited the difficulty of replicating the accelerometer functionality of most tablets, but I would have been happy enough with a button for swapping between orientations.
I thought I might work around this orientation issue by modifying or cloning one of the tablet profiles, but while I had the option of creating a custom device profile, MITE didn't allow me to copy an existing profile as a base for a new one.
During my tests, I consulted the right half of the MITE interface for performance information related to the Web page I was browsing at the time. The product lists key statistics for the page, such as bytes downloaded and download time, and offers up a "MITE Score" from 1 to 100, based on content and performance characteristics such as proper image sizing, use of caching, and misloading page elements. The score also takes into account World Wide Web Consortium (W3C) suggested best practices for the mobile Web. Each content-, performance- and best-practice issue is broken out beneath the scorecard for remediation.
This interface pane also includes a performance tab, with a waterfall chart that displays the amount of time each element took to load, and options to drill down further to view individual elements and the HTTP headers associated with them. A third tab, active during script recording, lays out the recorded steps during the session and offered me the option of modifying script-step properties.
I recorded scripts for a few straightforward, content-browsing sessions, and for more interactive, Web-application sessions with the mobile Gmail Web app. For the former sorts of session, the scripting process was fairly simple-I could record a script and then play it back on other devices. Using the device group feature of MITE Pro, I was able to create sets of devices, run a script against each of them in one operation, and then compare their performance. Along similar lines, MITE Pro allows for the creation of script groups, for running multiple scripts against one or more devices at once.
I was able to do the same with more complex Web applications, but I had to be more careful with my scripting, particularly when using various devices, which tend to receive differently presented versions of Web applications. MITE makes it fairly easy to edit scripts, however, and with a bit of debugging I managed to create and run fairly complicated scripts against groups of devices.
Jason Brooks is Editor in Chief of eWEEK Labs. Follow Jason on Twitter at jasonbrooks, or reach him by email at firstname.lastname@example.org.