• 0
  • 1
分享
  • 关于PWA(Progressive Web App)的一些测试思考
  • 恬恬圈 2019-10-15 10:43:59 字数 2239 阅读 2051 收藏 1

现在app太多了,有的时候把整个手机的空间都占满了。所以,有时候我会清理一下Android手机里那些不常用的app程序,来释放小小的8G手机内存。有一天,突然看到一个新闻,说饿了么可以通过手机网页,免下载直接生成一个桌面应用,而且可以媲美原生的native应用体验,我来了兴趣,马上试用一下。

用我的华为荣耀3C,打开Chrome浏览器,在地址栏输入https:eleme.me,就打开了饿了么的手机网页,再点击右上角的"更多"按钮,弹出一个对话框,点击"添加到主屏幕",提示添加成功。回到主屏幕,此时出现一个饿了么的图标,跟应用市场下载的一模一样。点击进入程序,嗯,确实和native的体验一样的。哇,还有推送消息,不错嘛!

作为一个测试人员,只是体验这个程序还是满足不了我的。去研究一下,这个炫酷应用的来龙去脉吧。这种直接从网页加载到手机主屏幕的技术框架是PWA(Progressive Web App),中文名全称:渐进式网页程序。Google公司于2015年提出,不过是在2016年6月才进行市场推广的,目前该技术在国外挺流行的,因为解决了"不用下载应用,但是却可以使用应用"的市场需求。所以,在硬件环境相对恶劣的印度,更加火爆。引用一下Alex Russel的关于PWA技术的一篇博客文中的一句话:"escaping tabs without losing our soul"翻译过来就是"逃避但不失去灵魂",应该说是脱离了原生app,但是却保留了完整的业务功能,可见即可用。


作为测试工程师,我们应该了解PWA的特性,从而可以针对PWA模式的网页做测试。根据Google的定义,PWA应该具有以下特性:

1.渐进式属性:任何环境都能运行,包括可以进行降级运行。

2.响应式属性:什么样的设备都可以使用。

3.可离线应用属性:基于Service Worker服务,在没网或者弱网的条件下也能打开网页,

4.类app属性:类似APP的使用体验

5.持续更新属性:基于Service worker服务,保持网页是持续更新状态

6.安全属性:https网络服务

7.可搜索属性:能被引擎搜索到

8.推送功能:不用打开网页,推送新的消息

9.可安装属性:不用通过应用商店,就能添加到手机的主屏幕

10.web连接属性:有一个连接就可以跳转到程序的Web页面


结合以上的PWA特性,我们考虑针对性的功能测试。

1.针对1.渐进式;2.响应式;3.离线应用这三个特性,属于对硬件和网络环境比较恶劣的情况的测试。我们可以针对性的选择以前的Android老旧机型,平板,在弱网或者断网环境下测试程序,看网页是否正常加载显示。然后可以逐步提高网络环境和硬件,测试加载速度。测试是否逐级渲染等。

2.针对4.类app属性,可以参考app上的操作,对网页进行操作,是否流畅。如果是从手机桌面进入的程序,程序应显示该是没有URL头部的。

3.针对5.持续更新属性,应该是像传统web一样,支持热更新,及时展示新内容。包括在原有页面刷新和重新进入web页面刷新。

4.针对6.安全性,可以用市场上有的一些安全扫描工具加自行抓包进行测试。保证程序和数据安全。

5.针对7.可搜索属性,利用手机端的各个搜索引擎,可以搜索并打开程序。

6.针对8.推送功能,利用后台设置,不打开网页收取推送信息。

7.针对9.可安装属性,测试各个主流Android厂商手机的安装并打开功能。

8.针对10.web连接属性,可以从网络连接和安装的程序里测试打开网页功能。

以上是功能测试的内容,但是对于这个PTA的网页,因为它是可以放置在手机桌面的,像一个客户端,但是又不是app的客户端,那这个PWA网页在手机上的CPU和内存的性能测试如何进行呢?


我遵循app客户端的性能测试思路,找到了办法。

1.首先用 adb shell dumpsys meminfo  命令,我找到了这个PWA网页的进程,因为其实它还是运行在Chrome的浏览器上,所以进程是两个基于chrome的:

com.android.chrome:sandboxed_process0 (pid 8119)

com.android.chrome:privileged_process0 (pid 7232)

2.利用adb shell dumpsys activity activities 命令,找到这个PWA程序的activity,基于Chrome浏览器运行的:

com.android.chrome/org.chromium.chrome.browser.webapps.WebappActivity

根据上面找到的1.进程名,2.Activity,就可以展开这个PWA程序的对Android机器的CPU和内存等等其他的性能测试。


再给大家介绍一个PWA应用的网址,https://pwa.rocks/,其中有很多有趣的应用,大家可以打开玩玩。

14982672_2018040313561419cmp.jpg

国内因为PWA技术是Google的,所以现在还不如国外那样流行。但是PWA可以满足用户的几个关键需求:可以搜索到,可见即可用,用完即走,重复使用也方便,是一个又轻又快的应用技术,发展前景十分广阔。2018可能会是PWA应用在国内大发展的一年,让我们一起期待吧!


版权声明:本文出自51Testing原创,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 大家好,今天我们一起来学习一下在手机App测试中我们需要关注那些测试点,拿到一款app如何进行测试。一、首先我们拿到一个app的apk包 或者是在testflight下载的app安装包,需要进行安装测试1.软件安装前:空间不足是否有相应的提示;2.软件安装中:安装过程中是否可以取消、暂停;安装是否可以正常进行;安装空间不足是否给予提示;3.软件安装后:是否可以卸载应用,通过桌面卸载或者通过软件设置卸载;卸载是否支持取消功能,取消后是否影响软件的正常卸载;安装完成后是否自动删除安装包;重复安装提示版本已存在、或者是直接覆盖安装,但是能正常使用。二、安装后的app 需要随着迭代版本的更新需要进行升...
            0 0 1078
            分享
          • web页面问题定位:第一步:前后端判断先判断是前端还是后端的问题,如果是接口请求响应数据是正常的,则进一步定位前端问题。前端问题可以通过F12打开调试模式,切换到source 页面进行查看是否是js文件内的语法错误,或者是资源文件位置未找到等问题第二部:后端具体原因分析后端接口请求异常,则可通过状态码进行判断400--请求语法错误,也就是前后端语法定义不一致401--未授权403--服务端拒绝访问404--资源不存在500--服务器内部错误如果遇到磁盘满了,就需要看应用程序是否活着,如果活着则返回500(服务器处理异常),若是应用程序已经死了,则返回400资源不存在了app端和服务端问题定位:...
            0 0 2524
            分享
          • 1、MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,本文简单介绍下怎么使用JMeter对MQTT协议做性能测试2、要对MQTT协议进行测试,需要下载一个mqtt-xmeter-jar-with-dependencies.jar插件,放置在JMeter的lib/ext目录下一、添加线程组1. 添加线程组,Jmeter执行是通过线程组进行驱动的,测试计划必须最少有一个线程组,选中测试计划,点击右键,添加》线程》线程组二、依次添加如下请求1.  添加创建连接请求-选中线程组,点击右键,添加》取样器》MQTT...
            0 0 2586
            分享
          • 登录1)空白用户名和密码均为空/用户名填写,密码为空/用户名为空,密码填写;2)错误校验输入错误的用户名和密码/用户名错误密码正确/用户名正确密码错误;3)大小写区分(如:用户名和密码都为小写时)用户名和密码均大写/用户名大写,密码小写/用户名小写,密码大写;4)存在空格合法的用户名或密码前插入空格/合法的用户名或密码中间插入空格/合法的用户名或密码后插入空格;5)已注销的用户名登录;6)已禁止/锁住的用户名登录;7)长短校验在给定的用户名和密码规则下,超出或少于指定的长度登录(测试临界值);8)非法字符校验(如@#¥%等字符);9)多次错误登录,是否锁住用户名或者密码在连续输错3次或者5次的...
            0 1 2474
            分享
          •   网关是指内部服务和第三方外部服务交互的接口,常见的网关有通过渠道引入外部用户的通用网关、和支付商户对接的支付网关、获取第三方数据的数据网关等(一种是我们提供给第三方调用,一种是去调用第三方,这里重点讨论第二种)。  因为网关接口需要依赖第三方响应的结果,而不管我们请求参数如何,第三方测试环境响应结果基本固定,不一定会出现我们想要的情况。  还有一种情况是测试账号的原因,比如缺少有效的信用卡号、有流水记录的淘宝卖家账号等,导致我们使用的测试账号只能覆盖单一的情况。  虽然对网关来说大部分时候只要能和第三方调通就可以,但是线上情况不可控,只验证正常情况当然不够严谨,需要确保各种可能出现的异常情...
            0 0 1068
            分享
      • 51testing软件测试圈微信