在开始学习JMter之前我们需要了解下性能测试的相关概念
1. 什么是性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
2. 性能测试的目的
简单来说就是为了发现性能瓶颈
3. 性能测试的分类(测试范围)
负载测试:通过逐步加压的方法,达到既定的性能阈值的目标。阈值的设定应是小于等于某个值,如:cpu使用率小于等于80%
压力测试:通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态,简单粗暴的解释就是什么条件下能把系统压崩溃
并发测试:在同一时间,多个虚拟用户同时访问一个模块,同一功能,通常的测试方法是设置集合点。
容量测试:通常是指数据库层面的,目标是获取数据库的最佳容量的能力。又称之为容量预估。具体测试方法为在一定的并发用户,不同的基础数据量下,观察数据库的处理能力,即获取数据库的各项性能指标
可靠性测试:又称之为稳定性测试或疲劳测试。是指系统在高压情况下,长时间的运行系统是否稳定。如CPU使用率在80%以上,7*24小时运行,系统是否稳定。
异常测试:又称之为失败测试。是指系统架构方面的测试。如在负载均衡架构中,要测试宕机,节点挂掉等情况系统的反应。
4. 性能测试的工作流程
5.常见系统应用分层架构
6.性能测试指标定义
事务:从客户端发起的一个或者多个请求(这些请求组成一个完整的操作),到客户端接收到从服务端返回的响应
TPS(Transaction Per Second):每秒系统能够处理的事务数
请求响应消息:从客户端发起的一个请求开始,到客户端接收到从服务器返回的响应。整个过程所耗费的时间
事务响应消息:事务可能是一个或者多个请求,事务响应消息主要是针对用户角度而言,比如转账
并发定义:没有严格意义上的并发。并发总有先后,无论差距是1毫秒或者是1微妙,总有一个时间差。所以并发讲的是一个时间范围内,比如1s内。
举例:
- 多用户在系统上进行同一操作,比如双十一时,大家针对同一种商品进行秒杀
- 多用户在系统上进行不同操作,比如双十一时,大家针对不同商品进行秒杀
并发用户数:同一单位时间内对系统发起的请求的用户数量
吞吐量:一次性能测试过程中网络上传输的数据量的总和
点击率:每秒钟用户向服务器提交的请求数。这个指标是web应用程序特有的一个指标,可以想象为每秒钟用户总共在页面上进行多次点击动作。但是需要注意的是一次鼠标单击的操作后,客户端有可能向服务器发送了多次请求
资源使用率:对不同系统资源的使用情况,如CPU,内存,IO
7.性能测试需求分析
1.明确测试指标:即将明确好需要重点关注的测试指标,并且要和研发确认好指标的具体含义
2.明确测试场景:根据系统的具体的业务,明确需要进行性能测试的场景,把资源投入到业务上最核心的和比较容易出现性能问题的场景。
8.如果接触一个新的系统,如何对新系统进行性能测试?
1.跟同行业的软件进行比较,手机同行业产品的相关数据
2.跟产品经理明确业务预期是什么
9.如果是老系统如何进行测试
1.对比以往的用户的使用行为以及用户量。比如双十一的0点,业务会达到一个峰值。
10.性能测试常用的工具
LoadRunner,JMeter