http请求的注意事项
在做性能测试时,不管遇到多大的麻烦,写代码时不要使用beanshell
jmeter支持的语言:java,python2.7(不支持python3+),groove,jython,js
http请求的注意事项:
1. http请求协议:http可不写,https必须写
2. 服务器名称或IP:不能有斜杠
3. 端口号:tomcat的默认8080可不写,其他端口号必须写
4. 路径:开头必须加斜杠,且首尾不能有空格
5. http请求取样器的参数:勾选编码后,只作用于url的encoding编码(如url含中文)
6. 内容编码:3处可设置
a. http消息头管理器:json格式请求体一定要在http信息头管理里面设置格式
可设置编码如 Content-Type=json; charset=uft-8;
application/x-www-form-urlencoded:默认表单格式(当请求体不是json时,可默认不写);
b. 内容编码:加utf8,避免乱码,仅作用于请求体
c. 表单格式在参数页签中写内容时,勾选 ”编码“,参数值就会进行 urlencoded 编码,若值中有中文或特殊符号时,必须勾选编码,可能进入服务器内部后乱码,建议都勾选编码
7. response的乱码:是服务器返回的,因为jmeter.properties读取的是操作系统(gbk)的语言,约1085行修改为sampleresult.default.encoding = 开发设置的编码
(gb2312国标编码:支持简体中文,不支持繁体字;big5编码:支持繁体字,不支持简体字;gbk国际编码:支持中文;uft8编码:除数字字母外均支持)
8. 必填字段与非必填字段尽可能都写上
9. 结果树的结果顺序按先收到的响应先显示,并非先请求先显示
自动重定向、跟随重定向
1. 自动重定向:也会重定向,但是不会记录中间的过程,无法提取中间过程中需要的数据
2. 跟随重定向:默认勾选,请求会自动进行跳转到新的地址上,而且会显示重定向的过程,我们也能够提取重定向过程中的数据
后置处理器,可以提取出,跟随重定向过程中的数据
3. 若发生重定向,在查看结果树中会多一个折叠的 +
结果树中:红色 + ,请求方法错误,可能折叠
结果树中:绿色 + ,请求方法正确,可能折叠
使用keepAlive:长连接的标志
现在的接口协议http版本是1.1,默认是长连接(连接建立起来,保持的时间长就是长连接,通过3次握手建立连接)
请求头中含有 Connection: keep-alive,保持通道长时间连接
注意:
长连接建立起来后,会占用发起方1个端口,被测服务器要使用一个连接通道,这个端口数量,就可能是性能的一个瓶颈
(端口有限,windows可以支持理论值6.3w个端口,端口范围1024-65534之间,但windows没有开放这么多端口)
服务器的通道(也称连接池),也可能是性能的一个瓶颈(被测的服务器的通道,要有资源才能创建,不可能无限大)
解决方案:
1. 取消keepAlive勾选,只是延缓了出错的时间
2. 修改系统的端口相关配置(linux/windows操作系统修改)
对post使用multipart / form-data:看起来是表单,但又不是表单
与浏览器兼容的头:useragent
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下