目录
学习目标
- Jmeter 常用配置元件
- Jmeter 变量及参数化方式
常用配置元件
- HTTP请求默认值
- HTTP消息头管理里
- HTTP Cookie管理器
- HTTP Cache管理器
HTTP请求默认值
- 该组件可以为我们的http请求设置默认值。
- 创建一个测试计划有很多个请求且都是发送到相同的server,只需要添加一个Http request defaults 组件并设置“Server Name or IP”.
- 添加多个http请求会默认使用Http request defaults 组件设置的值。
HTTP消息头管理器
- 帮助测试人员设定JMeter发送的HTTP请求头所包含的信息。
- HTTP信息头中含有User-Agent、content-type、Referer等属性。
- 尽可能放在线程组一级。除非因为某些原因,测试人员系统不同的HTTP请求使用不同的HTTP信息头。
HTTP Cookie管理器
- 管理Test Plan 运行时的所有Cookie。
- HTTPCookie Manager 可以自动存储服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie。
- 用户也可以在HTTP Cookie Manager中手工添加一些Cookie,这些手工添加的Cookie会在发送请求时被自动附加到请求。
HTTP CACHE管理器
- 一般指的是浏览器的缓存。
- 为Test Plan增加该属性管理器后,可以用于模拟浏览器的Cache行为,更接近用户的真是行为。
- 如果Test Plan中某个Sampler请求的元素是被缓存的元素,则Test Plan 在运行过程中会直接从Cache中读取元素,这样得到的返回值就会是空。该Sampler设置了断言检查响应体重的指定内容是否存在,该断言就会失败。
参数化
- 参数化是自动化测试脚本的一种常用技巧。
- 简单俩说,参数化的一般用法就是将脚本中的某些输入使用变量来代替,在脚本运行时指定变量的取值范围和规则。
- 这样,脚本在运行时就可以根据需要选取不同的参数值作为输入。
参数化常用方法
- CSV数据空间:CSV Data Set Config
- 用户自定义变量:User Defined Variables
- 函数助手:——Random
使用变量
- 在某个地方引用一个变量的时候,可以通过${变量名}的语法来获取变量的值。
- 如果这个变量没有被定义,则这个式子就会被当做普通的字符串。
- ${变量名}
Jmeter集合点技术
性能测试中的并发
- 并发:指的是系统中正在操作业务的用户,在Jmeter中,称为线程数。
- Jmeter中的各个线程(用户)在进行业务操作中的顺序存在一定的随机性。
集合点
- Jmeter中引入集合点元件,目的是让各个线程(用户)步调一致,对系统进行加压。
- 达到模拟真实并发访问的效果。
- 同步定时器
集合点属性解读-JMETER帮助文档
- Number of Simulated Users to Group by
- 每集合够多少个模拟用户(线程)后发送一次测试请求;
- 如果设置为0,等同于设置为线程组中的线程数;
- 确保设置的值不大于它所在线程组包含的用户数(线程数)--一直集结线程而不发出测试请求,直到超时(如果设置了的话)。
- Timeout in milliseconds---所有用户的集合超时
- 超时时间,即多少毫秒后同时释放已集结的线程,发送测试请求;
- 设置为0,Timer将等待线程数达到了“Number of Simultaneous Users to Group”中设置的值才释放;--永远等待
- 大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间后还没达到“Number of Simultaneous Users to Group”中设置的值,Timer将不再等待,释放已达到的线程。
集合点属性解读--注意事项
- 如果设置Timeout in milliseconds为0,且线程数量无法达到“Number of Simultaneous Users to Group by”中设置的值,那么Test将无线等待,除非手动终止。
- 这个无法达到情况有如下几种:
- 设置的值大于线程数量,这样就永远无法达到了;
- 最后一批线程数不够集合点数目。