async def METHOD_NAME(self, duration: int, *, run_profiler: bool = False, **kwargs) -> None:
    """
    Run all async tests, including both warmup and duration.
    """
    self._completed_operations = 0
    self._last_completion_time = 0.0
    starttime = time.time()
    if run_profiler:
        try:
            self._profile.enable()
            self._completed_operations += await self.run_batch_async()
        finally:
            self._profile.disable()
        self._last_completion_time = time.time() - starttime
        self._save_profile("async", output_path=self.args.profile_path)
        self._print_profile_stats()
    else:
        while self._last_completion_time < duration:
            self._completed_operations += await self.run_batch_async()
            self._last_completion_time = time.time() - starttime