2732
Comment:
|
820
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= IMAP Tester = | = IMAP Server Tester = |
Line 3: | Line 3: |
imaptest was originally written for stress testing [http://www.dovecot.org/ Dovecot] IMAP server. Its primary testing method is still stress testing, but now it also parses the incoming IMAP replies and complains if anything looks broken. | ImapTest is a generic IMAP server compliancy tester that works with all IMAP servers. It supports: |
Line 5: | Line 5: |
== Compiling == | * [:ImapTest/TestFeatures:Stress testing with state tracking]. ImapTest sends random commands to the server and verifies that server's output looks correct. * [:ImapTest/Tests:Command/Reply testing] where it runs a list of predefined tests and verifies that server returns expected output. * [:Benchmarking:Benchmarking] |
Line 7: | Line 9: |
1. Download and compile Dovecot v1.1 sources. imaptest uses its library functions. 1. Get the latest beta from http://dovecot.org/releases/1.1/beta/ 1. Compiling goes the usual way: {{{./configure && make}}} (there's no need for {{{make install}}}) 1. Download http://www.dovecot.org/tools/imaptest.c to Dovecot sources' root directory (i.e. where the {{{configure}}} script exists) 1. imaptest's header comment shows the compile command for gcc, use it or something similar. |
== Table of Contents == |
Line 13: | Line 11: |
You may want to modify the default configuration from #defines at the top of the file. This isn't required, but if you run imaptest often this way you don't have to give the same parameters every time. == Running == The most important parameters (and their defaults) are: * host=127.0.0.1: Host name/IP address where to connect. * port=143: Port what to use. * user=tss: Username template. You can use multiple random users and domains by giving %d in the template. So for example {{{user%d}}} returns user1..user100 and {{{user%d@domain%d.org}}} returns user1..100@domain1..100.org. The 1..100 range is hardcoded to the binary. You can change them from {{{USER_RAND}}} and {{{DOMAIN_RAND}}} defines. * password=pass: Password to use for all users. There's currently no way to use different passwords for different users. * mbox=/home/tss/mail/dovecot-crlf: Path to mbox file where to append messages from. See below for how this is used. Other useful parameters include: * clients=10: Number of simultaneous client connections to use. * secs=n: Run imaptest n seconds and then exit. * box=INBOX: Mailbox to use for testing. INBOX is the default. * copybox=n: When testing COPY command, this specifies the destination mailbox. * seed=n: Seed to use for random generator. Setting this to some specific value makes repeated benchmarks a bit more reliable, because the used commands should be the same then. * disconnect_quit: If a client gets disconnected, quit. Use logout=0 parameter with this one. This is useful when debugging some problem in the server. * no_pipelining: Don't send multiple commands at once to server. Selecting what to test: * <state>=<probability>[,<probability2>]: State probabilities to use. See below. * checkpoint=n: Run a checkpoint every n seconds. See below. * random: Switch randomly between states. * no_tracking: Don't track and complain about IMAP state. Makes it use a bit less CPU. |
* [:ImapTest/Installation:Installation] * [:ImapTest/Running:Running] * [:ImapTest/States:States] that can be used for stress testing * [:ImapTest/Tests:Command/Reply Testing Configuration] * [:ImapTest/TestFeatures:Supported tests] * [:ImapTest/ServerStatus:IMAP Server Compliance Status] * [:ImapTest/Examples:Examples] |
IMAP Server Tester
ImapTest is a generic IMAP server compliancy tester that works with all IMAP servers. It supports:
[:ImapTest/TestFeatures:Stress testing with state tracking]. ImapTest sends random commands to the server and verifies that server's output looks correct.
[:ImapTest/Tests:Command/Reply testing] where it runs a list of predefined tests and verifies that server returns expected output.
[:Benchmarking:Benchmarking]
Table of Contents
[:ImapTest/Installation:Installation]
[:ImapTest/Running:Running]
[:ImapTest/States:States] that can be used for stress testing
[:ImapTest/Tests:Command/Reply Testing Configuration]
[:ImapTest/TestFeatures:Supported tests]
[:ImapTest/ServerStatus:IMAP Server Compliance Status]
[:ImapTest/Examples:Examples]