-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Labels
help wantedExtra attention is neededExtra attention is needed
Description
I have the following setup ...
pub(crate) async fn transaction1(user: &mut GooseUser) -> TransactionResult {
user.client = Client::builder()
.http1_only()
.trust_dns(true)
.build()
.expect("Client creation failed");
let request_builder = user
.get_request_builder(&GooseMethod::Get, "/endpoint1")?
.version(reqwest::Version::HTTP_11);
let goose_request = GooseRequest::builder()
.set_request_builder(request_builder)
.build();
let validation = &Validate::builder().status(200).build();
let goose = user.request(goose_request).await?;
validate_page(user, goose, validation).await?;
Ok(())
}
pub(crate) async fn transaction2(user: &mut GooseUser) -> TransactionResult {
user.client = Client::builder()
.http1_only()
.trust_dns(true)
.build()
.expect("Client creation failed");
let request_builder = user
.get_request_builder(&GooseMethod::Get, "/endpoint2")?
.version(reqwest::Version::HTTP_11);
let goose_request = GooseRequest::builder()
.set_request_builder(request_builder)
.build();
let validation = &Validate::builder().status(200).build();
let goose = user.request(goose_request).await?;
validate_page(user, goose, validation).await?;
Ok(())
}
pub(crate) async fn transaction3(user: &mut GooseUser) -> TransactionResult {
user.client = Client::builder()
.http1_only()
.trust_dns(true)
.build()
.expect("Client creation failed");
let request_builder = user
.get_request_builder(&GooseMethod::Get, "/endpoint3")?
.version(reqwest::Version::HTTP_11);
let goose_request = GooseRequest::builder()
.set_request_builder(request_builder)
.build();
let validation = &Validate::builder().status(200).build();
let goose = user.request(goose_request).await?;
validate_page(user, goose, validation).await?;
Ok(())
}
#[tokio::main]
async fn main() -> Result<(), GooseError> {
GooseAttack::initialize()?
.register_scenario(
scenario!("scenario1").register_transaction(transaction!(transaction1).set_name("tx1")),
)
.register_scenario(
scenario!("scenario2")
.register_transaction(transaction!(transaction2).set_name("tx2"))
.register_transaction(transaction!(transaction2).set_name("tx3"))
)
.execute()
.await?;
Ok(())
}I have 5 scenarios with a total of some 30 transactions. When I build the binary:
$ cargo build --release --target=x86_64-unknown-linux-musl
and ship the binary onto a testing machine and run it like this:
./goose-test --users 100 --startup-time 100s --host MY_HOST --report-file=report.html --run-time 2m
It successfully goes through the launching and maintain phase and then pretty much always gets stuck on exiting one of the users:
exiting user 3 from SOME_SCENARIO...
Never finishes and never produces the report. Do you see anything I'm doing wrong, please?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needed