This is a simple command line utility that will upload and optionally download randomly generated files of a specified size to an Azure Blob Storage account. Blobs are automatically deleted once the test has been performed.
Upload and download times will be printed to the console in a CSV format for consumption in Microsoft Excel.
Example (in powershell, printing to console and file):
AzureBlobStoreTester.exe --count=10 --accountName=(blob store account name) --accessKey=(blob store access key) --fileSize=5242880B --verify=true --delay=1000 | Tee-Object (output_file.csv)
This will upload a randonly generated 5 megabyte file 10 times, with a 1 second delay between uploads. It will also verify that the file has been successfully uploaded by downloading the file and comparing the contents using a SHA265 hash sum.
--accountName=(string) : The name of the blob storage account to use (mandatory)
--accessKey=(string) : The access key for the blob storage account to use (mandatory)
--fileSize=(n)[G|M|K|B]: The size of the random file to generate. Must end with a G (Gigabyte), M (Megabyte), K (Kilobyte) or B (Byte). (shortcut for setting --fileSizeMax and --fileSizeMin to the same value.)
--fileSizeMax=(n)[G|M|K|B]: The maximum size of the random file to generate. Must end with a G (Gigabyte), M (Megabyte), K (Kilobyte) or B (Byte) (optional, defaults to 1024 bytes)
--fileSizeMin=(n)[G|M|K|B]: The minimum size of the random file to generate. Must end with a G (Gigabyte), M (Megabyte), K (Kilobyte) or B (Byte) (optional, defaults to 1024 bytes)
--count=(n): The number of times to perform the test (optional, defaults to 1)
--delay=(n): The time to wait between runs of the test in milliseconds (optional, defaults to 30,000)
--containerName=(string) : The name of the container to store the blobs in (optional, defaults to "blobtest")
--useHttps=(true|false) : Whether to use HTTPS for transfers (optional, defaults to true)
--verify=(true | false) : Whether to download the file and verify it against the uploaded data. (optional, defaults to true)
With --verify=true --fileSize=1048576B --delay=1000 and --useHttps=true
| RUN_NUMBER | UPLOAD_START_TIME | UPLOAD_END_TIME | UPLOAD_TIME(ms) | DOWNLOAD_START_TIME | DOWNLOAD_END_TIME | DOWNLOAD_TIME(ms) | VERIFIED | FILE_SIZE |
|---|---|---|---|---|---|---|---|---|
| 1 | 02/08/2014 16:46:00 | 02/08/2014 16:46:12 | 950 | 02/08/2014 16:46:12 | 02/08/2014 16:46:14 | 842 | True | 1048576 |
| 2 | 02/08/2014 16:46:15 | 02/08/2014 16:46:26 | 386 | 02/08/2014 16:46:26 | 02/08/2014 16:46:33 | 413 | True | 1048576 |
| 3 | 02/08/2014 16:46:34 | 02/08/2014 16:46:45 | 700 | 02/08/2014 16:46:45 | 02/08/2014 16:46:49 | 128 | True | 1048576 |
| 4 | 02/08/2014 16:46:50 | 02/08/2014 16:47:02 | 409 | 02/08/2014 16:47:02 | 02/08/2014 16:47:06 | 593 | True | 1048576 |
| 5 | 02/08/2014 16:47:08 | 02/08/2014 16:47:18 | 867 | 02/08/2014 16:47:18 | 02/08/2014 16:47:22 | 905 | True | 1048576 |
With --verify=false --fileSize=1048576B and --useHttps=true
| RUN_NUMBER | UPLOAD_START_TIME | UPLOAD_END_TIME | UPLOAD_TIME(ms) | DOWNLOAD_START_TIME | DOWNLOAD_END_TIME | DOWNLOAD_TIME(ms) | VERIFIED | FILE_SIZE |
|---|---|---|---|---|---|---|---|---|
| 1 | 02/08/2014 16:47:42 | 02/08/2014 16:47:54 | 994 | N/A | N/A | N/A | N/A | 1048576 |
| 2 | 02/08/2014 16:47:56 | 02/08/2014 16:48:06 | 514 | N/A | N/A | N/A | N/A | 1048576 |
| 3 | 02/08/2014 16:48:08 | 02/08/2014 16:48:18 | 532 | N/A | N/A | N/A | N/A | 1048576 |
| 4 | 02/08/2014 16:48:19 | 02/08/2014 16:48:31 | 309 | N/A | N/A | N/A | N/A | 1048576 |
| 5 | 02/08/2014 16:48:32 | 02/08/2014 16:48:43 | 663 | N/A | N/A | N/A | N/A | 1048576 |