逻辑控制器
1为什么要学习逻辑控制器?
- Jmeter目前学习的知识无法使用判断语句去控制HTTP取样器
2. 什么是逻辑控制器?
概念:Jmeter逻辑控制器是可以控制采样器(Sampler)的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成
3. 常用逻辑控制器
- 如果(If)控制器
- ForEach控制器
- 循环控制器
3.1 如果(If)控制器
if控制器 当条件成立的时候执行,如果想通过控制器控制请求,必须要把请求放到控制器里面
案例
1. 用户定义的变量name =百度
2. name=百度,线程组执行请求百度;name=京东,线程组执行请求京东;name=淘宝,线程组执行请求淘宝;
解决方案分析
1. 测试计划->线程组->用户自定义变量
2. 线程组->如果(If)控制器
3. 如果(If)控制器->HTTP请求
4. 测试计划-察看结果树
3.2 ForEach控制器
案例
定义变量name_1=java,name_2=ios,name_3=android,
使用ForEach组件读取自定义变量,作为百度请求搜索条件
操作步骤
1. 测试计划->线程组
2. 线程组->用户定义的变量
3. 线程组->ForEach控制器
4. ForEach控制器->HTTP请求
5. 测试计划->察看结果树
forEach难点分析
遍历:
python中:
list = [java,ios,Android]
for i in list:
print(i)
1. 输入前缀变量:输入要遍历变量前缀
2. Start index for loop(exclusive):遍历变量开始的索引(从0开始)
3. End index for loop(inclusive):遍历变量结束的索引(不包括结束索引)
4. 输出变量名称:定义要被引用的变量名称
3.3 循环控制器
案例
使用循环控制器执行(查询学院-所有)接口10次
操作步骤分析
1. 测试计划->线程组
2. 线程组->循环控制器
3. 循环控制器->HTTP请求(查询学院-所有)
4. 测试计划->察看结果树
- 思考:线程组属性可以控制循环次数.循环控制器有什么作用?
循环控制器更灵活,循环控制器可以控制线程组中某个请求的执行次数,而线程组属性的循环次数是控制线程组内所有的请求循环次数.
QPS
1.定义
QPS: Query Per Seconds 每秒查询率
作用:
QPS:可以用来做性能测试或者压力测试
2.案例
一个用户以20qps的频率来访问服务器,持续10秒钟.查看服务器平均响应时间
20(每秒查询率) * 10(持续的时间) = 200(循环的次数)
添加qps组件以固定的频率去访问服务器
一个用户以20qps的频率来访问服务器,持续10秒钟.查看服务器平均响应时间
实现步骤
1.创建测试计划 设置循环次数= 访问频率*持续时间
2.创建线程组
3.添加http请求
4.添加constant througthput timer(常量吞吐定时器)--->设置访问频率
设置访问频率 = qps * 60(因为是以分钟计)
5.添加聚合报告
.property display 组件
debug sample实际查看的是局部变量赋值规则
property display它可以查看全局变量.
6.http mirror server
作用:模拟一个后台服务
7.TestFragment
对一定功能进行封装,封装好功能之后,其他线程组可以直接调用.
在调用的时候,找到模块控制器调用
8.底层协议 TCP和UDP
tcp特点: 都有一个客户端和服务端.客户端和服务端之间要建立一个连接.(如何建立的连接----三次握手),互相可以通信.
传输数据是不丢包
tcp协议默认端口80.
效率稍微低一些.
udp特点: 客户端和服务端之间是不需要建立连接,传输效率更高.在传输数据的时候,有可能会丢包 ,短信 ,QQ离线消息.
ftp基于TCP 默认的端口是20/21 .主要的作用:用来实现文件的传输,效率比较高.
9.实现ftp协议下文件上传和下载
[1]模拟ftp协议下的客户端(jmeter模拟)
[2]模拟ftp协议下的服务端.
10.jmeter的扩展组件(二次开发的组件)
通过扩展组件监听cpu 内存 网络 硬盘等信息,通过图表的方式展示.
扩展组件使用步骤:
1.jmeter本身添加额外的jar包
2. 通过 jp@gc - PerfMon Metrics Collector可以以图表的形式展示信息(cpu 内存 网络 硬盘....)
3. 服务器还需要添加一些额外的jar 获取服务器的信息 把信息返回给客户端
jmeter中元件总结
.元件执行顺序
[1]配置元件
[2]前置处理器
[3]定时器
[4]取样器
[5]后置处理器
[6]断言
[7]监听器
1.元件总结:
[1]配置元件 : csv data set config,http信息头管理器,http请求默认值,jdbc connection configuration, 用户定义的变量
[2]前置处理器: 用户参数
[3]定时器: Synchronizing Timer(模拟同时) Constant Throughput Timer(设置指定频率)
[4]取样器:bean shell sample,debug sample,ftp请求,http请求,jdbc request(向数据库发送sql语句)
[5]后置处理器:xpath和正则
[6]断言:响应断言,长度断言,持续时间断言
[7]监听器:察看结果树,聚合报告,jp@gc - PerfMon Metrics Collector