goku 0.1.1

goku is a HTTP load testing application written in Rust
Documentation
#![feature(test)]

extern crate test;

use goku::attack;
use goku::send_request;
use test::Bencher;

#[bench]
fn attack_bench(b: &mut Bencher) {
    b.iter(|| {
        attack(1, 1, &"127.0.0.1", 8080).unwrap();
    });
}

#[bench]
fn send_request_bench(b: &mut Bencher) {
    let host = format!("{}:{}", "127.0.0.1", "8080");

    let request = format!("GET / HTTP/1.1\nHost: {}\nUser-Agent: goku/0.0.1\n\n", host);
    b.iter(|| {
        async_std::task::block_on(
            async {
                #![allow(unused_must_use)]
                send_request(&host, &request).await;
            },
        )
    });
}

#[bench]
fn attack_bench_50_request_10_concurrency(b: &mut Bencher) {
    b.iter(|| {
        attack(10, 50, &"127.0.0.1", 8080).unwrap();
    });
}

#[bench]
fn attack_bench_when_50_request_1_concurrency(b: &mut Bencher) {
    b.iter(|| {
        attack(1, 50, &"127.0.0.1", 8080).unwrap();
    });
}