用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”}]”}
- 多个键值对之间用 英文逗号分割, 最后一个键值对,后面没有 逗号
- 键值对 是 无序的
- 用大括号括起来
{}