Scala 需要帮助-如何循环浏览列表和/或地图

Scala 需要帮助-如何循环浏览列表和/或地图,scala,list,loops,foreach,gatling,Scala,List,Loops,Foreach,Gatling,Scala对我来说是相当新的,我一离开gatling dsl就遇到了问题 在我的例子中,我调用了一个API(Mailhog),它以json格式响应大量邮件。我不能抓住所有的价值观。 我需要用“jsonPath”和“regex”来表示。 这将导致一个映射和一个列表,我需要迭代并保存每个值 .check(jsonPath("$[*]").ofType[Map[String,Any]].findAll.saveAs("id_map")) .check(regex("href=3D\\\\\"(.*?)

Scala对我来说是相当新的,我一离开gatling dsl就遇到了问题

在我的例子中,我调用了一个API(Mailhog),它以json格式响应大量邮件。我不能抓住所有的价值观。 我需要用“jsonPath”和“regex”来表示。 这将导致一个映射和一个列表,我需要迭代并保存每个值

.check(jsonPath("$[*]").ofType[Map[String,Any]].findAll.saveAs("id_map"))
.check(regex("href=3D\\\\\"(.*?)\\\\\"").findAll.saveAs("url_list"))
起初我想循环“检查”,但我没有找到任何重复检查的方法,也没有重复“获取”请求。这是一张地图和一张清单

1) 我需要映射的每个值,并且能够通过以下foreach循环解决问题

.foreach("${id_map}", "idx") {
    exec(session => {
        val idMap = session("idx").as[Map[String,Any]]
        val ID = idMap("ID")
        session.set("ID", ID)
    })
    .exec(http("Test")
        .get("/{ID}"))
    })}
2) 我需要列表的每三个值,并对它们发出get请求。在此之前,我需要替换字符串的一部分。我试图在检查字符串时替换部分字符串。但这对芬德尔不起作用

.check(regex("href=3D\\\\\"(.*?)\\\\\"").findAll.transform(raw => raw.replace("""=\r\n""","")).saveAs("url"))
如何替换列表中每个字符串的一部分? 另外,我如何对列表中的每3个元素发出get请求


我无法让它与上面相同的foreach结构一起工作

我无法独自解决这个问题。起初,我对我的支票(regex…)部分做了一点修改

然后,我只想对列表中的每三个元素发出Get请求(因为我提取的URL在每封邮件中出现三次)

最后,我用foreach循环遍历最终列表

foreach("${url_list}", "urls") {

    exec(http("Activate User")
        .get("${urls}")
    )
}
.exec(session => {
    val url_list = 
    session("url_list").as[List[Any]].grouped(3).map(_.head).toList
            session.set("url_list", url_list)
})
foreach("${url_list}", "urls") {

    exec(http("Activate User")
        .get("${urls}")
    )
}