写脚本的注意事项
- 启动项目
cd /opt/apache-tomcat-8.5.56/bin
./startup.sh
- 启动jmeter,打开脚本
- jmeter默认是用1g的内存
- 让我们jmeter,大概能产生 1500-2000左右线程数
- 查看结果树:
- 绿色: 只是代表网络成功,不代表结果就一定符合预期
- 注意点:
- 查看结果树
- 如果出现了红色,请求失败了,失败要查原因,反馈问题
- connection refuse: 网络不通
1、jmeter机器与被测服务器网络不通
- 常规操作: 会ping命令 ping 目标机器的ip地址 ------但是,不一定成立
- 因为,被测服务器,可能禁ping
- 推荐命令:
telnet ip port
- telnet命令,放置了jmeter的机器需要开启telnet服务
- 不通:
- 第1种: 网络不通
- 第2种: 被测机器上没有启用你服务端口
- 在被测机器上执行:
netstat -anp |grep 端口
(例:netstat -anp |grep 8080)2、服务是否启动
- 请求体中
- URL中 %20 这个是 空格进行了 urlencoded编码之后的结果
- URL地址中有一些特殊符号或非英文、数字,都会被 urlencoded
- 查看结果树中显示的顺序: 先收到结果先显示
- jmeter取样器的执行顺序: 从上往下执行
- 查看结果树,默认显示 数量
- 查看具体某条结果,出现 jmeter无响应情况
- 接口响应的数据量过大(rspbody)
- http取样器注意事项:
- 协议: 如果是https协议 就要写
- 服务器名称或ip: 不能带有
/
- 请求方法: 一定要看请求接口的请求方法
![]()
- 如果方法选错了, 可能有三种情况出现
- 1、错误
- 2、依然成功
- 3、查看结果树显示率色,但是 有一个+号, 做了重定向
- 路径:
- 注意空格,不要有空格
- 内容编码: 只作用请求 utf-8
- 控制请求编码有3个地方:
- 内容编码
- 消息头管理器 Content-Type值中 添加 ;charset=utf-8
- 参数体
value中 为 中文或特殊符号的时候,就一定要勾选 编码
- 响应编码
- windows电脑中文编码:GBK
- mac电脑中文编码: utf8
- jmeter工具,会读取系统中文编码,然后,用系统中文编码来解析响应信息
- 请求响应从服务器返回给jmeter,如果里面有中文,这个中文是你项目配置中文编码
- 如果项目配置的中文编码 与 jmeter工具gbk编码 不一致,两个编码不兼容
- 就出现 响应体 乱码了
- 要解决这个问题: 不能改项目编码,也不能改操作系统编码
- 只能改 jmeter的编码 jmeter.properties配置文件 encoding
- 性能测试中,接口参数,为非必传参数,也建议填写,除非互斥参数,才可以少写
- jmeter中,当请求体为参数类型,消息头,会默认为 x-www-form-urlencoded
- 请求体为 参数类型时, 可以不写 消息头Content-Type application/x-www-formurlencoded
- 如果请求体为 json格式, 就一定要写 Content-Type application/json
如果有需要先登录,然后,再去一些事情接口
- 一般有三种: cookie、session、token
- 不管你的接口之间用哪种方式关联,建议都加上 cookie管理器
- 加cookie管理器,不管你cookie有没有特殊配置,你都先加,不要做任何修改,先用
![]()
域名、端口,这些,可以使用 请求默认值 这个元件
- 我们在性能测试中,经常会,先对接 测试环境,来调试脚本
- 然后,我们再切换到 性能测试环境 进行性能测试
- 注意: 在接口功能测试、自动化测试,你可以把所有接口写在1个线程组下面,但是,性能测试,一般来说,都是一个线程组下面放1个接口,进行性能测试
- cookie管理、请求默认值、消息头管理、csv数据文件设置,这些都是 配置元件,配置元件的优先级是最高,是最先被执行
jmeter 参数,默认是不能直接跨线程组的
- jmeter工具,类似你家的一套房子
- 线程组,就是你一套房子中的一间房间,而且房间与房间之间没有直接通道