Hey all,

I am using Apache JMeter 2.7 to load test Liferay. One such test I am creating 
involves dynamically generating files and uploading them to Liferay's Document 
and Media portlet. The problem I'm having has nothing to do with Liferay 
though...I know this because I can upload a document if I type the exact path 
into the "file path" box of "Send Files With the Request" in an HTTP request. 
This is not how I need the test to run.

I want the test to run in such a way that I generate a unique file each loop of 
the test with a different UUID for the file name(I do so in a BeanShell 
PreProcessor and it does as I want). I have a user defined variable FILENAME 
that I use to store the file name. In the HTTP Request, for the file path I use 
the path "C:\Installs\Apache Jmeter\apache-jmeter-2.7\bin\${FILENAME}" but 
JMeter does not process the variable. When I view the Results Tree, I see the 
error:

java.io.FileNotFoundException: C:\Installs\Apache 
Jmeter\apache-jmeter-2.7\bin\${FILENAME} (The system cannot find the file 
specified)

Yet, if I hard code the file path(for example ...\bin\doc.txt) and use 
${FILENAME} as the value for the title of the document(a parameter I send in 
the HTTP Request), the document(doc.txt) uploads to the portlet with the string 
value of FILENAME as the title. This lets me know the right string is stored in 
the variable FILENAME. From this, I deduce that JMeter simply does not replace 
variables in the file path for sending files in an HTTP Request. If I am 
incorrect in this conclusion, please let me know how to fix whatever error I 
have. Has anyone else had this problem?

I am currently trying to create a work around by adding a BeanShell 
PreProcessor to this http request that would dynamically update the filepath 
with the variable name. I would need to set some variable = 
vars.get("FILENAME"). Anyone know how to proceed from here to set the HTTP file 
path programmatically? I'm looking in the API 
http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.html
 for the answer. Any help would be much appreciated because I am completely 
stumped right now.

I've tried making this PreProcessor myself, but it does not work:

            HTTPFileArg file = new HTTPFileArg("C:\Installs\Apache 
Jmeter\apache-jmeter-2.7\bin\doc.txt", "_20_file", "text/plain");

sampler.setHTTPFiles(file);



I've seen similar questions but none of the answer helped me and I haven't ever 
seen someone do what I want to do programmatically.

Thanks,

Will Henry

Reply via email to