WebView 以及如何测试

混合应用
顾名思义,它们是本机应用程序和 Web 应用程序的混合体。它们可以在应用程序商店中下载,并且需要像本机应用程序一样从设备进行访问身份验证,但它们也有一个嵌入在应用程序中的浏览器(WebView)用于呈现 HTML。 Instagram 是混合应用程序的一个很好的例子。

还记得有一次,为了访问任何第三方链接,我们常常在设备上的新浏览器中打开它,结果导致我们从我们想要使用的应用程序中移出?这对于用户体验来说是一场灾难,通过创建一个应用内浏览器窗口来促进第三方网页作为活动布局的一部分,解决了这个问题。向 WebView 致敬!

为什么需要 WebView?
它们可以更好地控制应用程序的 UI。
如果您只想更新应用程序的内容,例如您希望在应用程序上宣传即将进行的促销活动或其他一些令人兴奋的优惠,则不必更新整个应用程序。
您不会被推送到另一个第三方应用程序,而是被重定向到应用程序内浏览器,该浏览器会为您从网络中提取内容。这提供了留在预期应用中的便利。以 Instagram 为例,您需要在某些故事中向上滑动,然后通过应用内浏览器将您重定向到网页,而不是在 Chrome、Safari、Firefox 或任何其他浏览器中打开内容。您可以通过向上/向下滚动、放大/缩小或搜索文本来自由浏览重定向网页上的内容。
WebView 允许跨平台开发,从而降低开发成本并提高开发人员的灵活性。注意:尽管如此,我们无法使应用程序的单个构建能够在多个操作系统上运行。我们只能借助 HTML、CSS、JavaScript 等 Web 扩展来简化另一个版本的开发。
公司通常旨在构建现有 Web 应用程序的包装应用程序。通过这样做,公司的目标是以相对较少的努力在应用程序商店中占据一席之地。此外, Ionic等框架  允许您将应用程序添加到应用程序商店并作为 PWA 部署到移动网络。
为了生成 WebView,开发人员需要:
开发一个 webview 类的实例。
在您的应用程序中嵌入浏览器。
在 WebView 库的帮助下添加浏览器功能。
在 Android Manifest 文件中添加互联网权限。
添加 WebView 的代码以打开应用内浏览器。
WebView测试 - 指创建并执行测试用例以检查WebView的有效工作机制。

测试 WebView 时请注意以下事项:
通过中断网页加载来验证应用程序是否按照其预期行为进行响应。
如果您的内容在 Web 视图中包含超链接的电子邮件地址,请确保点击这些超链接时会打开设备中的邮件应用程序。
以类似的方式测试超链接的电话号码 - 是否路由用户拨打应用程序?另外,如果设备中未插入 SIM 卡,该超链接将如何响应?
测试WebView在不同网络模式下的响应——2G、3G、WiFi、LTE。
还应该测试特殊字符。除了放大/缩小之外,还可以通过向上/向下滚动来浏览网页内容,或者通过向左/向右滚动来浏览屏幕。
测试 WebView 对短信、信号丢失、通知、通话等外部因素的容忍度。
当通过 Web 内容的超链接启动外部应用程序时,测试应用程序的行为。
改变设备的方向并测试您的网络内容是否能够支持它们。
测试图形显示是否令人满意。
压缩浏览器窗口并查看文本是否被适当压缩。
一个跨浏览器的平台对于测试上面提到的测试技巧会非常有帮助。它还将提供有关如何向目标受众描绘 WebView 的想法。 
如何执行 WebView 测试
Espresso Web for Android WebView – 该工具通过重用  WebDriver API 中的Atom来帮助检查和控制 WebView UI 组件的行为。它是测试混合应用程序最常用的工具之一。需要检查应用程序的本机 UI 组件及其 WebView  UI 组件的集成。

在使用 Espresso Web 之前,您需要彻底分析网站的源代码,以确定  其方法的挂钩。这就是为什么大型网站可能变得非常复杂的原因。

替代方法
另一种方法是忘记第三方代码,只关注基于 Android 的代码。基本上,WebView 映射网站的元素;允许用户通过 Android View 对象及其扩展与它们进行交互。这些视图没有 ID,因此无法使用 findViewById(int id) 访问它们,您也无法在应用程序包中访问这些 ID。

这并不意味着您无法跟踪它们。您可以借助 Android Device Monitor,这是一个独立的工具,可提供 UI 来帮助多种工具进行 Android 应用程序分析和调试。

您需要使用 Android 设备监视器拍摄模拟器上每个屏幕的快照。
了解 WebView 的内部结构。
在UiAutomator的帮助下对它们执行操作 。
这种方法不需要您分析源代码,并且这种方法在建立和维护代码方面需要更少的精力。

现在,如果有人在 WebView 上开始对话。我希望你能够粉碎它。干杯!

你可能感兴趣的:(web)