前言
最近好忙呀,项目上线然后紧接着又客户培训了,由于项目有个模块全是走配置的,所以导致问题不断,近期要培训为了保障培训时客户同时操作的情况,所以把我从功能端抽出来做压测了,之前安排了2个同事写压测脚本,我原以为我就过来执行调调脚本就好了,没想到测试铺底数据要我搞,脚本好多页不能复用,崩溃了。算了,还是说问题吧,吐槽了这么多
Jmeter上传图片不成功
流程中有上传图片的接口,请求一直不成功,我记得之前遇到过这个问题然后解决了,可能太久没用又忘了,所以又去查了下百度,然后说是要把请求头的Content-Type删掉,再请求中勾选对POST使用multipart/fom-data
请求过后发现仍然不行,抓包看接口发现看起来是boundary两边看着不一致,然后清空了该请求下的http请求头管理器下的Content-Type,发现还是不行
然后观察请求头跟响应头发现对不上,请求还是用的是Content-Type
看脚本发现是用了个全局的HTTP请求头管理器
所以为了避免HTTP信息头管理器影响到上传接口,要不就给每个请求挂上HTTP信息头管理器,要不就要让这个全局的信息头管理器不影响到上传接口,为了方便肯定是选择第二个,这时候我们需要用到前置处理器,再上传接口处新增一个JSR223前置处理器
输入相关清除Content-Type代码,代码如下:
import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed("Content-Type");
此时请求即可成功,自动会给该请求带上multipart/fom-data方式
结语
好想休息呀!!!!!