APP性能测试方法&工具

简介: 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进行规格选择与性能压测。
相关文章
|
6天前
|
安全 数据可视化 前端开发
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习
19 0
|
6天前
|
XML 存储 测试技术
深入理解自动化测试中的数据驱动方法
【5月更文挑战第11天】 在软件测试领域,数据驱动测试(DDT)是一种高效的测试策略,它允许测试人员通过外部数据源控制测试用例的输入和输出。这种方法促进了测试用例的参数化,并提高了测试的灵活性和可维护性。本文将探讨数据驱动测试的核心概念、实施步骤以及使用Python进行数据驱动测试的实践案例,旨在为读者提供一种结构化的方法来设计和执行复杂的测试场景。
|
4天前
|
存储 XML 测试技术
深入理解自动化测试中的数据驱动方法
【5月更文挑战第17天】 在软件测试领域,数据驱动测试(DDT)是一种高效的测试方法,它允许测试人员通过外部数据源来控制测试用例的执行。这种方法的核心在于将测试逻辑与测试数据分离,使得测试案例可以简单地通过改变输入数据集来扩展和复用。本文旨在探讨数据驱动测试的原理、实施策略及其在实际项目中的应用效果,以期为读者提供一种提高测试效率和质量的有效手段。
|
6天前
|
测试技术
如何管理测试用例?测试用例有什么管理工具?YesDev
该文档介绍了测试用例和测试用例库的管理。测试用例是描述软件测试方案的详细步骤,包括测试目标、环境、输入、步骤和预期结果。测试用例库用于组织和管理这些用例,强调简洁性、完整性和可维护性。管理者可以创建、删除、重命名用例库,搜索和管理用例,以及通过层级目录结构来组织用例。此外,还支持通过Excel导入和导出测试用例,以及使用脑图查看用例关系。后台管理允许配置全局别名,如用例状态、优先级和执行结果。
|
6天前
|
人工智能 测试技术 数据处理
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(1)等价类划分法、边界值法、判定表法
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(1)等价类划分法、边界值法、判定表法
9 0
|
6天前
探讨AC/DC电源模块的可靠性设计和测试方法
探讨AC/DC电源模块的可靠性设计和测试方法
探讨AC/DC电源模块的可靠性设计和测试方法
|
6天前
BOSHIDA AC/DC电源模块的可靠性设计与测试方法
BOSHIDA AC/DC电源模块的可靠性设计与测试方法
BOSHIDA  AC/DC电源模块的可靠性设计与测试方法
|
6天前
|
机器学习/深度学习 人工智能 运维
深入探索软件测试:策略、工具与未来趋势
【5月更文挑战第14天】在软件开发的生命周期中,测试环节扮演着至关重要的角色。它不仅保证产品能够达到预定的质量标准,还有助于提前发现并修复潜在的缺陷,从而减少维护成本和提高用户满意度。本文将深入探讨当前软件测试领域的最佳实践,包括测试策略的制定、工具的选择以及面对快速变化的技术环境如何保持测试活动的前瞻性和灵活性。通过分析自动化测试、性能测试和安全测试等关键领域,本文旨在为读者提供一个全面的软件测试指南,同时对未来的发展趋势进行预测。
|
6天前
|
测试技术
使用 Playwright 复用 Cookie:简化自动化测试的高效方法
Playwright 提供的 Cookie 复用功能允许在不同测试用例间共享会话状态,提高测试效率。通过 `context.set_cookies()` 方法设置共享 Cookie 数据,确保会话在多个测试中保持一致。优点包括节省时间、维持稳定会话,但需注意可能增加测试用例间的依赖。使用此功能可优化自动化测试流程。
15 1
|
6天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
29 0

热门文章

最新文章