Sometimes it is necessary to parameterize dynamic file upload. The recorded request typically will be a multi-part post (Content-type: multipart/form-data) request where one field contains a value containing the file content. For example, the request will look like this: 

-----------------------------3e04d523481038

Content-Disposition: form-data; name="submittedfile"; filename="recorded.pdf"

Content-Type: application/pdf 

%PDF-1.7

%����

7052 0 obj  

The field "submittedfile" here represents the recorded content of the file. In the course of load testing, you want to replace this content with dynamically selected files with the content of the files available locally on the load testing machine. To do so, create a dataset with a field for storing the paths of such files. Then parameterize the multipart request by replacing the field's value with the recoded file content (in this case, "submittedfile" field) with the dataset.

To parameterize the field with file content, the dataset column data must store the file path.

The path of the file can be in the following format:

  • The full path of the file (ex. c:\myfolder\Document001.pdf). Use this format for local tests.
  • The local path of the file if the file is stored in the local DataFiles directory (ex. \Authorized\Document001.pdf) if the path is in <test directory>\DataFiles\Authorized\Document001.pdf)This is the preferred method for distributed tests (see below)


Note:

The files in the DataFiles directory are copied to all agents before the test starts.


The screenshot below shows an example of parameterizing a recorded pdf file upload.

  • The recorded file will be parameterized with files inside the <test directory>\DataFiles\Authorized folder. Document001.pdf, Document002.pdf, etc...
  • Create a dataset named PDF-Files with a column RelativePath. 
  • Fill the column with relative paths of the pdf files to upload \Authorized folder. Document001.pdf, \Authorized folder. Document002.pdf, etc...

Note:

When parameterizing the multipart file field from a file, the filename and Content-type directives will be parameterized with the filename and content type of that file.

Returning file content

For requests with Content-types other than multipart/form-data, to return the file content in a parameter, perform the following steps:

  1. Create a column with file data paths.

    For files in the DataFiles directory, enter the file name.

  2. Set the File reference column property to the column in step 1.
  3. Set the File encoding algorithm property to UTF8 or Base64 to encode the file content.

Distributed tests

In a distributed test that parameterizes file uploads, the files to upload must be copied to the load agent prior to starting the test. If the dataset uses absolute file paths, then the files to upload must be copied manually to the same path on every load agent before the test starts.

This is a very inefficient method. Instead, it is recommended to copy the files to the local DataFiles directory and use relative paths. Using this approach, StresStimulus will automatically copy the files to upload to every load agent before the test starts.

To create the local DataFiles folder and open it in Windows Explorer, click the Create and open DataFiles folder to parameterize file upload with a relative path button. Copy the files to upload to this folder and reference them by their relative path using "\" + Filename


  • No labels