X-Git-Url: https://git.8kb.co.uk/?p=postgresql%2Fdblt;a=blobdiff_plain;f=README.md;h=94ebe1f712fe3900950a2415d6ec0d404d170940;hp=f22e5610fc8babdc14cfc6601e051f27a71379a5;hb=5019ca5936e413749df9b483664bc00e5cafbd15;hpb=fde9f7ab6009e48ed05936471f4553afa32adf7e diff --git a/README.md b/README.md index f22e561..94ebe1f 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,85 @@ dblt ==== A C# load testing program for PostgreSQL using the npgsql data provider. + +Usage +----- + +Run parameters are specified in the *App.config* file and the sql transactions +to run are read from a separate xml file specified in the *TransactionsFile* +parameter. + +App.config parameters +--------------------- + +**ServerDescription** (text) - A description about the test run + +**PgConnectionString** (test) - The npgsql connection string + +**ConnectionRetry** (boolean) - boolean - Whether or not clients that + fail to connect should retry (true), + or give up (false) + +**ConnectionPerTransaction** (boolean) - boolean - Whether clients should + connect and disconnect for each + attempted transaction (true), or keep + their connection open (false) + +**LogFile** (text) - Path to file where verbose details + of the test run are logged + +**CsvLogFile** (text) - Path to file where statistical results + of test run are logged + +**LogLevel** (integer) - Verbosity level of log data logged into + the log file specified in the "LogFile" + parameter + (0 = minimal, 1 = standard, 2 = verbose) + +**VerboseScreen** (boolean) - Display verbose details of the test + to the screen rather than show a summary + +**Clients** (integer) - Quantity of clients to use for a single + test, set to 0 if doing multiple tests. + +**ClientsScale** (integer) - Set along with "ClientsMax" parameter + to run a set of tests with incrementing + clients + E.g. ClientsScale = 4 ClientsMax = 16 + will run 4 tests with 4,8,12 and 16 clients + +**ClientsMax** (integer) - Maximum quantiy of clients to run the test + with as detailed above + +**Iterations** (integer) - Number of iterations for each client + to run + +**SleepTime** (integer) - Time for each client to sleep between + iterations (milliseconds) + +**TransactionsFile** (text) - Xml file containing the SQL for each + iteration of the client - this can contain + multiple transactions. + +The transactions xml file contains a set of transactions and sql statements to +be executed against the database. There's nothing overly intelligent about this +file, it is simply a root node containing *\* and *\* +sub nodes, for which any can have a random attribute assigned to make them be +either run or skipped on a random basis. + +The text *#client_id#* will also be replaced with the integer id of each client +thread in the testing program; this can be usefull for identifying individual +clients against queries. + + + + SELECT 'I am client #client_id#'; + SELECT 2; + + + SELECT 'something'; + SELECT 20; + + + +