性能测试之Jmeter元件
1.性能测试的本质
性能测试的定义
- 基于协议模拟用户发请求,对服务器形成一定的负载,来测试服务器的性能指标是否满足用户(产品&公司)的需求。
关注点
- 时间性能
- 空间性能
与界面无关
2.性能测试分类
负载测试
- 在需要测试的系统上面,不断施加压力,一直到性能指标达到极限。如:响应时间超过预定指标。如:CPU超过预定的指标。如:内存超过预定指标。
性能测试
- 特定的状态下,测试系统的状态。如:特定的时间中午12左右。晚上10点左右。
压力测试
- 被测试的系统在一定的饱和状态下。如:CPU,内存和使用情况下。系统能够处理的能力,以及系统是否会出现BUG或者缺陷。
并发测试
- 模拟用户访问,多用户并发访问(或同一时间段)同一个系统(同一模块)是否出现性能问题。
可靠性测试
- 系统加载到一定的压力下,持续运行一段时间,以此测试系统的稳定性。
3.性能测试指标
- 响应时间
- 并发(并发数,并发用户数)
- TPS(每秒处理通过的事物数)
- 吞吐量/吞吐率(事务/s, Kb/s)
- 资源利用率: cpu利用率(不允许超过80%;队列长度),内存利用率(80%;页交换频率),带宽利用率
PS:具体的还是按照公司的性能测试指标去做的,因为每家公司的指标都不一样,SO这里我就不多做解释了!!!
4.性能测试工具
- loadrunner
-
特点
1.工业化的性能测试工具,能支持大量用户,提供详细的报表来提供测试分析的数据
2.支持的协议多
3.使用c语言来编写的 -
优点
1.支持用户量大(以万为单位)
2.提供精确的报表
3.支持IP欺骗 -
缺点
1.收费
2.体积大
3.无法控制
-
- jmeter
-
优点
1.开源免费
2.体积小
3.有丰富的第三方插件 -
缺点
1.不支持IP欺骗
2.报表的精度比loadrunner差
-
jmeter元件及基本作用域
-
基本元件
- 线程组: 模拟用户的
- 配置元件: 进行测试环境与测试数据的初始化. 类似于自动化脚本中的SetUp
- 前置处理器: 对要发送的请求预处理. 类似于自动化脚本中的参数化
- 取样器: 往服务器发送请求. 类似于自动化脚本中的发送请求的代码
- 后置处理器: 对收到的服务器的响应进行数据提取. 类似于自动化脚本中获取响应中特定字段的语句
- 断言: 将收到的响应结果与预期结果做对比. 类似于自动化脚本中的断言
- 监听器: 查看测试脚本运行的结果和日志 类似于自动化脚本中的测试报告
- 定时器: 等待一段时间. 类似于自动化脚本中的sleep
- 测试片段: 封装基本功能,不能单独执行,需要通过脚本调用才能执行. 类似于自动化脚本中封装的函数
-
元件作用域
- 核心: 根据测试计划中的树形结果的福子节点来确定的
- 原则
- 取样器是没有作用域的
- 逻辑控制器: 只针对其子节点下的所有元件有效
-
其他元件
-
如果其父节点是取样器,只针对父节点(取样器)有效
-
如果其父节点是非取样器,针对父节点下的所有子节点及节点的子节点有效
3.元件执行顺序
1.顺序: 配置元件,前置处理器,定时器,取样器,后置处理器,断言,监听器
2.注意:
1.配置元件,前置处理器,后置处理器都需要依赖取样器才能执行
2.在同一个作用域下,相同类型元件的执行顺序是从上到下顺序执行
-
jmeter线程组的特点
-
介绍: 通过配置线程组中的线程数来模拟用户. 线程数是用户数,线程组就是用户组</