性能测试工作的完整过程,目的,最关键的是什么
系统测试分类:功能测试(正确性,容错性,并发逻辑,关联内容),安全测试,性能测试(压力测试,响应时间),强度测试,容量测试,恢复测试,用户界面测试,接口间测试...
性能测试的概念---在正常,峰值以及异常负载条件下,测试系统的各项性能指标;通过自动化的测试工具模拟进行。
性能测试主要是测试软件运行中的各项指标是否符合需求;压力测试是性能测试的重点,压力测试是通过工具产生并运行并发事务来模拟软件系统的实际运行状态,从而获得各种性能指标。
性能测试的目的---
1) 评估系统的能力----测试中得到的负荷和响应时间数据可被用于验证所计划的模型的能力,并帮助作出决策。
2) 识别体系中的弱点----受控的负荷被增加到一个极端水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3) 系统调优---重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。检测软件中的问题,长时间的测试执行可导致程序发生由于内存泄漏引起的失败,揭示程序中的隐含问题或冲突。
4) 验证稳定性,可靠性---在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
性能测试的内容---
负载测试、压力测试、容量测试、网络性能测试
其中,容量测试、负载测试、强度测试的英文解释为:
Volume Testing = Large amounts of data
Load Testing = Large amount of users
Stress Testing = Too many users, too much data, too little time and too little room
性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。
关注点:how much和how fast
负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。
关注点:how much
强度测试(Stress Test): 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括
Spike testing:短时间的极端负载测试
Extreme testing:在过量用户下的负载测试
Hammer testing:连续执行所有能做的操作
压力测试的目的:
1) 发现影响系统性能的瓶颈
2) 评价系统性能
3) 对系统资源进行优化
4) 提高响应时间和吞吐量
运行压力测试时的另一个任务就是监测系统资源,可以使用一些工具来监测并记录资源使用情况。
监测的对象有:网络阻塞情况;主机CPU使用情况;内存使用情况;缓存使用情况;数据库系统中的数据锁;回滚段;重做日志缓冲区等。
监测的结果包括图象与数据文件,并且图象可以实时显示,也可以在压力测试运行结束后分析。可以使用操作系统、数据库系统软件附带的监测工具。
通过资源监测的结果很容易找到系统的瓶颈,并对产生瓶颈的资源进行调整、优化。
可能大家觉得性能测试、负载测试和强度测试比较混淆。没错,这三个概念是比较容易使人糊涂。负载测试和强度测试,都属于性能测试的子集。下面举个跑步的例子进行解释。
性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?
负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?
强度测试,是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?