如何做性能测试?

        一提到性能测试,大家首先想到的就是测试工具,很多人认为性能测试就是使用测试工具,会使用测试工具就是会性能测试,我认为这种思想是不对的。什么叫性能测试呢?性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。测试工具只是用于模拟某些特定的情况的,模拟出某些情况并不能代表完成了性能测试。性能测试一样需要编写测试计划、测试用例和测试报告的,而测试工具仅仅是执行测试用例的一个实现方式。
        那么如何进行性能测试呢?我们在进行性能测试前,首先,确定测试目的,先要搞清楚要测试什么,期望系统在什么情况下是什么状况或者期望系统能支持多少用户同时使用。其次,编写测试用例,或者说制定测试步骤,思考一下要怎么证明测试目的,通过什么手段实现测试目的。第三,执行测试用例,按照测试用例中的步骤执行,并记录测试结果。第四、分析测试结果,定位系统问题。
        性能测试和功能测试的步骤比较相似,但又有很大的差别。相似的在于都是编写测试用例,然后执行测试用例,不同的在于测试用例不是能直接执行,而是需要借助某些测试工具,而且执行测试用例也不仅仅是对比实际输出与预期的输出,而是要记录系统的资源使用情况和运行情况。
        举个例子,比如要测试电子邮件的登录的性能问题,首先制定一个测试目标,一般需求分析中会有明确的要求,假设100个用户同时登录,每个用户的响应时间不能超过60秒。那么编写测试用例时要分别考察并发10、30、50、80、100个用户的登录时,系统的响应情况。因为如果之间设置100个用户的并发登录,如果测试结果不能满足需求,就不方便查找问题所在。然后执行测试用例时,通过测试工具模拟测试用例中的场景,并相信的记录每个场景中的系统的运行情况,服务器资源的占用情况和服务器的响应时间。执行完测试用例后,分析测试中的各种数据,找出影响性能的地方,然后去优化。比如100个用户并发登录时,服务器的CPU占用率过高,就要检查登录的语句的循环次数或者简化算法等。
        其实在执行性能测试时,测试目标可以从需求中得到,测试用例的编写和执行可以通过学习测试工具的使用得到,这些都不难,最困难的在于,发现问题时怎么去定位问题,确定是有哪个方面造成的。这需要仔细的分析,排差、替换和丰富的经验才行再加上一点运气才行,我就为这熬了N个通宵,呵呵。具体的做法咱们以后再讨论;性能的测试只要多做,多熬几个通宵,任何人都能做的很好。(通宵熬夜中。。。:( ) 

1 综述 1.1 什么是性能测试 检验系统的性能是否符合要求的测试。包括压力测试、负荷测试、可靠性测试、稳定性测试...... 1.2 性能测试包括哪些方面的测试 速度:服务响应速度 容量:最大支持用户数 可靠性:高负荷运行、长时间运行 1.3 性能测试的目的 (举例) 测算系统的性能指标 查找系统的性能瓶颈 给出较适合的软硬件配置方案 检验硬件配置能否满足客户要求 系统调优(硬件调优、数据库调优) 出一份报告给客户看 1.4 性能指标 (举例) 平均响应时间(秒) 成功率(%) 系统最大处理能力(请求/秒) 系统支持的最大并发用户数 系统预期响应时间(秒) 1.5 性能测试过程 确定目的 设计方案 测试实施 数据分析 2 性能测试过程详述 2.1 确定目的 2.1.1 如何确定测试目的 问主管 问项目经理 问市场人员 问客户 看需求规格说明书 看系统设计文档 靠经验 2.1.2 确定分析方法 需要收集哪些数据 由这些数据怎样分析出测试目的 2.1.3 注意事项 并非所有目的都是合理的(典型例子:测一下所有用户同时点击某个功能) 要找到真正的目的,而不是光问出一句话,有时候,一个人说的并不是他真正要的 各种方法所收集到的目的很可能是不同的,要综合分析,并与相关人员确认 2.2 设计方案 2.2.1 选择具有代表性的功能 最常用的 最耗资源的 2.2.2 设计测试环境 各台机器软硬件配置 系统的各个程序运行在哪台机器上 2.2.3 选定测试工具 通常是选用现成的测试工具,例如loadrunner,但也可能需要自己编写 2.2.4 设计测试步骤 系统运行的步骤 测试数据(界面输入的数据,数据库表中的记录数、索引情况) 2.2.5 确定要记录的原始数据 由测试目的决定 举例: 成功次数、失败次数 测试总时长 CPU占用率(平均、最大) 内存占用 磁盘I/O 2.2.6 注意事项 一般来说,系统的各个程序运行在哪台机器上,在这个阶段可以初步确定,但在测试实施阶段可能还要作出调整 确定数据库表的记录数时,采用从严的原则,在客户实际使用可能产生的数据量的基础上乘以1.5到10倍 确定需要记录哪些原始数据时,采用从宽的原则,即不确定是否需要时,尽量记录下来 2.3 测试实施 2.3.1 搭环境 2.3.2 运行测试工具,记录原始数据 2.3.3 对原始数据进行初步分析 根据成功、失败次数确定本组数据是否有效(成功率大约95%,成功次数大于20) 根据成功、失败次数确定是否需要调整一组数据的测试时长 根据数据的发散情况确定本组数据是否有效 根据前后数据的对比确定本组数据是否有效 根据前后数据的对比确定是否需要在同样情况下再次测试 根据CPU占用率确定下一步的负荷 ...... 2.3.4 重复上面2步 2.4 数据分析 根据原始数据计算出性能指标,对当初确定的目的作出一个结论 3 性能测试的误区 性能测试主要就是测试工具的使用 测试工具可以自动生成我所需要的报表 我不好性能测试,是因为对测试工具不熟悉 4 常见问题 主管要我性能测试(或压力测试、负荷测试),我该怎么办? 我用工具测了一些数据出来,我要怎样分析?我们的系统到底性能怎么样?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值