4 A C# load testing program for SQL Server or 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 **Mode** (text) - mssql for SQL Server, pgsql for PostgreSQL
20 **ConnectionString** (text) - The sql or npgsql connection string
22 **ConnectionRetry** (boolean) - boolean - Whether or not clients that
23 fail to connect should retry (true),
26 **ConnectionPerTransaction** (boolean) - boolean - Whether clients should
27 connect and disconnect for each
28 attempted transaction (true), or keep
29 their connection open (false)
31 **LogFile** (text) - Path to file where verbose details
32 of the test run are logged
34 **CsvLogFile** (text) - Path to file where statistical results
35 of test run are logged
37 **LogLevel** (integer) - Verbosity level of log data logged into
38 the log file specified in the "LogFile"
40 (0 = minimal, 1 = standard, 2 = verbose)
42 **VerboseScreen** (boolean) - Display verbose details of the test
43 to the screen rather than show a summary
45 **Clients** (integer) - Quantity of clients to use for a single
46 test, set to 0 if doing multiple tests.
48 **ClientsScale** (integer) - Set along with "ClientsMax" parameter
49 to run a set of tests with incrementing
51 E.g. ClientsScale = 4 ClientsMax = 16
52 will run 4 tests with 4,8,12 and 16 clients
54 **ClientsMax** (integer) - Maximum quantiy of clients to run the test
55 with as detailed above
57 **Iterations** (integer) - Number of iterations for each client
60 **SleepTime** (integer) - Time for each client to sleep between
61 iterations (milliseconds)
63 **TransactionsFile** (text) - Xml file containing the SQL for each
64 iteration of the client - this can contain
65 multiple transactions.
67 The transactions xml file contains a set of transactions and sql statements to
68 be executed against the database. There's nothing overly intelligent about this
69 file, it is simply a <transactions> root node containing *\<transaction>* and *\<sql>*
70 sub nodes, for which any can have a random attribute assigned to make them be
71 either run or skipped on a random basis.
73 The text *#client_id#* will also be replaced with the integer id of each client
74 thread in the testing program; this can be useful for identifying individual
75 clients against queries.
78 <transaction random="true">
79 <sql>SELECT 'I am client #client_id#';</sql>
83 <sql random="true">SELECT 'something';</sql>