object AddProfileScenario {
val headers= Map(
…
“Content-Type” → “application/json; charset=utf-8”)
val getChannels = http(“getChannels”)
.get("/channels")
.headers(headers)
.check(status.saveAs(“status”), status.is(200))
val updateChannel = http(“updateChannel”)
.put("/channels/${deviceId}")
.body(StringBody("""{ “token” : “${handle}” }""")).asJSON
.headers(headers)
.check(status.saveAs(“status”), status.is(204))
val addProfile = http(“addProfile”)
.post("/profile")
.body(ELFileBody(“michael/addProfile.ssp”)).asJSON
.headers(headers)
.check(status.saveAs(“status”))
def addSubscription(json:String) = http(“addSubscription”)
.post("/subscription")
.body(StringBody(json)).asJSON
.headers(headers_wind)
.check(status.saveAs(“status”), status.is(200))
session})
val addSubscriptions = exec(session =>{println(“addSubscriptions”)
val subsList = new SubscriptionExtractor(session(“subs”).as [String]).getSubs()
val nSubs = subsList.size
repeat(nSubs, “subsIdx”){
println("session in repeat: "+session)
val i = session(“subsIdx”).as [Int]
exec(addSubscription(subsList(i)))
}
session})
val scn = scenario(“add profile”)
.feed(ssv(“michael/devices.ssv”))
.exec(
http(“getProfile”)
.get("/profile")
.headers(headers)
.check(status.saveAs(“status”), status.in(Seq(200,404))))
.doIf("${status}", “404”)(exec(addProfile)
.doIf("${status}",“201”)(exec(getChannels)
.doIf("${status}",“200”)(exec(updateChannel)
.doIf("${status}",“204”)(exec(addSubscriptions)))))
}