Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/c1982/bomberman
SMTP Performance and Load Test Tool
https://github.com/c1982/bomberman
golang load load-generator load-test performance performance-analysis performance-test smtp stress
Last synced: 3 months ago
JSON representation
SMTP Performance and Load Test Tool
- Host: GitHub
- URL: https://github.com/c1982/bomberman
- Owner: c1982
- License: mit
- Created: 2018-01-19T18:03:09.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-04-28T22:59:18.000Z (over 4 years ago)
- Last Synced: 2024-06-20T03:42:31.277Z (5 months ago)
- Topics: golang, load, load-generator, load-test, performance, performance-analysis, performance-test, smtp, stress
- Language: Go
- Homepage:
- Size: 2.24 MB
- Stars: 62
- Watchers: 4
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bomberman
SMTP Performance Test Tool[![Build Status](https://travis-ci.org/c1982/bomberman.svg?branch=master)](https://travis-ci.org/c1982/bomberman) [![Go Report Card](https://goreportcard.com/badge/github.com/c1982/bomberman)](https://goreportcard.com/report/github.com/c1982/bomberman)
![Bomberman Logo](https://github.com/c1982/bomberman/blob/master/logo.jpg?raw=true)
## Installation
bomberman requires Go 1.11 or later.
```
$ go get github.com/c1982/bomberman
```or
[download](https://github.com/c1982/bomberman/releases)
## Flags
| Flag | Desc |
| ------------- |-------------|
| host | Remote SMTP server with Port. Default: mail.server.com:25 |
| from | From email address |
| to | To email address|
| subject | Email subject text |
| size | Set email size Kilobytes (1024 Kilobyte = 1Mbyte). Default: 5Kb |
| helo | SMTP client helo name. Default: mail.server.com |
| count | Email message count. Default: 10|
| workers | Thread workers for SMTP client. Default: 10 |
| jobs | Job queue lenght in workers. Default: 10 |
| outbound | Outbound IP address for SMTP client |
| showerror | Print SMTP errors |
| balance | Tool is use all IP address for outbound ip with sequental balance. Defalut: false |## Server Configuration Checklist
* Set SPF value in from email address domain.
* Set PTR record your outbound IP addresses
* Increase ulimit on your server (ulimit -n 10000)## Usage
Send 50 email to mail.server.com:25 50 workers
```
./bomberman -host=mail.server.com:25 [email protected] [email protected] -workers=50 -jobs=50 -count=50 -size=75 -balance
```## Output
```
Bomberman - SMTP Performance Test Tool
--------------------------------------
Message Count : 1022
Message Size : 75K
Error : 168
Start : 2018-10-12 06:42:56.808098931 +0300 EEST m=+0.000932257
End : 2018-10-12 06:43:34.049561955 +0300 EEST m=+37.242392313
Time : 37.241460056sSource IP Stats:
10.0.5.216 : 256
10.0.5.222 : 256
10.0.5.238 : 256
10.0.5.239 : 256Destination IP Stats:
5.4.0.248:25 : 856
SMTP Commands:
DATA (854) : min. 775.377638ms, max. 20.662139316s, med. 8.870254307s
DIAL (1022) : min. 27.323µs, max. 6.000565014s, med. 1.511920428s
HELO (854) : min. 34.061919ms, max. 3.80865823s, med. 343.306129ms
MAIL (854) : min. 42.455906ms, max. 6.150506182s, med. 943.313477ms
RCPT (854) : min. 34.972014ms, max. 3.151397545s, med. 497.683671ms
SUCCESS (854) : min. 1.480909163s, max. 37.223728269s, med. 15.673002296s
TOUCH (854) : min. 112.109537ms, max. 17.759899662s, med. 3.985871341s
```## Features
* Linux/BSD/Windows supported.
* SMTP RFC 5321 support
* Outbount IP selection
* SMTP Command duration min, max, mean metrics
* Multi-thread support
* Workers and Job Queue support
* Balancing outbound ip address automatically
* Set email body size of Kilobyte
* Count and Report destination IP changes
* Count and Report source IP changes## Built With
* [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool
* [net/smtp](https://golang.org/pkg/net/smtp/) - Golang SMTP Package## Author
* **Oğuzhan** - *MaestroPanel Tech Lead* - [c1982](https://github.com/c1982)
## ARO
Cemil and Rıza and Osman ^_^