APP性能测试方法&工具
APP性能测试是手机端使用的重要功能,也是保证用户体验的关键。针对不同的应用场景和业务类型,需要使用两种测试方法来进行性能评估。
分别为静态性能测试(APP启动前)和动态性能展示(APP启动后),前者对用户体验影响较小,后者相对于静态测试来说对 APP开发人员更有吸引力。在进行静态测试时通常要选择3-5个 App,且时间跨度不会太长,一般情况下2-3小时就可以完成;而动态表现要做好长时间的稳定运行才能保证用户体验,因此可以将测试项目进行细分为多个项目进行动态性能展示。本文将以两种常见的测试软件为例来说明动态展示和静态性能表现两种不同的评测方法,帮助开发者更好地理解场景和应用的表现。
现在我们分享一款测试工具,用来做APP性能测试,它是:「solox」
下载访问地址:「https://github.com/smart-test-ti/SoloX」
以下介绍一些方法论,用于指导开展性能测试!
一、静态性能展示
我们在安装 App之后,就会被要求填写用户名、密码、手机号等信息。这些信息需要在短时间内填写完成,而且在填写过程中还需要保证不会丢失隐私信息。当我们在填写完信息之后就会进行应用启动,这时候软件会从程序缓存中读取到用户发送过来的请求并进行处理,我们需要在这个时间段内完成评估。由于很多 APP都是基于 HTML编写程序,因此我们在静态中需要保证 HTML描述的内容完整准确。比如 APP需要记录当前手机连接的信息、当前移动网络状况、手机卡顿等信息。因此在进行 APP状态评估时,我们最好能找到一个包含所有信息的详细页面来详细展现其功能,并且用这种方式实现的性能评估可以作为我们评测手机中系统性能和网页浏览能力之间的一个过渡。
1、HTML描述
我们在测试 APP的过程中,最基本的 HTML描述就是我们上面所说的描述样式、 HTML名称以及 HTML代码。在静态性能测试时,首先需要确保所写 HTML格式是正确并完全正确的。因为用户在浏览器中查看到 APP时,我们需要使用到这个 HTML文件。同时在动态评估结束后,会生成一个包含所有 HTML描述内容以及当前移动网络情况的报告文档。那么这种方式是否可以解决静态移动网络检查功能不完善和手机卡顿这样容易出现异常的情况呢?在 APP上线之前,我们需要将 APP在 iOS/Android平台上的定位和一些基本参数录入到同一个网页当中,比如我们需要记录当前手机连接信息、当前移动网络状况、手机卡顿等内容以及在网页上发送通知消息等。
2、APP下载与安装测试方法
我们在静态测试过程中,需要对移动网络环境、设备配置和手机 app性能进行评测,比如在使用了 wifi环境和3 G网络环境后,我们会对手机 app的连接和网络速度进行测试。比如在使用了 wifi环境后,我们可以通过下载安装了 app安装包之后继续测试手机 app的连接速度和网络传输速度。通过以上方法在静态测试过程中对于我们进行软件测试进行了详细模拟此外,在测试过程中我们也需要对软件进行一些测试行为来验证我们的软件是否达到了相应要求。首先需要测试当前设备是否具备运行条件,比如当前是手机 app内置还是安装了外部软件等。然后会在手机浏览器以及其他第三方软件库中对软件进行下载与安装测试。例如通过360浏览器及百度手机浏览器进行下载与安装测试;还可以通过在手机屏幕中开启屏幕浏览功能测试。
3、APP启动和应用运行时数据分析
如果用户在启动应用之后还没有安装 APP,这时候软件需要继续在缓存中等待5-10分钟以获取数据,如果用户运行该 APP时能够正常激活,那么就可以认为是 APP已经完成了对用户的访问。这时候软件还需要继续执行一些新任务,这样 APP也就处于运行状态,而如果用户没有任何操作,那么软件也就没有机会进行操作。这也表示如果用户没有在较长时间内收到 APP运行报告,那么该 APP就没有出现过问题。此时如果该 APP已经通过验收但是还没有对用户正常运行进行过操作,那么这些数据都是错误的。不过如果用户在运行一段时间后仍然没有出现问题的话,那么这个 APP就已经没有问题了。
4、静态评估结果报告
除了以上静态性能展示,我们还可以通过其他展示方式来了解到每个 APP的测试表现,比如我们可以在页面底部对评估报告中数据的趋势进行分析;如果整个 APP的测试结果中都是非常好的,那么就可以说明这款 APP在手机中是非常优秀的。当然这个结果除了展示之外还有很多内容可以展现。比如在进行页面播放时,软件播放时间较短,导致播放延迟较大;再比如 APP在完成某些操作后还会出现卡顿等情况;再比如一些无法进行一些特定操作,比如游戏过程中出现了游戏卡顿等情况。最后则是通过该评估过程展示出 App在某些情况下的状态。比如说当完成某些任务时出现了游戏卡顿情况。
二、动态性能展示的场景
在静态性能测试完成后,对于新应用来说启动后会产生大量的用户请求,这时候如果想要让用户体验更加好,就需要在动态性能展示中对用户请求做出回应并将实际的性能展现出来。这主要分为两个场景:一个是应用正式运行后会有大量的用户请求;另一个是应用在用户启动后仅15-30分钟即可完成用户请求。如果应用在启动后能够持续稳定地运行1-2个小时,那么则可以判断出应用的状态良好。此时我们并不需要把当前的应用性能信息上传到外部的服务器上,也不需要在启动后就一直打开应用播放视频,而是只需在 APP启动后15分钟内浏览一次应用就可以了。为了提高用户体验效率,我们可以将应用每一次浏览行为都作为一个项目进行可视化展示(见图3)。这样有助于给用户一个直观感受,并且通过使用代码库实现多个应用的无缝衔接,从而可以提高程序整体效率。
1、网页性能展示
网页在面对用户的过程中,是非常直观反映性能状态的,那么为了让用户直观感受到网页浏览性能如何,那么我们就可以选择将网页的每一个浏览行为作为一个项目进行可视化展示(见图4)。网页的每一个浏览行为都可以成为一个项目,这样在面对不同类型的用户时都能起到一个较好帮助的作用(见图5)。当然如果是针对某些类型的用户则需提供对应信息,例如:针对非恶意登录账号和密码或者通过认证且操作简单等相关信息。除了展示网页之外,还有很多动态展示和其他展示方式一起共同使用。比如:实时内存占用动态性能展示、实时网络流量动态显示(见图6)。当然这种展现方式还有很多,比如 iOS中一般会有一个动态内存占用图展示模块(见图7),而 Android会有一个动态网络流量表展示模块(见图8)。
2、浏览器性能展示
在浏览器性能展示中,我们可以利用浏览器内部测试工具的实时性,从而直观地展现浏览器在动态场景下表现出的性能状况。比如当我们需要对应用运行15分钟时,可以先打开一些网页浏览,然后再返回一些应用,这也会大大提升对浏览器性能的判断能力。当我们想要了解页面打开速度时,也可以直接访问到这个页面播放视频。当页面打开速度为60 ms时,网页打开时间为20 ms,这样的响应速度会大大提升用户体验。当我们在网页打开时,还可以观察到应用启动后页面占用时间以及网页打开速率。
3、系统流畅度展现
由于我们每个人的使用习惯都不一样,所以在进行性能展示时所使用的数据源也是不同的。对于一般情况下,性能展示主要呈现两种状态:一种是测试环境中的实际环境,如设备、应用客户端、数据库等;另一种则是用户自定义使用的场景中的真实应用。当用户自定义使用场景时我们需要给系统提供一定的性能支持;而当系统给了我们足够支持的情况下,就可以利用动态性能展示功能展现系统性能,如在后台测试完后系统显示了启动时长有30秒或更短,那么也可以判定这个应用当前处于运行中。因此静态性能测试结果如果不能得到直观的展现,那么就需要将动态性能展示融入到动态性能测试模型中;反之则应该继续按照该模型进行动态展示。这样不仅可以让用户清楚看到自己想要使用这个应用所经历了哪些环节,同时也让开发者能根据用户需求调整自己的策略。
三、静态表现展示与动态展示的区别
在前面的文章中,我们详细介绍了两种常见的测试方法,静态展示和动态展示的区别。这对于 APP开发人员来说很重要,它可以帮助开发人员更好地理解场景,并设计合理的性能测试方案。静态表现展示与动态表现展示方式不同主要体现在以下几个方面:测试过程复杂程度不同:在使用静态表现展示方法时,软件只需要少量开发人员就可以完成整个测试过程;而用动态展现方法做时,对工程师和用户来说都比较麻烦。测试结果不一样:静态表现通常要3-5小时才可以完成;而动态展现则需要1-3天不等。不过值得注意的是在进行静态测试时, APP版本不要过高或者过低都会影响性能;另外还需要考虑软件环境和产品定位的问题。
1、不同使用场景下的表现
随着技术的发展,人们对性能的要求越来越高,对新技术的关注度也越来越高,性能测试领域开始出现越来越多技术人员。如 MATLAB中的 final handler方法,在不同场景下,可将 APP进行不同程度的渲染或调用,测试其性能。在动态呈现方式下往往需要等待数小时才能得到结果。虽然这种方法可以快速完成测试,但是由于时间成本过高,还是需要相对频繁的进行测试。所以动态展现方法也逐渐成为了 APP开发者采用较为普遍的方法。相对于静态展示方法,动态展现方法更能反映出应用当前所处环境与功能需求。相比静态展示方法可以更为准确的反应当前所处的环境与功能需求;另一方面,它还比较直观、快速、易上手来评估其整体技术水平。
2、不同环境下的表现
除了测试环境的选择,我们还需要注意进行静态表现展示的环境。由于使用的是 Android手机,所以除了手机本身要支持全量机型之外,还需要考虑其他的因素给 APP带来的影响。比如说在多个终端都支持全量机型时,静态体验和动态呈现会存在很大差异。此外, Android手机上的原生 App支持和 Android自带 app原生 App不同,即使原生 App也存在一些 bug。针对这种特性我们需要设计一个静态测试环境,确保最终测试结果具有足够竞争力。以上这些是本文关于静态展示与动态展示在性能测试方法上进行对比分析时需要注意一些问题:一般测试时间长了之后会出现以下两个问题:(1)静态展现时使用多个服务器和 app独立运行;(2)使用同一个 app在不同环境下测试结果差异较大。
3、测试环境分析
针对 APP测试的环境分析,在进行测试前一般要对服务器进行配置。根据需要选择服务器,并确定服务器的负载情况。设备与网络、服务器配置、数据库与文件系统等与此 APP相匹配的参数,确保系统的稳定性。针对数据库与文件系统的配置应该对文件质量、文件大小进行衡量。对于开发环境和测试环境要求相同,那么服务器配置就应该满足要求。并且要选择与 App应用场景相匹配的网络。在下载环境方面,除了服务器之外,还要选择对应用户量较大、使用频率较高、对数据质量要求高、经常在后台对性能进行监控的 App。
4、静态表现展示的优势
静态表现展示的好处主要有以下几点:-可以为开发人员提供更好的设计思路和分析框架,帮助开发人员快速了解新功能,开发人员能更快上手;-相比于动态曝光效果,静态展现可更好地挖掘用户体验中最重要的内容(尤其是 APP的性能),提升整体 APP产品设计满意度;-减少对 APP性能测试的需求,降低测试成本;-采用动态展示测试手段可以避免长时间不稳定使用带来技术难题。
四、总结
静态性能展示和动态性能展示是当前常见的测试技术,两者都是通过静态部分来判断用户的体验如何、是否有潜在问题、是否需要优化等。静态性能展示一般会进行2-3个小时的稳定运行,静态性能展示需要一定的场景来配合,如果测试场景需要进一步优化即可使用,此时使用动态性能展示就能提高用户体验。从上面两个案例中可以看出,在产品进行动态性能展示时不需要做过多的性能分析工作,避免对性能造成不必要的浪费。但开发人员需要对整体的数据进行全面了解。此外,静态性能展示的结果通常要比动态展示更加精确可靠。所以,从开发角度出发,在进行静态性能展示时需要着重考虑性能提升和用户体验提升。
我们再来看看「solox」的性能收集面板,如下图: