Jmeter上传文件一直失败

Jmeter上传文件一直失败,第1张

基本的参数为:1、上传文件勾选form-data,这是必须勾选的;文件名称必须写全路径(如果与jmx文件不在同一目录下),否则会报错找不到文件,参数名称写file;mime类必须替填写,因为我是jmeter5.2.1版本,不填写会报错;

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())


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12322891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存