import io.gatling.commons.util.RoundRobin
// index records by project
val recordsByProject: Map[String, IndexedSeq[Record[String]]] = csv("projectIssue.csv").records.groupBy{ record => record("project") }
// convert the Map values to get only the issues instead of the full records
val issuesByProject: Map[String, Iterator[Record[String]]] = recordsByProject.mapValues{ records => RoundRobin.apply(records) }
// inject project
feed(csv("userProject.csv"))
.exec { session =>
// fetch project from session
session("project").validate[String].map { project =>
// fetch project's issues
val issues = issuesByProject(project)
val selectedIssue = issues.next()
// inject the issue in the session
session.set("issue", selectedIssue)
}
}