什么是WebView以及如何测试它
Posted 异次元互联网
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是WebView以及如何测试它相关的知识,希望对你有一定的参考价值。
便利性是我们永远无法完全满足的。这就是为什么软件开发人员总是竭尽全力创造更好的用户体验,而不会影响功能。所有这一切都是为了在当今竞争激烈的业务中挽救流失。人们希望方便,这就是混合应用程序受到欢迎的原因。
混合应用程序有什么独特之处?WebViews!
混合应用
顾名思义,它们是Native和Web Applications的混合体。它们在应用程序商店中可供下载,并且需要从本机应用程序等设备进行访问身份验证,但它们还在应用程序(WebView)中嵌入了用于呈现html的浏览器。Instagram 是混合应用程序的一个很好的例子。
为了访问任何第三方链接,在设备上的新浏览器中打开它,结果导致想要使用的应用程序中移出来。这对用户体验而言是一场灾难,通过创建应用程序内浏览器窗口来解决这个问题,该窗口用于促进第三方网页作为活动布局的一部分。感谢WebViews!
为什么需要WebViews?
它们可以更好地控制应用程序的UI。
如果只想更新应用程序的内容,则不必更新整个应用程序,例如,如果希望在应用程序或其他令人兴奋的优惠中公布即将到来的销售。
不会被推送到另一个第三方应用程序,而是被重定向到应用程序内浏览器,从而提取Web上的内容。这提供了保持在预期应用中的便利性。以Instagram为例,需要在某些故事中向上滑动,然后通过应用内浏览器重定向到网页,而不是在Chrome,Safari,Firefox或任何其他浏览器中打开内容。可以通过向上/向下滚动,放大/缩小或搜索文本,在重定向的网页上自由导航内容。
WebView允许跨平台开发,从而降低开发人员的开发成本和灵活性。注意:不能将应用程序的单个构建用于多个操作系统。只能通过HTML,CSS,javascript等借助网络扩展来简化另一个版本的开发。
公司通常旨在构建现有Web应用程序的包装应用程序。通过这样做,公司的目标是以相对较少的努力在应用程序商店中创建存在。此外,像Ionic这样的框架允许您将应用程序添加到应用程序商店并作为PWA部署到移动Web。
对于生成WebView,开发人员需要:
开发一个webview 类的实例 。
在应用程序中嵌入浏览器。
在WebView库的帮助下添加浏览器功能。
在android Manifest文件中添加Internet权限。
添加WebView代码以打开应用程序内浏览器。
WebView测试
指创建和执行测试用例,以检查WebView的有效工作机制。
在测试WebView时记下以下内容:
通过中断加载的网页来验证应用程序是否根据其预期行为进行响应。
测试WebView在不同网络模式下的响应 - 2G,3G,WiFi,LTE。
还应测试特殊字符。随着放大/缩小,通过向上/向下滚动浏览网页内容或通过向左/向右滚动浏览屏幕。
测试WebView对外部因素(如SMS,信号丢失,通知,呼叫等)的容忍度。
通过Web内容中的超链接启动外部应用程序时,测试应用程序的行为。
改进设备的方向并测试网络内容是否能够支持它们。
测试图形显示是否令人满意。
压缩浏览器窗口,查看文本是否正确压缩。
跨浏览器平台将非常有助于测试上述测试技巧。它还将提供有关如何将WebView描述为目标受众的想法。
如何执行WebView测试
适用于Android WebView的Espresso Web - 此工具通过重用WebDriver API中的Atoms,帮助检查和控制WebView UI组件的行为。它是测试混合应用程序最常用的工具之一。需要检查应用程序的本机UI组件及其WebView UI组件的集成 。
在使用Espresso Web之前,需要彻底分析网站的源代码,以确定其方法的钩子。这就是为什么它可能变得非常复杂的大型网站。
替代方法
另一种方法是忘记第三方代码并仅关注基于Android的代码。基本上,WebView映射网站的元素; 允许用户通过Android View对象及其扩展与他们进行交互。这些视图没有使用findViewById(int id)无法访问它们的ID,也无法在应用程序包中访问这些ID。
这并不意味着无法追踪它们。可以在Android Device Monitor的帮助下,这是一个独立的工具,用于提供UI以帮助Android应用程序分析和调试的多个工具。
需要使用Android设备监视器拍摄模拟器上每个屏幕的快照。
了解WebViews的内部结构。
在UiAutomator的帮助下对它们执行操作 。
这种方法不需要分析源代码,这种方式需要较少的工作来建立和维护代码。
以上是关于什么是WebView以及如何测试它的主要内容,如果未能解决你的问题,请参考以下文章