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进行规格选择与性能压测。
相关文章
|
19天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
26 0
|
3天前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
11 1
|
1天前
|
开发框架 前端开发 Android开发
专刊:从网页到应用:探索在线生成 App 的技术方法
【4月更文挑战第27天】在数字化时代,移动App变得不可或缺,而在线生成App的技术正逐渐兴起,为开发者提供快捷创建移动应用的途径。本文探讨了网页到App的转变过程,介绍了WebView嵌入、混合式开发框架和云端打包技术等方法,以及在线生成App的步骤、优势和挑战。虽然存在性能和功能限制,但随着技术进步,未来在线生成App将有更多可能性,为移动应用开发带来便利。
|
4天前
|
API 开发者
免费邮箱API发送邮件测试调试的方法和步骤
本文介绍了使用免费邮箱API如aoksend、Mailgun、SMTP2GO发送邮件的测试调试步骤:选择合适的API,获取访问密钥,配置邮件参数,编写测试代码,调试和测试,查看发送日志,以及优化改进邮件发送功能,确保其稳定运行。
|
10天前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
21 0
|
19天前
|
测试技术 Linux Apache
网站压力测试工具webbench图文详解
网站压力测试工具webbench图文详解
12 0
|
19天前
|
自然语言处理 测试技术 持续交付
现代软件测试方法与挑战
传统软件测试方法在当前快速发展的软件开发环境下面临着诸多挑战,因此,现代软件测试方法的探索与应用显得尤为重要。本文将介绍几种现代软件测试方法,并探讨其在应对软件开发挑战方面的作用。
10 0
|
21天前
|
安全 测试技术
深入理解白盒测试:方法、工具与实践
【4月更文挑战第7天】 在软件开发的质量控制过程中,白盒测试是确保代码逻辑正确性的关键步骤。不同于黑盒测试关注于功能和系统的外部行为,白盒测试深入到程序内部,检验程序结构和内部逻辑的正确性。本文将探讨白盒测试的核心技术,包括控制流测试、数据流测试以及静态分析等方法,同时介绍当前流行的白盒测试工具,并讨论如何在实际项目中有效实施白盒测试。文章的目标是为软件测试工程师提供一份综合性指南,帮助他们更好地理解和应用白盒测试技术。
|
27天前
|
Java 测试技术 API
软件测试中的自动化工具与策略
软件测试是确保软件质量的重要环节,而自动化测试工具和策略的应用在提高测试效率和准确性方面发挥着重要作用。本文将介绍几种常见的自动化测试工具,并探讨在软件测试中应用自动化测试的最佳实践和策略。
|
29天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4

热门文章

最新文章