4 A C# load testing program for PostgreSQL using the npgsql data provider.
9 Run parameters are specified in the *App.config* file and the sql transactions
10 to run are read from a separate xml file specified in the *TransactionsFile*
16 **ServerDescription** (text) - A description about the test run
18 **PgConnectionString** (test) - The npgsql connection string
20 **ConnectionRetry** (boolean) - boolean - Whether or not clients that
21 fail to connect should retry (true),
24 **ConnectionPerTransaction** (boolean) - boolean - Whether clients should
25 connect and disconnect for each
26 attempted transaction (true), or keep
27 their connection open (false)
29 **LogFile** (text) - Path to file where verbose details
30 of the test run are logged
32 **CsvLogFile** (text) - Path to file where statistical results
33 of test run are logged
35 **LogLevel** (integer) - Verbosity level of log data logged into
36 the log file specified in the "LogFile"
38 (0 = minimal, 1 = standard, 2 = verbose)
40 **VerboseScreen** (boolean) - Display verbose details of the test
41 to the screen rather than show a summary
43 **Clients** (integer) - Quantity of clients to use for a single
44 test, set to 0 if doing multiple tests.
46 **ClientsScale** (integer) - Set along with "ClientsMax" parameter
47 to run a set of tests with incrementing
49 E.g. ClientsScale = 4 ClientsMax = 16
50 will run 4 tests with 4,8,12 and 16 clients
52 **ClientsMax** (integer) - Maximum quantiy of clients to run the test
53 with as detailed above
55 **Iterations** (integer) - Number of iterations for each client
58 **SleepTime** (integer) - Time for each client to sleep between
59 iterations (milliseconds)
61 **TransactionsFile** (text) - Xml file containing the SQL for each
62 iteration of the client - this can contain
63 multiple transactions.
65 The transactions xml file contains a set of transactions and sql statements to
66 be executed against the database. There's nothing overly intelligent about this
67 file, it is simply a <transactions> root node containing *\<transaction>* and *\<sql>*
68 sub nodes, for which any can have a random attribute assigned to make them be
69 either run or skipped on a random basis.
71 The text *#client_id#* will also be replaced with the integer id of each client
72 thread in the testing program; this can be usefull for identifying individual
73 clients against queries.
76 <transaction random="true">
77 <sql>SELECT 'I am client #client_id#';</sql>
81 <sql random="true">SELECT 'something';</sql>