使用 Jmeter ZK 插件上传失败

Upload failed while using Jmeter ZK Plugin

我目前在尝试使用 zk-plugin 运行 Jmeter 上传文件时遇到问题。在没有 运行 Jmeter 的情况下上传时它工作正常。

它在 ZK 中显示弹出消息:

Upload Aborted : (contentId is required)

Jmeter 内部:

Thread Name: Thread Group 1-1
Sample Start: 2015-04-16 17:35:15 SGT
Load time: 2
Connect Time: 0
Latency: 0
Size in bytes: 2549
Headers size in bytes: 0
Body size in bytes: 2549
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: java.io.FileNotFoundException
Response message: Non HTTP response message: 13 4 2015.txt (The system cannot find the file specified)

Response headers: HTTPSampleResult fields: ContentType: DataEncoding: null

如何解决这个问题?

基本上 ZK 可能 return 不是很有意义的消息,因此可能是导致此问题的不同路由原因。
在下面查看部署组件配置中可能的要点并一一检查:

  1. 首先 - 检查 java.io.tmpdir 指向的目录是否存在。
    如果您使用 Tomcat,默认情况下 java.io.tmpdir 将设置为 $CATALINA_BASE/temp
    查看 catalina.sh 并检查 $CATALINA_TMPDIR 指向的目录是否存在并且应用了相应的权限:

    if [ -z "$CATALINA_TMPDIR" ] ; then
        # Define the java.io.tmpdir to use for Catalina
        CATALINA_TMPDIR="$CATALINA_BASE"/temp
    fi
    . . .
    . . .
    -Dcatalina.base=\"$CATALINA_BASE\" \
    -Dcatalina.home=\"$CATALINA_HOME\" \
    -Djava.io.tmpdir=\"$CATALINA_TMPDIR\" \
    org.apache.catalina.startup.Bootstrap "$@" start
    
  2. WEB-INF/zk.xml: max-upload-size ZK 配置描述符中的值(默认 5120 Kb,应该足够了)。

  3. WEB-INF/web.xml:部署描述符中的 max-file-sizemax-request-size 值:

    <multipart-config>
        <!-- 52MB max -->
        <max-file-size>52428800</max-file-size>
        <max-request-size>52428800</max-request-size>
        <file-size-threshold>0</file-size-threshold>
    </multipart-config>
    
  4. conf/server.xml:连接器部分中的 maxPostSize 值(将由 POST 处理的最大字节数容器FORMURL参数解析):

    <Connector port="80" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443"
        maxPostSize="67589953" />
    

似乎我们只能上传 jmeter/bin 中的文件。我使用 jmeter/bin 中的一些文件上传,但消息消失了。

During recording you need to put the file you want to upload in jmeter/bin folder. This is due to some limitations of browsers which do not transmit the full path.

参考:File upload fails during recording using JMeter,pmpm第一个回答