软件测试的基本理论-性能测试-3
- 一 .性能测试
-
- 1.性能测试概述
- 2.性能测试指标
-
- a:响应时间
- 吞吐量
- 并发/并发数/并发用户数
- TPS(transaction per second)
- 资源利用率
- 3.性能测试种类
-
- 负载测试
- 压力测试(强度 测试)
- 并发测试
- 配置测试
- 可靠性测试
- 容量测试
- 4.性能测试流程
- 5.性能测试工具
- 补充
一 .性能测试
1.性能测试概述
性能测试:
就是使用性能测试工具模拟正常、巅峰及异常负载的状态。对系统的各项性能指标进行测试活动;
目的:
1,验证系统是否满足预期性能需求,包括系统的执行效率,稳定性,可靠性,安全性等;
2,分析软件系统在各种负载水平下运行状态,提高性能和效率;
3,识别系统缺陷,寻找系统中可能存在的性能问题,定位系统瓶颈并解决问题
4,系统调优、探测系统设计与资源之间的最佳平衡,改善并优化系统性能;
2.性能测试指标
a:响应时间
网络传输时间: t1 t4
服务器处理时间: t2 t3
吞吐量
每秒钟系统能够处理的请求数、任务数。
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。
单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
& QPS(TPS):每秒钟request/事务 数量
& 并发数: 系统同时处理的request/事务数
& 响应时间: 一般取平均响应时间
QPS(TPS)= 并发数/平均响应时间
并发/并发数/并发用户数
并发:
狭义:同一时间做相同的事情
广义:同一时间做不同事情、混合场景
性能测试:简单的狭义并发、然后再广义的并发,即:先做简单接口性能测试、在做业务性能测试、最后做混合业务场景性能测试
并发数:单位时间内向服务器发起请求的用户数
并发用户数:用于模拟真实用户想服务器发起请求的性能测试虚拟用户数量
系统用户数:只要访问难过系统的用户、肯呢个一次含有一次性访问的用户
在线用户数:当前正在访问的系统用户,不一定有压力
TPS(transaction per second)
每秒钟request/事务 数量
资源利用率
CPU
内存
磁盘
I/O 磁盘的换入换出
3.性能测试种类
性能测试覆盖范围很广,包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等;
负载测试
通过逐步增加系统负载,测试系统性能的变化,并在满足最终确定性能指标的情况下,系统所能承受的最大负载量的测试
负载测试是正常范围的测试
压力测试(强度 测试)
逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试
压力测试可以揭露那些只有在高负载下才会出现bug,如:同步问题、内存泄漏等;
颠峰值测试:属于压力测试一种,他是瞬间将压力加载到最大,测试软件在极限压力下的运行情况;
并发测试
是指通过模拟用户并发访问,测试多用户并发访问同一应用、同一个模块或数据记录时是否存在死锁或者其他性能问题。测试并无标准,只是测试是否出现性能方面问题;
配置测试
是指调整软件系统的软硬件环境,测试各种黄静对系统性能影响,从而找到系统各项资源的最优分配原则。配置测试不改变代码,只改变软硬件配置,例如:安装软件更新数据库,配置更好的Cpu和内存等;
可靠性测试
是指给系统加载一定的业务压力,使其持续运行一短时间 ,测试系统能否稳定运行,由于加载运行时间较长,因此可靠性测试可以测试是否有内存泄漏问题;
容量测试
是指在一定硬件及网络环境下,测试系统所能支持的最大用户量、最大存储量等。容量测试通常与数据库、系统资源有关,用于规划将来需求增长时,对数据库和系统资源的优化;
4.性能测试流程
1,分析性能测试需求
此步骤是整个性能测试基础,测试需求不明确则整个测试过程都毫无意义;在这个阶段,测试人员需要收集相关资料信息、与开发沟通、对整个项目了解,针对性能测试部分进行分析,确定测试目标;
2,制定性能测试计划
整个性能的步骤都按照测试计划执行,其核心内容包括:确定测试环境、确定性能验收指标、设计测试场景、准备测试数据
3,设计性能测试用例
测试用例时根据测试场景为测试准备的数据,测试人员需要在测试中设计出足够多的测试用例以达到最大的测试覆盖;
4,编写测试脚本
测试脚本就是虚拟用户的执行操作;使用脚本省去手动执行的麻烦,并降低错误率;
要求:
选择正确的协议,脚本的协议要与被测软件协议保持一致;
性能测试工具一般可以自动生成测试脚本,测试人员可以手动编写脚本,脚本也可以使用多种语言、
编写脚本也要遵循代码规范,保证代码质量;
5,测试执行及监控
每个阶段测试人员需要按照测试计划执行测试用例,并对测试过程进行严密监控,记录各项数据变化。
测试人员关注点:
性能指标:性能指标的变化,响应时间、吞吐量、并发等
资源占用与释放情况:性能测试时,CPU、内存、磁盘、网络等使用情况,系统停止后,各项资源是否正常释放;
警告信息:软件出现问题时,要有警告信息,测试人员应及时关注;
日志检查:进行性能测试时经常分析系统日志,包括操作日志,数据库日志等
6,运行结果分析
性能测试结束后,需对收集整理测数据并分析,将数据与客户对比数据进行对比,是否满足客户性能要求
7,提交性能测试报告
测试完成需要编写性能测试报告,阐述性能测试的目标、性能测试环境、性能测试用例、脚本使用情况、性能测试结果及性能测试过程中遇到的问题和解决方案。软件会多次性能测试,需数据归档,能及时回归;
5.性能测试工具
loadrunner----VuGen、Controller、Analysis
Jmeter
这里就不再对工具做更多讲述
补充:测试理论
安全测试
补充
1, 压力测试与负载测试两者区别
相同点:都是性能测试
负载测试强调系统正常工作情况下的性能指标
压力测试的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点。