2016-11-25 33 views
0

我是效应初探:如何在foreach循环中传递值而不是Vector?

[ 
{"id":106455,"assetId":482282,"masterKeyframeId":157060,"closed":false}, 
{"id":106661,"assetId":502174,"masterKeyframeId":169193,"closed":false} 
{.....and so many...} 
] 

我已经赚得“由assetid”和“masterKeyframeId”正确使用下面的请求,但问题是如何设置的foreach循环两个值? (我曾用“援助”,它取一个值,但不知道通过单值“mkeyframeId”,因为它需要矢量)

.exec(http("request_7") 
      .get(uri3 + "/sortBy=SEGGREGATED_SESSION_SORT;reviewState=IN_PROGRESS") 
      .check(jsonPath("$..assetId").findAll.saveAs("astId")) 
      .check(jsonPath("$..masterKeyframeId").findAll.saveAs("mkeyframeId")) 
      .headers(headers_7) 
      ) 

     .foreach("${astId}", "aid") { 
      doIf(session => session("aid").as[String] != "-1") 
      { 
       exec(http("Set_IDs") 
       .get("https://stackoverflow.com/a/" + accountname + "/assets/${aid}/keyframe/${mkeyframeId}") 
       ) 
      } 
     } 

这里的问题是${mkeyframeId}需要载体和网址传似此, 发送请求= Set_IDs URI = https://qa1.net/a/hbmin1ac/assets/482282/keyframe/Vector(157060,%20169193):

代替

https://qa1.net/a/hbmin1ac/assets/482282/keyframe/157060 
https://qa1.net/a/hbmin1ac/assets/502174/keyframe/169193 

感谢。

+1

'得到( “/ A /” + ACCOUNTNAME +“/资产/ $ {}援助/关键帧/ $ {mkeyframeId(0)}“)'请记住,它可以抛出一个'IndexOutOfBoundException',如果'mkeyframeId'是一个'empty'载体。 –

+0

谢谢Sarvesh。请张贴您的答案。 – Peter

回答

1

你应该尝试这样的事:

.foreach("${astId}", "aid", "counter") { 
    doIf { session => 
    for { 
     aid <- session("aid").validate[String] 
    } yield aid != "-1" 
    } { 
    exec(http("Set_IDs") 
     .get { session => 
     for { 
      aid <- session("aid").validate[String] 
      mkeyframeId <- session("mkeyframeId").validate[Seq[String]] 
      c <- session("counter").validate[Int] 
     } yield s"https://stackoverflow.com/a/$accountname/assets/$aid/keyframe/${mkeyframeId(c)}" 
     } 
    ) 
    } 
} 

你可以写doIf块这样太:

doIf(_("aid").validate[String].map(_ != "-1")) 
相关问题