10

我们一直计划使用 Selenium 对我们的 Web 应用程序进行 UI 测试。我们现在有了第二个想法。据我所知,Android 和 iOS 设备的网络驱动程序不使用用户实际使用的浏览器。相反,他们使用 WebView,它可能与实际浏览器相似,也可能不相似。我已经看到了各种针对 Android 的报告,这些报告似乎表明 WebView 的行为与内置浏览器和 Chrome 不同,Chrome 现在是某些设备的默认设置。

你觉得使用 Selenium 在实际的硬件设备上进行测试值得吗?它比使用模拟器更准确还是更不准确?您发现什么是使用自动化测试让您对您的 Web 应用程序在您支持的所有硬件平台上都能正常工作感到满意的最有效方法?

在我们的案例中,我们需要支持 PC、Mac、平板电脑和手机上主要浏览器的最新版本。Selenium 在 PC 测试中运行良好,但我担心平板电脑和手机测试。我们正在考虑是否应该自行开发或使用可以在实际设备浏览器上实际运行的 uitest.js 之类的东西。

4

3 回答 3

16

虽然现在 Selenium WebDriver 源代码存储库中存在的 iPhone 驱动程序和 Android 驱动程序都使用 WebView 控件来浏览 Web,但这两个项目已在很大程度上被弃用。这种弃用在 iPhone 驱动程序中是明确的,而在 Android 驱动程序中是默认的。

这些驱动程序已被ios-driverSelendroidAppium等其他项目取代。这些项目基于 WebDriver 项目,使用相同的客户端 API 并使用相同的基于 JSON-over-HTTP 的有线协议进行通信,但能够在移动平台上自动化本机和混合应用程序。他们通常可以在设备上或模拟器中自动化应用程序。对于我提到的三个项目中的每一个,它们都得到了积极的维护,并且正在进行开发。

于 2013-09-10T22:26:20.200 回答
3

根据我的经验和我的个人意见 -

并非总是需要在所有浏览器上进行测试,无论是 Android 还是基于 webkit 的浏览器。

一个起点应该是查看哪些浏览器实际访问了您的应用程序。看一些网络图,如果 Firefox 或 Chrome 是您应用的主要流量,那么您应该首先覆盖这些浏览器。所有其他浏览器只是添加剂。 您的主要责任应该是迎合那些最常使用您的应用程序的人。

在移动市场 - 自动化您的移动应用程序并不总是完全必要的,因为单元测试通常就足够了,因为它们指向相同的服务点。

在我个人看来——移动测试无论如何都被高估了。为什么不直接改变 Chrome 的用户代理,或者你使用的任何浏览器,让你的应用程序认为它是 android 或 iOS?

于 2013-09-10T20:21:02.817 回答
1

现在 Android 驱动程序已被移除并被 Selendroid for Android 取代。

  1. Java 6+

  2. 必须安装最新的 Android-Sdk 并设置 ANDROID_HOME

  3. 下载selendroid.jar文件

  4. 启动服务器

    java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk

于 2015-12-16T11:00:01.863 回答