Я очень новичок в Gatling и наполовину сделанный для его использования. Мне нужно написать сценарии автоматизации с ним. У меня нет никакого опыта с ним в любом случае.Gatling/Scala не может найти полезный ключ сеанса JSON
Когда я пытаюсь запустить несколько сценариев, я получаю «session_key» как часть ответа JSON после входа в систему. Я попытался следовать инструкциям из Интернета, сохранил это значение, но когда я попытаюсь использовать его дальше в своем втором сценарии, язык выражения не может его найти.
Я подтвердил свое выражение JSONPath для него, и это кажется правильным.
{"result":1,"resultType":"ack","output":{"session_key":"a value for the session key goes here"},"errorMessage":false,"errorCode":false,"additional":{"locationtabs":["tab 1","tab 2","tab 3"]}}
Я также перечислил свой код ниже, но заменил данные об использовании с помощью данных для моего вопроса.
package basic
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import com.excilys.ebi.gatling.jdbc.Predef._
import com.excilys.ebi.gatling.http.Headers.Names._
import com.jayway.jsonpath._
import akka.util.duration._
import bootstrap._
class GetLocations extends Simulation
{
val httpConf = httpConfig
.baseURL("https://myURL")
.acceptCharsetHeader("ISO-8859-1,utf-8;q=0.7,*;q=0.7")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3")
.disableFollowRedirect
val scn = scenario("Login Test")
.exec(
http("requestLogin")
.post("/restapi/login")
.param("username", "a username")
.param("password", "a password")
.param("client_uid", "testUid")
.check(jsonPath("$.result").is("1"))
.check(jsonPath("$.output.session_key").findAll.saveAs("session_key"))
).pause(15)
val getLocations = scenario("Get Locations")
.exec(
http("getLocations")
.post("/restapi/get_employee_favouritelocations")
.param("client_uid","testUid")
.param("clientType","automatedTest")
.param("session_key","${session_key}")
.check(jsonPath("$.result").is("1"))
)
setUp(scn.users(50).ramp(50).protocolConfig(httpConf),
getLocations.users(50).ramp(50).protocolConfig(httpConf)
)
}
Любой помощи вы можете предоставить ценятся как это давало мне головную боль в течение недели и, к сожалению, только я готов приступить к работе с этим в настоящее время.
Проблема была решена. Еще раз спасибо Стефану. – user3498133