我个人认为一个优秀的软件工程师必须掌握一定的测试技能。可能有的开发工程师认为测试是测试工程师的事情,不是开发工程师的事情。俗话说,不会测试技能的工程师不是好软件工程师;那么,就算离开了测试工程师,照样可以证明你的程序没有问题。
当我们做性能测试的时候,需要用到性能测试工具。市场上有很多可以做性能测试的工具。比如说友盟和bugly,这两款工具都可以帮助我们测试性能如何;不过,我身边的朋友,包括我自己,使用友盟的次数还是比较多的,友盟更简单易操作一些,功能也更全面。
对于做应用软件测试的小伙伴来说,应用程序的性能测试属于极其重要的一部分。只有经过测试这一关之后,此款应用才可以上市面向用户;但是,如果测试不过关的话,就需要我们找出问题,及时解决问题,优化应用功能。那么该如何做应用程序的性能测试呢?下面,我给大家分享下自己的经验吧!
一、应用程序的性能测试步骤
1、提到应用的性能测试这个概念比较笼统,因为应用的性能测试分为服务器端的性能和手机端的性能测试。下面,我们先从服务器端的性能测试开始说起,服务器端的性能测试可以通过LoadRunner或Jmeter工具进行测试,为方便起见,可以以Jmeter工具为例子说一下App服务器端的性能测试流程。
首先,确定应用的性能测试功能点,一般会选择使用比较频繁的功能做性能测试比如查询,提交数据。
2、然后,根据该功能点的接口测试需求,或使用fiddler抓包,在jmeter上构造向服务器发送的请求数据,配置好相关的设置,并做好服务器的监控。(以我们实际项目为基准,本项目是搭建在linux上的,用的是nmon工具做监控),最后运行测试,测试完之后,收集CPU,内存等信息,集合聚合报告的内容,分析性能测试结果。
3、至于手机端的性能测试流程则比较简单,首先需要在服务器上提前安装监控工具(iTest/GT),接着启动监控工具,监控被测应用。
4、接着需要清空先前的logcat日志记录,清空日志的命令是:adb logcat -c.
接着来获取logcat日志:adb logcat -v time > E:\share\logcat.log。
5、再接着使用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 终止命令)。
6、最后根据监控图,检查CPU,内存,流量,电量是否符合性能指标。如果不符合,就把不符合指标的报表和对应的logcat发给开发进行定位。
总之,测试这一关是至关重要的,一定要严格把关,给用户一个良好的使用感!那么,如何才能给用户良好使用感呢?又怎样才能优化应用的性能呢?我认为只有精准的找出漏洞以及问题所在,然后及时的修复漏洞解决问题,才能做到真正的性能优化!
其次,我认为“工具”也很重要,有时候人为判断有误,或者无法及时精准发现问题所在;此时,我们就可以借助工具来辅助我们,像我上面讲到的“友盟”,例如友盟的U-APM ,是友盟+推出的App稳定性监控、性能监控和云真机测试平台。通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析等性能能力,支持多场景、多通道智能告警监控,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。
另外,友盟的“云真机”功能也是十分强大且完善,对于移动开发者来说,无论是开发,调试,测试,还是上线前后检验效果,都离不开移动设备,甚至是产品、运营和客服,也时不时需要使用真机进行产品体验、产品运营。传统渠道上,开发者只能通过采购设备满足各部门测试需求。然而随着业务的发展,这种方式的缺陷越来越凸显:稀缺机型抢手、设备数量不足、费用高企、资源利用率不高等。此时,我们就可以使用友盟的“云真机”服务,提供海量Android、iOS真机,通过资源集中管理,合理调度分配,为开发者提供发版前测试、发现线上问题后复现等场景使用,助力开发者平衡成本与需求,提升研发效率。
友盟的云真机搭载在U-APM应用性能监控平台上,U-APM提供了灵活地测试操作界面,支持ADB调试、WEB远程调试、扫码、抓包、虚拟定位等测试功能,并提供了测试报告供开发者后续查看!