-
Notifications
You must be signed in to change notification settings - Fork 0
features request selection
Active contributors: Douwe de Vries
Request selection lets users choose which imported requests run and whether traffic is sequential or weighted. The UI state lives in src/app/components/collection-summary/ and src/app/hooks/useRunnerOptions.ts; backend validation and generated k6 behavior live in src-tauri/src/importing/runtime.rs and src-tauri/src/importing/script.rs.
src/app/components/CollectionSummaryCard.tsx
src/app/components/collection-summary/model.ts
src/app/components/collection-summary/useCollectionSummaryState.ts
src/app/hooks/useRunnerOptions.ts
src/app/utils.ts
src-tauri/src/importing/runtime.rs
src-tauri/src/importing/script.rs
| Abstraction | File | Description |
|---|---|---|
CollectionRow |
src/app/components/collection-summary/model.ts |
Folder and request row model for the collection tree |
selectedRequestIds |
src/lib/loadrift/types.ts |
Request IDs sent to validation, smoke tests, and k6 |
requestWeights |
src/lib/loadrift/types.ts |
Per-request weights used by weighted traffic |
TrafficMode |
src/lib/loadrift/types.ts, src-tauri/src/models.rs
|
sequential or weighted
|
useCollectionSummaryState in src/app/components/collection-summary/useCollectionSummaryState.ts builds folder rows, filters by method and search query, tracks collapsed folders, and updates selected IDs. syncSelectedRequestIds and syncRequestWeights in src/app/utils.ts keep selected IDs and weights aligned when a new collection is imported.
graph LR
Collection[Imported requests] --> Rows[Folder/request rows]
Rows --> Filters[Search + method filter]
Filters --> Selection[Selected request IDs]
Selection --> Validation[Backend validation]
Selection --> Script[k6 script env JSON]
Weights[Request weights] --> Validation
Weights --> Script
Sequential mode executes every runnable selected request each k6 iteration. Weighted mode builds a deterministic schedule from positive weights in src-tauri/src/importing/script.rs; weight 0 excludes a request from the weighted pool.
Selection feeds Smoke testing, Results and reporting, and k6 runtime. Advanced k6 scenarios force traffic back to sequential mode in src-tauri/src/k6/process/runtime.rs.
Change tree behavior in src/app/components/collection-summary/model.ts. Change selection synchronization in src/app/utils.ts. Change runtime validation in src-tauri/src/importing/runtime.rs.
| File | Purpose |
|---|---|
src/app/components/collection-summary/model.ts |
Builds folder/request rows and filters requests |
src/app/components/collection-summary/useCollectionSummaryState.ts |
Owns UI selection state |
src/app/hooks/useRunnerOptions.ts |
Stores traffic mode and request weights |
src-tauri/src/importing/runtime.rs |
Validates selection and resolves requests |
src-tauri/src/importing/script.rs |
Executes sequential or weighted request schedules in k6 |