转子:https://blog.csdn.net/xingyunpi/article/details/77930476
这几天一直在调用JMeter上传文件的一个接口,一直出错,在网上找到一些文章说的注意事项也都注意到了,还是失败,最后终于找到了原因.
1. JMeter在写API的case时,经常会用到全局性header manager, 即 HTTP Header Manager. 这个我在Thread Group下设置了一个content-type=application/json.
2. Thread Group下的HTTP request里,本打算添加一个新的HTTP Header Manager可以覆盖全局的content-type, 然后再设置成form-data就可以了,后来发现,并不是覆盖的关系,而是添加关系.所以一直会报空指针错误,因为文件找到了但是没有被传上去.
3. 在上传文件的HTTP request sampler下,加一个BeanShell PreProcessor, 将全局的content-type remove掉,就可以了. 脚本:
sampler.getHeaderManager().removeHeaderNamed("Content-Type");
4. 如果接下来的case还想再加回content-type=application/json, BeanShell里面代码:
import org.apache.jmeter.protocol.http.control.Header; sampler.getHeaderManager().add(new Header("Content-Type","application/json"));
application/vnd.ms-excel