jmeter脚本开发
环境搭建
-
用VMware打开项目文件文件
- 编辑虚拟机 VMware的时候,网络一定要唯选择NAT
- 远程工具连接
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6odP23ho-1662193673371)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220903155532064.png)]
启动项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGV3YXxD-1662193673373)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220903155625654.png)]
- 在自己电脑中,用浏览器访问 http://vmserver_ip:8080/app 出现一个登录界面,就可以了
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h3y7nilx-1662193673373)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220903155806140.png)]
- 连接数据库
写脚本注意事项
-
启动项目
-
启动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 端口
- 常规操作: 会ping命令 ping 目标机器的ip地址 ------但是,不一定 成立
- 2、服务是否启动
- 1、jmeter机器与被测服务器网络不通
- connection refuse: 网络不通
- 请求体中
- URL中 %20 这个是 空格进行了 urlencoded编码之后的结果
- URL地址中有一些特殊符号或非英文、数字,都会被 urlencoded
- 查看结果树中显示的顺序: ** 先收到结果先显示**
- jmeter取样器的执行顺序: 从上往下执行
- 查看结果树,默认显示 数量
- 查看具体某条结果,出现 jmeter无响应情况
- 接口响应的数据量过大(rspbody)
- 查看具体某条结果,出现 jmeter无响应情况
-
http取样器注意事项:
- 协议: 如果是https协议 就要写
- 服务器名称或ip: 不能带有/
- 请求方法: 一定要看请求接口的请求方法
- 如果方法选错了, 可能有三种情况出现
- 1、错误
- 2、依然成功
- 3、查看结果树显示率色,但是 有一个+号, 做了重定向
- 如果方法选错了, 可能有三种情况出现
- 路径:
- 注意空格,不要有空格
- 内容编码: 只作用请求 utf-8
- 控制请求编码有3个地方:
- 内容编码
- 消息头管理器 Content-Type值中 添加 ;charset=utf-8
- 参数体
- value中 为 中文或特殊符号的时候,就一定要勾选 编码
- 控制请求编码有3个地方:
- 响应编码
- 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
自动重定向:
跟随重定向:
为 json格式, 就一定要写 Content-Type application/json
自动重定向:
跟随重定向:
默认 自动重定向:只针对GET、Head请求;可以自动跳转到最终页面,但是jmeter不记录重定向过 程,查看结果树中无法找到重定向过程内容,无法做关联 跟随重定向:默认选中;响应代码3XX 时,自动跳转,jmeter会记录重定向过程,查看结果树中可以看到过程内容,可以做关联 keepalive 现在 请求http协议1.1版本 就是 保持连接 长连接