use swanling::prelude::*;
fn main() -> Result<(), SwanlingError> {
SwanlingAttack::initialize()?
.register_taskset(
taskset!("WebsiteUser")
.set_wait_time(5, 15)?
.register_task(task!(website_login).set_on_start())
.register_task(task!(website_index))
.register_task(task!(website_about)),
)
.execute()?
.print();
Ok(())
}
async fn website_login(user: &SwanlingUser) -> SwanlingTaskResult {
let request_builder = user.swanling_post("/login").await?;
let params = [("username", "test_user"), ("password", "")];
let _swanling = user
.swanling_send(request_builder.form(¶ms), None)
.await?;
Ok(())
}
async fn website_index(user: &SwanlingUser) -> SwanlingTaskResult {
let _swanling = user.get("/").await?;
Ok(())
}
async fn website_about(user: &SwanlingUser) -> SwanlingTaskResult {
let _swanling = user.get("/about/").await?;
Ok(())
}