我尝试使用端口8888在JMeter中记录文件上载,但是当使用JMeter作为代理(记录控制器和HTTP(S)测试脚本记录器)时,文件无法上传。我还尝试通过选择“开始”并查看我刚刚在View Results Tree监听器中记录的内容,在JMeter中运行它。当我以这种方式运行时,我在View Results Tree监听器中收到了500错误的文件上传行。
所以,我在执行文件上传时运行了Charles网络代理,看看是否发生了同样的事情。它没。我能够在同一个端口8888上成功上传通过Charles网络代理的文件。
此外,我取出所有代理并成功上传文件。
只有当我使用JMeter作为代理时才会在上传文件时出现问题。
在JMeter中,在第一次运行它之后没有任何更改,然后我尝试更改许多设置,如实现,内容编码,浏览器可驻留标题,检索所有嵌入资源,以及许多其他设置,看看这是否会有所帮助,但它确实不。
所以,我的直觉告诉我,有一个设置设置不正确。
我发现这篇文章谈到在HTTP请求默认值中更改使用“Java”。 (Unable to upload image/file when using Jmeter HTTP Proxy server)当我尝试这个时,这对我没有帮助。 我发现这篇文章还提到了一些其他类型的东西(Unable to record an upload file scenario in JMeter though it is possible by manual effort with specific browser settings)。我确实检查了查尔斯的标题,它们看起来一样。
有什么想法吗?
=============编辑下面是添加测试计划屏幕截图===============
答案 0 :(得分:4)
在录制过程中,您需要将要上传的文件放在jmeter / bin文件夹中。
这是由于浏览器的某些限制导致无法传输完整路径。
答案 1 :(得分:0)
所以,显然,我必须从" Path"中删除参数。将它们移动到"使用请求发送参数:"对于我有500错误的行(我上面附加的屏幕截图中突出显示的行)。
总之,这是发生的事情。当我使用录音控制器和HTTP(S)测试脚本录音机使用JMeter录制文件上传时,JMeter已将所有参数放入"路径" JMeter为我录制的许多线路上都有我的领域。我甚至没有想过JMeter自动为我做了什么。所以,在我删除除" /"之外的所有文字之后在"路径"字段并在"发送参数下一次添加一个参数",我收到了" 200"在给我问题的那一行的状态代码。我也进入了所有其他行并对参数进行了相同的更改。我仍然不确定文件上传是否真的有效,但我现在并不关心,因为我确实得到了#34; 200"在给我一个问题的线上。这足以让我继续前进......: - )。