Is it possible to run stages with only 1 iteration per VU

I am simulating some hardware request to our server which per vu should only send exactly one request. This can be done with per_vu_scenario, for example

export let options = {
  scenarios: {
    per_vu_scenario: {
      executor: "per-vu-iterations",
      vus: 20,
      iterations: 1,
      maxDuration: '30s',
    },
  },
};

However per-vu-iteration doesn’t allow me to specify stages as I would also like to specify some ramp up like:

      stages: [
        { target: 10, duration: '0.5s' },
        { target: 20, duration: '2s' },
      ],

I am new to k6 and looking through the executors it doesn’t seem there is a possibility to both specific ramp up and the number of iteration per VU can run.

Any suggestion please ?

per vu should only send exactly one request

Can you describe your use case in more details? Why does that restriction apply?

Do you have some unique data set, and every item from that data set needs to be sent to the sever exactly one time? Because, if so, you might be able to use the ramping-vus or ramping-arrival-rate executors to control your load, and the scenario.iterationInTest property from the k6/execution API API to ensure you only ever use a single data entry once.