性能测试你了解多少?

  开头老是千篇一概,毕业于一个不起眼的学校,在学校的几年是完全的浪费了,由于一入门接触的就是软件测试各类理论知识因此后面学习的也就是这方面的东西了,毕业后和其余年轻人同样怀着梦进行北漂,由于北漂女友都没有了。刚开始工做时和你们同样都是向往着作性能测试、自动化测试不肯意作功能测试,总以为那没钱途,就各类学习性能测试,刚开始总想着学好了loadrunner就能够作性能测试了,在一个专业的性能测试员看来这是多么好笑的问题,这也是多么天真的想法呀!虽然如今的我对性能测试也只是只懂皮毛。但仍是但愿经过这篇文章能让一些新手们对于性能测试有个入门的了解。多的不说了!前端

  在作性能测试以前必定要弄清楚几个问题:web

  性能测试的目的  数据库

 

  接下来再谈其余的。编程

  某天领导对你说,去给咱们系统作个性能测试,千万别直接说“好!”而后,就走了,我之前这么干过,(并且还把测试报告弄出来了,不过如今回看发现那报告根本没有任何意义)(那时不懂,打肿了脸充胖子),回到座位后,不知从何下手了。那么,咱们须要知道什么呢?tomcat

  首先要知道具体的需求。(简单的说一下其实性能测试如今我接触到的其实有两种,一种是web页面前端的性能,二是咱们正常所理解的后台处理业务的能力,就是常说的要观察的并发、最大用户数、吞吐量、内存、数据库、中间件等)服务器

   一、有明确要求网络

    系统要求同时知足1000用户登录,平均每一个用户登录时间不能超过5秒。这个需求很明确,可是至于怎么达到这样的结果就不是咱们考虑的了,优化系统仍是加硬件什么的再讨论!架构

   二、只是想知道目前系统性能(容量测试)并发

    就是求得最大用户数和最佳用户数。这是比较模糊的一个需求,咱们须要对系统作出分析,找出系统的压力点。app

   三、找出系统性能瓶颈

  当我看见这样的需求时我头疼,多是由于对这个还不专业。这个一样须要分析可能对系统形成瓶颈的逻辑业务,而后才能进行性能测试。前提是你对这个体统很是的熟悉,不管是业务仍是功能。

   四、了解系统在长时间的压力下性能情况(强度测试)

    这通常是验证系统的稳定性,由于系统一旦上线,就有可能会长期处在大用户的访问状态,可能之前没发现的一些问题就会暴漏出来。比较典型的就是内存溢出。之前这样的问题我碰见过,一样的并发数跑二、3个小时没有问题,可是用户数小一些跑了8个小时结果服务器果断挂掉了。最后发现是app链接池出了问题。

  2、性能测试的环境    

  肯定了测试目的,固然须要搭建测试环境。这里的环境,咱们须要考虑几点

  一、硬件环境

  咱们须要了解被测服务器硬件配置,用于加压客户端的机子配置,CPU 内存  等

  二、软件环境

    咱们须要了解被测系统的架构,前端、中间件、服务器(这里指运行系统软件服务器,如tomcat)、数据库,以及他们的部署位置。

   用于加压的客户端采用什么性能测试工具进行加压。

  三、网络环境

    网络环境很重要。在上面的几个目的中,除了找出系统性能瓶颈能够在广域网进行,由于这个目的能够不用设置太多的虚拟用户,只要找出系统哪一个地方影响了整个系统的性能就行。 

    其余目的的测试都须要在,局域网进行,否则你压力工具所发送的请求都会卡死在网络的传输过程当中。还有一点就是作测试时最好晚上作,否则你作性能测试时将带宽都占用了大家单位的人就没办法办公了!

  3、寻找系统的压力点  

  咱们须要对系统的哪一个页面或业务进行加压。这个不是本身想出来的,须要与开发人员的沟通。系统的首页?系统的登陆?仍是系统的交易过程?各个业务的用户比例是多少?只有得到有效的性能需求,才容易寻找和定位压力点!若是你对这几点都很清晰了,那么打开你的性能测试工具开始录制(或编写)你的性能测试脚本吧!

  4、必备知识

   在刚开始都说了性能测试不仅是说你会loadrunner就能够了。你必备的:

    一、性能测试工具

      这个你们都明白,比如如今用得比较多的Loadrunner,但这只是其中一个,还有不少:web Bench、ab、Siege、JMeter、loadrunner~~~~~等等

    二、掌握一门编程语言

      至于为何呢?其实你只要作了性能测试你都知道在不少状况下是不可以进行录制的,或者说没有录制到,因此这个时候就须要咱们动手写脚本了。还有就是虽然工具虽然强大,可是他也不是万能的,像商用的loadrunner他的功能已经很强大了,但是他是商业用途,价格你懂的。多掌握一门没错!

    三、计算机原理以及操做系统知识

      这方面的东西必须懂,否则别人提及什么内存泄漏、死锁、乱码等问题你都不知道那真的~~~~~

    四、有良好的网络基础知识

      这个为何其实咱们常常碰见的就是关联问题,这下懂了吧!

    五、数据库知识

    六、中间件知识

  我说的可能还只是一部分,也须要不断的学习了解、探索。若是连这些不懂那么更加不能谈后面的瓶颈定位、优化。

  比如定位一个系统的瓶颈时你须要去查找是:一、硬件上的性能瓶颈?二、软件上的性能瓶颈?三、程序上的性能瓶颈?四、操做系统上的性能瓶颈?五、网络设备上的性能瓶颈?

  因此若是要作性能测试这些东西都是必不可少的!

    备注:这只是我的的观点,有什么错误的地方还请你们指出来!

相关文章
相关标签/搜索