Ramp-up还必须⾜够短,保证最后⼀个线程在第⼀个线程完成之前开始运⾏
Ramp-up需要设置⾜够⻓的时间来避免在测试刚开始时⼯作量过⼤
如何确定⼀个合理的ramp-up period ⾸先,让初始点击率接近平均点击率,前提是确定合理的访问量
初始的 ramp-up period = 平均点击率= 总线程/点击率;假如线程数 =100,点击率=10次/s,则ramp-up period = 100/10 = 10s
TPS 总的完成请求数 = 线程总数 * 循环次数
平均TPS = 总请求数 / 线程运⾏总时间
实际的TPS是由服务器决定的,因为它是衡量服务器处理能⼒的性能 指标
⽤户定义的变量 这⾥⽤户添加的变量,相当于全局变量, 所有线程组都共⽤
⼀般添加⼀些系统常⽤的配置
⼀般不建议在测试计划上添加变量,因为不⽅便启⽤(disable)和 禁⽤(enable)
逻辑控制器的简介 逻辑控制器可以⾃定义决定发送请求的时机的逻辑
还可以更改其⼦元件的请求的顺序
逻辑控制器可以组合使⽤,然后获取不同的结果
线程组下不同组件的执⾏优先级/顺序
1. 配置元件、监听器
2. 前置处理器
3. 定时器
4. 逻辑控制器
5. 取样器
6. 后置处理器
7. 断⾔
使⽤定时器时 可以在取样器下添加定时器,这样定时器只会作⽤于当前取样器
也可以在线程组下添加多个定时器,统计定时器的总和,然后作⽤于线程组下的所有取样器
断⾔的介绍 可以断⾔服务器的响应内容
在性能测试脚本中使⽤断⾔,⼀般是为了调试脚本
在接⼝⾃动化测试中使⽤断⾔,⼀般是为了严谨的校验接⼝响应内容 是否符合预期
性能测试中是否应该使⽤断⾔
⼤多数情况下不可以使⽤断⾔,因为断⾔不仅会增加响应时间,拉低最终的结果值,还会占⽤系统资源
配置元件介绍 配置元件和取样器的关系⼗分紧密
⽐如说常⽤的: HTTP默认值,设置数据库连接, FTP连接等
⽤户⾃定义变量 ⽤户⾃定义变量在测试计划运⾏后,是全局⽣效的且只⽣成⼀次,它 不是动态⽣成的;从测试结果可以看到,即使变量的值是随机数(Random),不同⽤户数循环多次,拿到的⽤户⾃定义变量值都是⼀ 样的
拓展:如果想要每次⽤户⾃定义变量的值是动态⽣成的,可以使⽤前置处理器-⽤户参数
数据库
Jmeter系列(30) - 详解 JDBC Request - ⼩菠萝测试笔记 - 博客园 (cnblogs.com)
Jmeter系列( 31) - 获取并使⽤ JDBC Request 返回的数据 - ⼩菠萝测试笔 记 - 博客园 (cnblogs.com)
CSV跨平台 ${P(user.dir,)}${P(file.separator,)}test.txt 可以根 据不同的系统,不同的 Jmeter 安装路径,⾃动获取 Jmeter 路径,然后再获取不同系统下的⽂件路径分隔符,最后加上⽂件名称拼成⽂件路径
这样就可以解决使⽤ CSV 数据⽂件做参数化时,跨平台导致路径不 ⼀致的问题
重点前提:CSV ⽂件放在 Jmeter 的 bin ⽬录下,且通过 bin ⽬录运 ⾏ Jmeter
ForEach ForEach 控制器⼀般和⽤户⾃定义变量/JDBC结果变量⼀起使⽤,⽤ 于可以遍历读取相关的返回值
该控制器下的 Samplers 和控制器都会被执⾏⼀次或多次,每次读取 不同的变量值
ForEach 控制器和正则提取器是个好搭档,因为正则提取出来的变量 值会⽤ 分隔,⽽ ForEach 可以省略