从“这个 APP 怎么这么慢”看 iOS 自动化性能测试的重要性

文摘   2024-06-11 11:36   浙江  

在日常使用手机 APP 的过程中,偶尔会遭遇应用响应迟缓或漫长的加载时间。这些问题无疑会损害用户体验,激发出类似以下的消极反馈:


这个 APP 怎么这么慢?

感觉越来越难用!

于是在当前竞争激烈的 APP 市场中,性能测试的作用愈发凸显。为了确保我们的 APP 保持优良的性能,定期进行性能测试显得至关重要


移动端性能测试目的及特点


影响移动端性能因素的原因有很多,诸如手机硬件、系统软件以及 APP 软件本身代码质量。


硬件,作为性能影响的一个主要因素,相对来说是最容易解决的问题。用户可以通过更换新的移动设备或升级现有硬件来提升体验。


操作系统,如 iOS 的不同版本,可能会带来性能的波动,这是开发者难以绕过的难题。我们能做的只是向服务商提供反馈和需求,至于结果,我们只能耐心等待。


那么关于 APP 本身的性能,就正是我们性能测试的焦点所在。代码所采用的技术、框架,以及算法的时间复杂度,都直接影响到产品的性能。找出并优化待改进的代码时我们性能测试与软件开发的共同追求。


考虑到移动设备的配置和处理器、内存和存储空间通常是受限的,因此 APP 需要尽可能高效地利用内存和存储空间。此外,无线网络的稳定性也是影响软件性能的关键因素,所以我们需要把网络条件作为性能测试的一个重要指标,以提高测试结果的准确性和可靠性。


iOS 自动化性能测试框架



上图所示是 iOS 性能框架的流程图。在 MicroStrategy 产品的性能测试框架中,所有关键的性能指标数据均以日志形式记录在 APP 内部。这些日志详细记录了进行操作的性能时间,包括各个关键阶段的耗时,如前端渲染时间、服务器响应时间、网络传输时间等。通过将这些数据收集并进行分析,从而得到产品的性能表现数据。


为了得到准确的数据,如前端渲染中模型构建这类流程起止明确的过程,我们在起止处记录时间戳,并将时间戳的差值作为该阶段的数据。但有的过程的结束点难以直接在代码中获得,比如图形绘制是系统来实行的,因此结束的时间点我们不好直接获取。因而,我们在 View Hierarchy 的末尾加了一个单独的透明的 view。这个 view 并不会实质性影响整个过程,系统在开始处理这个 view 的时候可以认为把我们实际需要的内容全部绘制完毕,因此在开始渲染时记录时间戳作为整个 Drawing 阶段的结束


然而,由于 iOS 的沙盒机制限制了直接访问设备存储的能力,我们无法直接通过接收端读取存储在产品 APP 中的日志文件。因此,在测试过程中,我们会在产品中内置一个 HTTP 服务器作为发送端(这部分代码在发布版本中会被移除),将所需要的数据以网路请求的方式发送到接收端上,并通过解析请求最终将数据结果存储到文件当中以方便后续数据分析。


在当前的测试实践中,我们会对每个动作执行6次重复测试,以确保数据的可靠性。随后我们会对这些数据进行排序,并应用滑动窗口技术(窗口大小为3)来计算方差最小的一组连续数据,取其平均值作为这一轮测试的最终结果。这种方法不仅提高了数据准确性,也为我们评估 APP 的性能提供了科学的依据


在所有操作的最终结果全部生产后,我们将它们与既定的基准线(baseline)进行对照。质量工程师将通过检索测试结果来确认是否存在性能下降,并据此提出相应的缺陷报告。


iOS 测试框架特点


1

排除网络干扰

为了消除网络环境对应用程序性能测试的干扰,我们采取了专门的措施。尽管网络条件确实是影响性能的一个因素,但它通常不是我们自动化测试的主要焦点。为了排除网络因素的影响,我们会记录数据传输所需的时间,并将其定义为网络传输时间。接着,我们会从操作的总耗时中扣除这段网络传输时间,以此作为性能比较的基础。这样得到的数据反馈了服务器的响应时间和客户端渲染时间之和,从而提升了结果的精确度。

2

重跑机制

在自动化测试中,为了提升效率并减少人工二次验证的时间消耗,我们引入了重跑机制。默认情况下,任何失败的操作都会自动进行一次重试。我们会筛选出所有失败的测试用例,并对它们进行第二轮测试。然后,用这一轮的数据替换原有的数据并上传至数据库。这一机制不仅提升了测试的准确性,还降低了人力资源的投入,进而提高了成本效益比。


为了给用户提供一个不卡顿、流畅的用户体验,我们的性能测试流程就像一个质量守门员,帮助我们发现 APP 运行速度慢的问题。它帮助我们监控 APP 的速度,确保一切都运转如常,让用户的体验始终顺畅。采用智能化的手段自动识别并修正问题,这样就能不断提升 APP 的表现,让用户满意。通过这些努力,我们保证了 APP 的性能始终处于最佳状态,同时也提高了我们工作的效率和资源的利用效果,提高我们产品在客户群体中的口碑。

微策略 商业智能
微策略 MicroStrategy (Nasdaq: MSTR) 是企业级分析和移动应用软件行业的佼佼者。关注我们了解行业资讯、技术干货和程序员日常。
 最新文章