Skip to content

chibenwa/james-gatling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gatling tests for James server

Build Status

For now, you need to have a running dockerized James JMAP server running on the same computer than your Gatling host. It needs to export the webAdmin over port 8000.

Alternativly you can set up the following system properties:

  • TARGET_HOSTNAME which is set to localhost by default

  • SMTP_PORT which is set to 25 by default

  • SMTP_SSL_PORT which is set to 465 by default

  • JMAP_PORT which is set to 1080 by default

  • JMAP_PROTOCOL which is set to http by default (you can use https instead for example)

  • WEBADMIN_PORT which is set to 8000 by default

  • WEBADMIN_PROTOCOL which is set to http by default (you can use https instead for example)

In some cases you could want to specify target hostname per protocol, the following properties can help you: * SMTP_TARGET_HOSTNAME which is set to TARGET_HOSTNAME by default * JMAP_TARGET_HOSTNAME which is set to TARGET_HOSTNAME by default * IMAP_SERVER_HOSTNAME which is set to TARGET_HOSTNAME by default * WEBADMIN_SERVER_HOSTNAME which is set to TARGET_HOSTNAME by default

You can run all the simulations via sbt :

bash
$ sbt
 > gatling:test

Run a specific simulation via sbt :

bash
$ sbt
 > gatling:testOnly SIMULATION_FQDN

Available simulations

JMAP draft

JmapAuthenticationSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapAuthenticationSimulation

Authenticate 10 JMAP users, one time. Demonstrate user auto-provisioning through James WebAdmin server.

JmapSendMessagesSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapSendMessagesSimulation

Authenticate 100 JMAP users, one time. Then they all retrieve their mailboxes, and then sends messages 360 messages each to other recipients.

JmapGetMailboxesSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapGetMailboxesSimulation

Authenticate 200 JMAP users, one time. Then they all retrieve 360 times their mailboxes each.

JmapGetMessageListSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapGetMessageListSimulation

Authenticate 100 JMAP users, one time. Then they all retrieve their system mailboxes. Then they send each other 10 mails each at random. Then wait 30 seconds for mails to be delivered. Finally they retrieve 250 times each their mails list using GetMessagesList.

JmapGetMessagesSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapGetMessagesSimulation

Authenticate 100 JMAP users, one time. Then they all retrieve their system mailboxes. Then they send each other 10 mails each at random. Then wait 30 seconds for mails to be delivered. They retrieve their mails list using GetMessagesList. Then they retrieve their mails 250 times, at random.

JmapMessageUpdateSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.draft.JmapMessageUpdateSimulation

Authenticate 100 JMAP users, one time. Then they all retrieve their system mailboxes. Then they send each other 10 mails each at random. Then wait 30 seconds for mails to be delivered. They retrieve their mails list using GetMessagesList. Then they update their mail 250 times with the following properties :.

  • 70% mark mails as READ

  • 20% mark mails as ANSWERED

  • 10% mark mails as FLAGGED

JMAP RFC-8621

MailboxGetSimulation

FQDN :

scala
org.apache.james.gatling.simulation.jmap.rfc8621.MailboxGetSimulation

Authenticate 200 JMAP users, one time. Then they all retrieve 360 times their mailboxes each.

SMTP

SmtpNoAuthenticationNoEncryptionMixedBodySimulation

FQDN :

scala
org.apache.james.gatling.simulation.smtp.SmtpNoAuthenticationNoEncryptionMixedBodySimulation

Create 100 users, one time. Then they all send mails to their self, every seconds, using SMTP, without encryption and without authentication.

About

Gatling tests for James email server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 100.0%