[pull] master from fcsonline:master#38
Open
pull[bot] wants to merge 77 commits into
Open
Conversation
It is really interesting to hold the request status codes to be able to interact with them. For example assertion but it can be nice for other flow paths.
Fix clippy offenses in the source code and enable GH action check for clippy.
Allows to pick a subset of items from with_items. Pick limits the amount of requests done instead of doing one for each item. When used in conjunction with shuffle it can be used to send one request with a random item from the list. Resolves #131
Bumps [qs](https://github.com/ljharb/qs) from 6.5.1 to 6.11.0. - [Release notes](https://github.com/ljharb/qs/releases) - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](ljharb/qs@v6.5.1...v6.11.0) --- updated-dependencies: - dependency-name: qs dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Added some extra code to cover more cases in the new interpolator mechanism. Also, fixing some clippy offenses too.
It seems that items that were included with the `include` directive and contains tags, they are ignored. Trying to fix this. Issue: #164
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.15.0 to 0.15.5. - [Release notes](https://github.com/rust-lang/hashbrown/releases) - [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md) - [Commits](rust-lang/hashbrown@v0.15.0...v0.15.5) --- updated-dependencies: - dependency-name: hashbrown dependency-version: 0.15.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [hickory-proto](https://github.com/hickory-dns/hickory-dns) from 0.24.1 to 0.24.4. - [Release notes](https://github.com/hickory-dns/hickory-dns/releases) - [Changelog](https://github.com/hickory-dns/hickory-dns/blob/main/CHANGELOG.md) - [Commits](hickory-dns/hickory-dns@v0.24.1...v0.24.4) --- updated-dependencies: - dependency-name: hickory-proto dependency-version: 0.24.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.40.0...tokio-1.43.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.43.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [cookie](https://github.com/jshttp/cookie) to 0.7.2 and updates ancestor dependencies [cookie](https://github.com/jshttp/cookie), [cookie-parser](https://github.com/expressjs/cookie-parser), [express](https://github.com/expressjs/express) and [express-session](https://github.com/expressjs/session). These dependencies need to be updated together. Updates `cookie` from 0.3.1 to 0.7.2 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](jshttp/cookie@v0.3.1...v0.7.2) Updates `cookie-parser` from 1.4.3 to 1.4.7 - [Release notes](https://github.com/expressjs/cookie-parser/releases) - [Changelog](https://github.com/expressjs/cookie-parser/blob/master/HISTORY.md) - [Commits](expressjs/cookie-parser@1.4.3...1.4.7) Updates `express` from 4.18.2 to 4.22.1 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md) - [Commits](expressjs/express@4.18.2...v4.22.1) Updates `express-session` from 1.15.6 to 1.18.2 - [Release notes](https://github.com/expressjs/session/releases) - [Changelog](https://github.com/expressjs/session/blob/master/HISTORY.md) - [Commits](expressjs/session@v1.15.6...v1.18.2) --- updated-dependencies: - dependency-name: cookie dependency-version: 0.7.2 dependency-type: indirect - dependency-name: cookie-parser dependency-version: 1.4.7 dependency-type: direct:production - dependency-name: express dependency-version: 4.22.1 dependency-type: direct:production - dependency-name: express-session dependency-version: 1.18.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.13 to 0.5.15. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.13...crossbeam-channel-0.5.15) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-version: 0.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps every dependency to the latest release, including four that required code changes: - clap 2 -> 4: migrate the builder API (App -> Command, Arg::with_name -> Arg::new, takes_value -> ArgAction, value_of/is_present -> get_one/get_flag). - rand 0.8 -> 0.10: thread_rng() -> rand::rng(). - colored 2 -> 3 and reqwest 0.12 -> 0.13 (drop-in). reqwest 0.13 defaults to rustls, so OpenSSL is no longer needed: the openssl-sys dependency and the `vendored` feature are removed, and the `trust-dns` feature is replaced with its successor `hickory-dns`. The README's OpenSSL build instructions are updated accordingly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- request.rs: replace is_some()/unwrap() with if-let (clippy 1.96's unnecessary_unwrap fires on the newer toolchain CI uses). - release.yml: bump the release toolchain from 1.83.0 to stable; the updated deps pull in edition-2024 crates (e.g. cpufeatures 0.3.0, rust-version 1.85) that 1.83.0 cannot parse. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Runs `npm audit fix` on the example server, resolving all 4 reported advisories (1 high, 3 moderate): - path-to-regexp 0.1.12 -> 0.1.13 (ReDoS, GHSA-37ch-88jc-xwx2) - qs 6.14.0 -> 6.15.2 (DoS, GHSA-w7fw-mjwx-w883 and others) - body-parser 1.20.4 -> 1.20.5, express 4.22.1 -> 4.22.2 `npm audit` now reports 0 vulnerabilities. Only package-lock.json changes; the version ranges in package.json already allowed the fixed releases. Supersedes the Dependabot PRs for qs and path-to-regexp (which only bumped qs to 6.14.2, still within the vulnerable range). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a "Max time per request" line to both the per-task and global statistics blocks. The output previously stopped at the 99.9th percentile, which hides the true worst-case latency. The value is read from the existing hdrhistogram via `max()`, so no extra bookkeeping is needed. Closes #188 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* Migrate to Rust 2024 edition
Bump the package edition from 2021 to 2024. `cargo fix --edition` found
no source migrations were necessary, so the only changes are the edition
field in Cargo.toml and rustfmt's 2024 style-edition import ordering.
Building now requires Rust 1.85+ (the toolchain that stabilized the 2024
edition). CI builds on stable, well past that.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Collapse nested ifs into let-chains for edition 2024
Under edition 2024, clippy's `collapsible_if` (on current stable) flags
`if let X { if cond { .. } }` because it can now be written as a single
let-chain `if let X && cond { .. }`. Apply clippy's machine-applicable
fix across the expandable helpers and tags, keeping behavior identical.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
The .claude/scheduled_tasks.lock file was accidentally committed in #229. It is local Claude Code tooling state, not part of the project. Untrack it and add .claude to .gitignore so it is not re-added. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
#227) drill stopped its timer as soon as the response headers arrived (`client.execute().await`), but reqwest streams the body lazily, so body-transfer time was never measured. The body was only read when a request used `assign`, and even then after the timer had already stopped. Endpoints serving non-trivial bodies (files, large JSON) were reported as completing far faster than they really did. Read the full response body before stopping the timer, so latency now measures time-to-last-byte, matching wrk, k6 and vegeta. Status, headers and cookies are snapshotted into an owned struct before the body stream is consumed. The body is drained one chunk at a time and only buffered when a request uses `assign` (then decoded with the response Content-Type charset, via encoding_rs, as reqwest's `text()` did); otherwise each chunk is dropped as it arrives, so peak memory stays O(chunk) rather than O(body) for large responses. Timing and keep-alive are unchanged -- the body is still read to the last byte. Adds regression tests: a server that delays its body (latency must include the delay) and a 1 MiB non-assign body (drained but not retained). Fixes #74.
…ixes #186) (#232) `index` is only seeded inside with_items / with_items_range / with_items_from_csv / with_items_from_file requests. Referencing it elsewhere panicked (or warned under --relaxed-interpolations) with a generic "Unknown 'index' variable" message that gave no clue about the cause. Detect that specific case and raise a dedicated message explaining the variable's scope and suggesting `iteration` for the current iteration number. Also document the built-in interpolation variables in SYNTAX.md.
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.8 to 0.103.13. - [Release notes](https://github.com/rustls/webpki/releases) - [Commits](rustls/webpki@v/0.103.8...v/0.103.13) --- updated-dependencies: - dependency-name: rustls-webpki dependency-version: 0.103.13 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )