本章内容:1、什么是性能测试 2、性能测试评估指标 3、性能测试工具 4、性能测试流程 5、LoadRunner性能测试解决方案 6、常见协议
1、性能测试:在一定负载的情况下,被测系统的响应时间、吞吐率、资源利用率是否满足性能需求。
2、性能测试评估指标:响应时间、吞吐率、资源利用率等
响应时间:响应时间是从开始到完成某项工作所需时间的度量。通常是从客户方测量响应时间,响应时间通常随负载的增加而增加。
不是一个系统的响应时间 是一个综合的响应时间(包括登录、搜索等)
吞吐量:随着负载的增加,吞吐量往往增长到一个峰值后,然后下降,队列变长,在如客户/服务器这样的端到端系统中,吞吐量依赖于每个部件的运行。系统中最慢的点决定了整个系统的吞吐率。
吞吐率:通常用来指单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量。是衡量网络性能的重要指标。
服务器资源占用:
OS(操作系统资源):CPU、内存、磁盘IO、交换空间(虚拟内存)
服务器资源:Mysql\Tomcat (连接数、服务器的内存使用情况)
3、常用的性能测试工具:
Jmeter(开源)、ab(apache)、LoadRunner(HP)
4、性能测试流程
制定性能测试目标、选择性能测试工具、设计性能测试、监控分析、性能调优
5、LoadRunner性能测试解决方案
Virtual User Generator 录制并回发单个进程
Controller 告诉Generator如何工作 程序、脚本、协议
Controller 的工作内容:
1、找压力测试机(压力机会模拟虚拟用户工作) 2、分配工作(压力机高度,定义并发数) 3、定时间(压力机运行的时间) 4、脚本(VUGEN 虚拟用户生成器) 5、调度(让压力机干活—>压力机运行脚本—>对SUT(被测系统)产生负载—> 被测系统内装的monitor(监控器) —>把内容发回到Controller—>DB—>Analysis)
Analysis 结果分析器 (图表和报表比较难分析出问题,如果看不懂图,就相当于没做性能测试) 如果协议不一样,可以导致脚本和结果分析器不同,性能指标会不同
Scenario场景:Controller的工作 场景设计非常关键
6、常见协议
SOCKET协议: 我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
HTTP协议: 1、支持客户/服务器模式; 2、需传送请求方法和路径。请求方法常用的有GET、POST 、HEAD 、PUT。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,因而通信速度很快; 3、服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间; 4、HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
WEBSERVICE协议: 1、使用soap协议得到你想要的东西(不分get和post,只是基于soap协议包装出来的) ; 2、能处理较复杂的数据类型(XML) ; 3、如果需要在后台调用一个其它应用的服务,这个时候,用webSerivice的方式来调用;