一提到性能测试,大家首先想到的是测试工具,很多人认为性能测试是使用测试工具,会使用测试工具是会性能测试,我认为这种思想是不对的。什么叫性能测试呢?性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。测试工具只是用于模拟某些特定的情况的,模拟出某些情况并不能代表完成了性能测试。性能测试一样需要编写测试计划、测试用例和测试报告的,而测试工具仅仅是执行测试用例的一个实现方式。

  那么如何进行性能测试呢?我们在进行性能测试前,首先,确定测试目的,先要搞清楚要测试什么,期望系统在什么情况下是什么状况或者期望系统能支持多少用户同时使用。其次,编写测试用例,或者说制定测试步骤,思考一下要怎么证明测试目的,通过什么手段实现测试目的。第三,执行测试用例,按照测试用例中的步骤执行,并记录测试结果。第四、分析测试结果,定位系统问题。

  性能测试和功能测试的步骤比较相似,但又有很大的差别。相似的在于都是编写测试用例,然后执行测试用例,不同的在于测试用例不是能直接执行,而是需要借助某些测试工具,而且执行测试用例也不仅仅是对比实际输出与预期的输出,而是要记录系统的资源使用情况和运行情况。

  举个例子,比如要测试电子邮件的登录的性能问题,首先制定一个测试目标,一般需求分析中会有明确的要求,假设100个用户同时登录,每个用户的响应时间不能超过60秒。那么编写测试用例时要分别考察并发10、30、50、80、100个用户的登录时,系统的响应情况。因为如果之间设置100个用户的并发登录,如果测试结果不能满足需求,不方便查找问题所在。然后执行测试用例时,通过测试工具模拟测试用例中的场景,并相信的记录每个场景中的系统的运行情况,服务器资源的占用情况和服务器的响应时间。执行完测试用例后,分析测试中的各种数据,找出影响性能的地方,然后去优化。比如100个用户并发登录时,服务器的CPU占用率过高,要检查登录的语句的循环次数或者简化算法等。

  其实在执行性能测试时,测试目标可以从需求中得到,测试用例的编写和执行可以通过学习测试工具的使用得到,这些都不难,困难的在于,发现问题时怎么去定位问题,确定是有哪个方面造成的。这需要仔细的分析,排差、替换和丰富的经验才行再加上一点运气才行,我为这熬了N个通宵,呵呵。具体的做法咱们以后再讨论;性能的测试只要多做,多熬几个通宵,任何人都能做的很好。