APP性能测试方法&工具

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: APP性能测试方法&工具

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」的性能收集面板,如下图:

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
14天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
55 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
10天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
9天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
9天前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
14 2
家政服务小程序APP开发,做好上门家政最快的方法是什么?
在家政服务领域,打造成功的平台并非易事。本文分享了三个关键步骤:避免初期盲目投入、采用低成本获客方式、建立有效的阿姨筛选机制。遵循这些方法,可助你避开常见陷阱,成为行业头部平台。
|
20天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
20 1
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
47 2
|
11天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
43 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
64 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
246 7
Jmeter实现WebSocket协议的接口测试方法
下一篇
无影云桌面