大家好,我是阿萨。随着移动应用程序的普及,移动应用程序的性能也越来越重要。今天就来聊一聊移动应用程序性能测试。
移动应用性能测试
你是否注意到你的应用程序经常崩溃或用户在最初下载后不久就卸载了它?很有可能的原因是你的应用程序在各种网络和不同负载下的性能不好。为了避免这一点,在关键条件下通过测试应用程序的性能来检查性能
移动应用程序的测试往往比PC软件的测试更具挑战性和繁琐性。种类繁多的设备,用户流动性的增加,设备特定功能的使用--所有这些都会显得很混乱。
制定移动应用性能测试的计划
当决定在专门为你的应用程序设计的列表中包含哪些检查时,一个深思熟虑的性能测试计划会非常方便。通常情况下,性能测试计划包括以下几个阶段。
1. 使测试目标与业务需求相一致。
当为你的案例定义成功标准时,确保它们与关键业务功能相对应。例如,对于主要对潜在客户感兴趣的电子商务企业来说,购物车功能、注册和联系表单将是测试的关键。
2. 确定你的关键绩效指标。
通过设定测试的基准,你就能知道执行是成功还是失败。对于移动应用测试,以下KPI值得考虑。错误率;最大响应时间;平均响应时间;请求的峰值数量;平均吞吐量和每个设备和操作系统的并发活跃用户的峰值数量。
3. 确定场景的优先次序。
不要试图一下子测试所有的系统。相反,勾勒出对你的应用程序的可靠性能最重要的场景。这个列表可能包括登录或退出、向购物车添加物品或支付订单等例子--无论你的业务目标是什么。在处理完关键的场景后,你就可以深入地测试不太重要的场景了。
4.模拟一个真实的测试环境。
如果你使用一个模拟器,确保测试环境尽可能地接近生产环境。但请记住,即使是最好的模拟器也不是灵丹妙药:要评估与相机、GPS或其他设备特定功能一起工作的应用程序功能的性能,最好是使用真实的硬件。
5. 使测试方法与整体开发方法相一致。
测试应该适合公司的一般开发框架。最流行的方法之一,敏捷,是循环的和协作的,而另一种,瀑布,是顺序的和更线性的。无论你的公司使用哪种方法,都要尽量坚持:这样一来,整个开发团队对项目的看法就会一致,从而加快决策过程。
6. 在测试时要记住运营商网络的延时和带宽。
由于移动设备是通过第三方运营商连接到互联网,网络的延迟和带宽会有所不同。重要的是要找出延迟的原因是在网络方面,还是在服务器方面,因为对这两种情况的补救措施是完全不同的。
为应用性能测试准备环境
测试环境就像一个实验室,用于测试不同元素对终端用户体验的影响,所以它取决于它的设置,你的测试将是多么有效。要为移动应用程序的性能测试建立一个环境,你应该考虑以下几点。
01. 隔离环境
在测试过程中,了解同时使用的用户的确切数量以及他们执行的操作是很重要的。另一个团队使用相同的环境进行平行测试,会危及测试结果,并减缓进程。隔离环境可以保证测试的准确性,保持实验的精确性。
02. 使用测试数据生成器
注意数据的写入、读取和删除,因为这些动作都是已知的,可以最大程度地停止应用程序的性能。你可以使用数据生成工具,如Datprof或EMS数据生成器来模拟真实世界的数据,而不用从生产环境中复制敏感数据。
03. 隔离网络
对于大多数网络来说,支持多个并发活动而不影响应用程序的性能是不可能的。所以这一步不是最终必须的,但我们强烈推荐。
04. 从网络路径中删除代理服务器
客户端和网络服务器之间的代理会给应用程序的性能带来压力。这个问题可以通过在一个隐蔽的环境中进行测试来解决。
选择合适的移动性能测试工具
测试人员有两种方法来评估移动应用程序的性能。
第一种是测试产品的服务器端性能。这样,开发团队就有能力检查服务器逻辑和应用程序的准备情况。
第二种是评估应用程序在设备上的性能(无论是物理的还是模拟的)。这样一来,测试人员就能从用户的角度看到最终产品。
最流行的服务器端性能测试工具是JMeter、Gatling和Boomq.io,而客户端/设备端性能测试可以用Sauce Labs、Appium Studio和Robotium进行,仅举几例。
不过,你的选择只取决于你自己:不同的工具有不同的功能,所以如果你需要检查,例如,Touch ID在你的应用程序中是如何工作的,你的选择将缩小到那些有这个功能的工具。在做出选择时,请注意支持的协议列表、操作系统版本、浏览器,以及该工具运行你自己预先存在的测试的能力。
应用程序性能测试的类型
移动应用程序的性能测试是相当复杂的。你可能需要几十种活动来确保产品按要求工作,例如。
负载测试
它有助于定义应用程序的负载阈值。负载测试通常是为了测量在大流量负载下的性能速度和响应时间。
压力测试
它的目的是在CPU使用率、系统内存或其他用户设备的硬件指标达到极限的情况下评估应用程序的性能。
容量测试
该测试帮助开发者找出应用程序能够维持的用户数量和功能。
峰值测试
这项测试模拟了服务中短时间内流量负荷的激增,以验证应用程序在超过容量时的性能特征。
如果你已经根据上述建议进行了测试,很可能一切都会变得很好。然而,正如你可能已经注意到的,移动应用程序的性能测试是一个相当复杂的过程。它包括多个阶段,每一个阶段都在很大程度上取决于你的产品,你的目标,以及许多其他内部和外部因素。