用jmeter写脚本
- 修改jmeter的语言为中文:
- 临时修改: 菜单栏 options > choose language > chinese 只对当前启动jmeter有效,关闭jmeter之后又会被还原。
永久修改: 配置文件 jmeter.properties
jmeter是用java语言开发,java语言中,经常看到用 xxx.properties 结尾的文件,都是它的属性配置
propeties文件,可以用 记事本 打开
用 # 开头 注释
所有 key=value 就是 属性键值对
添加 language=zh_CN 前面不要 # 保存文件
重启jmeter 才生效
所有的属性文件被改变之后,都需要重启才生效
jmeter启动的时候,是会先去加载 properties的属性配置文件
用 jmeter.bat jmeter.sh jmeter 这个命令启动的jmeter,是图形界面
图形界面 GUI: 仅仅用于编写和调试脚本
真正做性能测试,不用 图形界面, 用 CLI 无图形界面模式
日常使用图形界面工具,我们习惯从菜单中 找功能,但是jmeter不一样,菜单中的功能很有限,jmeter的主要功能都是在右键里面
快捷工具栏
帮助: 打开的是官方的帮助, 官方的帮助,只保留了最新的一份。 我们的jmeter用的是5.1.1,不是最新版本,所以,这个官方帮助 与 我们用的软件有差异。
离线帮助:
docs: jmeter-api 接口文档, 主要是用于jmeter二次开发使用
printable_docs: 用浏览器打开 index.html 就是 jmeter的离线使用文档
建议大家,多去看这个文档
不同的版本,这个地方有差异。
以后,在工作中,遇到问题,要反馈问题的时候,你们截图,要包括这个地方。
截图一定要截 jmeter 整个图像,不要截一小段一小段
时间: 执行测试的时长
黄色三角形后面的数字: 有红色的数字,说明 工具出错
1、工具本身
2、你的脚本不正常运行,导致工具出错
点击黄色三角形,可以打开 logcat 面板,看到jmeter的运行日志
- 出现红色数字,我们就会去点击
- 0/0: 后面的数字,是说jmeter将启动多少个线程数(性能测试); 前面的数字,说当前启动运行的线程
左侧脚本结构树
测试计划:脚本的根 在它上面右键去添加其他功能
线程(用户) -------添加组 (进行性能测试时,设计性能场景的)
setup
teardown
线程组: 挂载 真正要执行的请求
取样器:
取样器是根据协议来区分
要写请求,就是 填元件中的空
只有添加了线程组才会在右键中出现取样器
配置元件:为所有取样器做基础配置
- 它是所有元件中,最先被执行
(在jmeter中的优先级是最高的)
- csv数据文件设置
写写http脚本
服务器ip或域名(二选一,必写一种)
端口, tomcat的默认端口 8080
没有填端口,端口就是: 80
请求方法和路径
1、接口文档
2、swagger 现在项目很容易 swagger集成
3、抓包 f12 、fiddler、 tcpdump
录制?
可以录制,但是,性能测试中,千万不要讲 录制
录制的时候,会带有很多 干扰
消息体数据
json
请求体为json,就一定要添加消息头管理器,一定要写上 Content-Type
application/json
监听器:对我们的结果进行监听
不同的监听器就是丛不同的维度来监听我们的同一对象
查看结果树
红色: 红色只是代表失败
Response-code: 4xx 5xx
绿色: 绿色 只是说明 网络请求成功
Response-code: 1xx 2xx 3xx
逻辑控制器: 逻辑控制请求
添加逻辑控制器,一定要有 取样器,才会生效事物控制仅一次控制
前置处理器: 执行请求前要准备事情
用户参数
后置处理器: 执行结果来进行处理
json提取器
正则提取器
json
键值对的结构"key":value,key是用双引号的,value是否使用双引号不确定
value 为数字类型:不需要双引号
数字类型: 整型int、 float
value 为字符串类型:需要双引号
字符串: string(char、varchar)
value也可以是 数组类型 {“key”:[{“key2”:“value2”}]}
有一种特殊情况不是数组 {“key”: “[{“key2”:“value2”}]”}
多个键值对之间用 英文逗号分割, 最后一个键值对,后面没有 逗号
键值对 是 无序的
用大括号括起来{}