use goose::prelude::*;
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), GooseError> {
GooseAttack::initialize()?
.register_taskset(
taskset!("WebsiteUser")
.set_wait_time(Duration::from_secs(5), Duration::from_secs(15))?
.register_task(task!(website_login).set_on_start())
.register_task(task!(website_index))
.register_task(task!(website_about)),
)
.execute()
.await?
.print();
Ok(())
}
async fn website_login(user: &mut GooseUser) -> GooseTaskResult {
let params = [("username", "test_user"), ("password", "")];
let _goose = user.post_form("/login", ¶ms).await?;
Ok(())
}
async fn website_index(user: &mut GooseUser) -> GooseTaskResult {
let _goose = user.get("/").await?;
Ok(())
}
async fn website_about(user: &mut GooseUser) -> GooseTaskResult {
let _goose = user.get("/about/").await?;
Ok(())
}