提到APP的性能测试这个概念比较笼统,因为APP的性能测试分为服务器端的性能和手机端的性能测试。下面,我们先从服务器端的性能测试开始说起,服务器端的性能测试可以通过LoadRunner或Jmeter工具进行测试,为方便起见,可以以Jmeter工具为例子说一下App服务器端的性能测试流程。
首先,确定app的性能测试功能点,一般会选择使用比较频繁的功能做性能测试比如查询,提交数据。
然后,根据该功能点的接口测试需求,或使用fiddler抓包,在jmeter上构造向服务器发送的请求数据,配置好相关的设置,并做好服务器的监控。(以我们实际项目为基准,本项目是搭建在linux上的,用的是nmon工具做监控),
最后运行测试,测试完之后,收集CPU,内存等信息,集合聚合报告的内容,分析性能测试结果。
至于手机端的性能测试流程则比较简单,首先需要在服务器上提前安装监控工具(iTest/GT),接着启动监控工具,监控被测应用.
接着需要清空先前的logcat日志记录,清空日志的命令是:adb logcat -c.
接着来获取logcat日志:adb logcat -v time >E:\share\logcat.log.
如何做App的性能测试
再接着使用monkey运行被测应用:
adb shell monkey -p your.package.name -v 500 >E:\share\monkey.log
(获取app的包名和activity名称:
adb logcat -v time | findstr START
脚本中,cmp= 后面的值就是 包名)
(ctrl+c 终止命令)
最后根据监控图,检查CPU,内存,流量,电量是否符合性能指标。如果不符合,就把不符合指标的报表和对应的logcat发给开发进行定位。
测试一个App具体包括哪些方面?以及每个方面的关键点都有哪些呢?
# 非功能测试
app测试的一个重要方面是app的非功能需求。移动app在推出市场或进行进一步开发前,测试人员有一定的职责做该类需求的跟踪工作。
早期开发阶段要进行的第一个测试应该是实用性测试。通常是由alpha用户或同事进行的。走进一家咖啡馆或餐厅,问问里面的人他们的app使用情况。让他们看看现阶段开发的第一个版本并收集反馈,看看用户是否能很好地使用新功能,以便得出第一印象。
# 功能测试
每项开发的新功能都需要进行测试。app测试中功能测试是一个重要方面。测试人员应该要进行手动测试和后期的自动化测试维护。刚开始测试时,测试员必须把app当作"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作。除了经典软件测试,像点击按钮、提交订单看看会发生什么,测试员还必须执行更多功能的app测试。
除了整个手动测试过程,测试自动化对移动app也很重要。每个代码变化或新功能都可能影响现存功能及它们的状态。通常手动回归测试时间不够,所以测试员不得不找一个工具去进行自动化回归测试。现在市面上有很多自动化测试工具,有商业的也有开源的,面向各个不同平台。根据开发策略和结构,品质管理测试专家需找出最适合他们环境的自动化工具。
# 客户端性能测试
一个App做得好不好,不仅仅只反应在功能上。被测的app在中低端机上的性能表现也很重要。比如:一个很好玩的 游戏 或应用,只能在高端机上流畅运行,在中低端机上卡得不行,也不会取得好的口碑。
# 适配兼容测试
App在经过功能测试后,也需对其进行适配兼容测试需要检查的项主要有以下几点:
(a) 在不同品牌的机型上的安装、拉起、点击和卸载是否正常;
(b) 在不同的操作系统上的安装、拉起、点击和卸载是否正常;
我们在实际测试中,常常会遇到下列问题:
(a) 在某个品牌某个系统上,app安装不上;
(b) 在某个品牌某个系统上,app无法拉起;
(c) 在某个品牌某个系统上,app拉起后无响应或拉起后黑屏、花屏;
(d) 在某个品牌某个系统上,app无法顺利卸载;
# 弱网络测试
App在使用的过程中,难免会遇到弱网络环境,例如在公车上、在地铁里。在这种情况下,常常会出现网络抖动、上行或下行超时,导致应用中出现丢包。
作为一个测试人员,要对app在上线前做一定场景的弱网络环境模型,并查看app在弱网络环境下是否存在某些未知的问题。下面是常用的弱网络环境场景:
(a) 弱网络信号场景模拟;
(b) 市区低速移动场景模拟;
(c) 郊区高速移动场景模拟;
(d) 请求回应超时_上行超时场景模拟;
(e) 请求回应超时_下行超时场景模拟;
(f) 网络抖动场景模拟。
# 耗电量测试
# 协议测试
模拟客户端直接发送协议包给服务器,看看服务器是否有一定的校验,认不认客户端发过来的数据。协议测试,主要是为了处理用户发送恶意协议到服务器,骗过服务器的校验。
# 安全测试
App在上线前,都需要做详细的安全测试。安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。
# 服务器性能测试
服务器性能测试,主要包含单机容量测试和24小时稳定性测试。单机容量测试,可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。使用特定 游戏 模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。
# 服务器容灾测试
服务器容灾测试,主要指某个服务进程崩溃掉后,是否具有自行恢复能力。比如 游戏 逻辑进程消失后,是否会自动拉起;memcached崩溃时,是否会重新启动,是否会对所有玩家有影响。这些都是app测试过程中需要考虑的因素。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)