2、这些基本参数填写后仍然时是报错“文件上传上传失败”,找了后端拆吵清开发帮忙定位说是content-type不对,查看request header发现果然是格旅前式不正确,错误的请求中 content-type如下
3、然后恍然大悟发现自己在thread下已经设置了通用的header manager如下,导致content-type格式不正确
4、最后在网上找了这个方法,在http sample的碰笑前后分别添加beanshell前置处理和beanshell后置处理,最后终于解决了问题。
原文链接:https://blog.csdn.net/xingyunpi/java/article/details/77930476
在上传文件的HTTP request sampler下,加一个BeanShell PreProcessor, 将全局的content-type remove掉,就可以了. 脚本:
sampler.getHeaderManager().removeHeaderNamed("Content-Type")
如果接下来的case还想再加回content-type=application/json, 如下:
import org.apache.jmeter.protocol.http.control.Header
sampler.getHeaderManager().add(new Header("Content-Type","application/json"))
其实也没什么区别的,一样的效果。HTTP请求格式告诉我神者们,有两个位置或者说两种方游仿薯式可以为request提供参数:request-line方式与request-body方式。
request-line
request-line方式是指在请求行上通过URI直接提供参大察数。
(1)
我们可以在生成request对象时提供带参数的URI,如:
HttpUriRequest request = new HttpGet(
"http://localhost/index.html?param1=value1&param2=value2")
(2)
另外,HttpClient程序包为我们提供了URIUtils工具类,可以通过它生成带参数的URI,如:
URI uri = URIUtils.createURI("http", "localhost", -1, "/index.html",
"param1=value1&param2=value2", null)
HttpUriRequest request = new HttpGet(uri)
System.out.println(request.getURI())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)