发布新日志

  • 性能测试乱弹

    2017-11-16 08:34:02

       性能测试是软件测试中非常重要的一种测试类型,相对而言技术性较强。有些尚未入门的同行可能很向往却不知如何入手,或者有一定经验的同行仍不太明了什么是性能测试或如何做有效的性能测试。
       性能测试是什么?个人认为性能测试就是模拟用户使用场景验**效率是否满足要求。
    1、性能测试不一定就是并发测试,如客户端不是并发也存在性能问题,如移动端通讯录要加载大量的人员,可能导致加载渲染性能急剧下降甚至崩溃闪退,这是大数据量导致的性能问题。2、模拟用户场景,有些同行一说性能测试就想到loadrunner测试,甚至等价。其实只要能很好地模拟出用户场景即可,即使手工完成模拟操作。当然好的测试工具不仅提高效率,测试结果也更加准确。3、用户场景:必须让模拟符合用户场景,如用户场景基本是命中缓存而模拟却总是从数据库获取,这是无效的测试(除非目标就是压数据库)4、验**效率,这个涉及到性能测试的3个层次:1>模拟测试后得出性能指标及基本资源(如服务器的资源)的监控数据,此为最基本的性能测试;2>获取更多的资源使用数据如数据库、中间件等,并能从中分析出性能瓶颈大概位置,起码可定位瓶颈是否在服务器、网络、程序或数据库;3>进一步明确性能瓶颈位置,非程序以外的瓶颈能自行优化,甚至协助开发同事或自行优化程序代码 。5、满足要求,需要获取性能目标如通过以往的运营数据或需求数据来确定性能目标,同时转化成性能测试目标,即与当前测试环境匹配的性能目标。
       如何入门性能测试?根据性能测试的层次,入门则是先达到第1个层次,模拟场景并获取性能数据。目前大部分应用都是采用http协议,建议先学习http协议(熟悉此协议对任何测试类型都有莫大的帮助)才能明白测试脚本是什么东西(有些初学者甚至有一定经验的同行,发现loadrunner无法录制就举手无措就是因为不了解什么是协议)。解决脚本问题后则需要学习服务器相关东西,才能监控理解服务器资源使用情况。至此可基本完成第一层次的性能测试。
       性能测试进阶,则根据3个性能测试层次学习相关知识或技术,入门后则靠各自修行了。
       性能测试涉及的知识面非常广(测试本身就是涉及东西非常广,容易变成万金油,所以要有意识发掘加强专长),建议根据需要学习了解如下知识或技术:
    1、通信协议,起码了解TCP熟悉HTTP协议;2、相关网络知识;3、服务器如linux相关;4、数据库如常见的mysql、mongodb或缓存如mencache;5、中间件或容器相关知识如weblogic、tomcat或jvm相关知识(java应用);6、代码,虽然排在最后可它却是最核心的,只是测试职业在这方面是弱势(需要关注太多非代码以外的东西如以上5点)。
Open Toolbar