簡體   English   中英

Gatling - Scala(如何解決“無法將 class java.lang.String 類型的屬性‘cursorID’轉換為 class scala.Option?)

[英]Gatling - Scala (How to solve "Can't cast attribute ' cursorID' of type class java.lang.String into class scala.Option?)

Gatling - Scala(如何解決“無法將 class java.lang.String 類型的屬性‘cursorID’轉換為 class scala.Option?)

我正在執行基於 cursor 的分頁腳本 - 循環數百萬數據,但我在.check(jsonPath("$.nextCursor").saveAs("TestCursorID")).doWhile(session => session("CursorID").as[Option[String]].isDefined)

.exec(http("Test:Generate Cursor ID")
.get("/test")
.queryParam("sortField", "ID")
.queryParam("limit", 100)
.queryParam("cursor", "")
.check(status.is(200))
.check(jsonPath("$.nextCursor").saveAs("TestCursorID"))

)

.doWhile(session => session("CursorID").as[Option[String]].isDefined) {
exec(http("Test:Cursor Pagination")
.get("/test")
.queryParam("sortField", "ID")
.queryParam("limit", 100)
.queryParam("cursor", "#{TestCursorID}")
.check(status.is(200))
.check(jsonPath("$.nextCursor").optional.saveAs("CursorID"))
)
}

我收到以下錯誤請幫助我解決錯誤

12:49:53.969 [gatling-1-6] 
DEBUG io.gatling.commons.validation.package$ - j.l.ClassCastException:
Can’t cast attribute ‘CursorID’ ‘QUZURVI6aWQ6MDAwMDAwMTAtMDAwMC0wMDEwLTAwMDUtMDAwMDAwMDQ4MzIx’ of
type class java.lang.String into class scala.Option
java.lang.ClassCastException:
Can’t cast attribute ‘CursorID’ ‘QUZURVI6aWQ6MDAwMDAwMTAtMDAwMC0wMDEwLTAwMDUtMDAwMDAwMDQ4MzIx’ of
type class java.lang.String into class scala.Option
at io.gatling.commons.util.LowPriorityTypeCaster$$anon$1.cast(TypeHelper.scala:58)
at io.gatling.commons.util.TypeHelper$.cast(TypeHelper.scala:320)
at io.gatling.core.session.SessionAttribute.as(Session.scala:47)
at CursorBasedPaginationScript.CursorPaginationOnTestScenarioSimulation.$anonfun$scn$3
(CursorPaginationOnTestScenarioSimulation.scala:94)
at io.gatling.core.session.package$RichExpression$.$anonfun$safe$extension$1(package.scala:49)
at io.gatling.commons.validation.package$.safely(package.scala:30)
at io.gatling.core.session.package$RichExpression$.$anonfun$safe$1(package.scala:49)
at io.gatling.core.action.builder.LoopBuilder.$anonfun$build$1(LoopBuilder.scala:49)
at io.gatling.core.session.LoopBlock$.continue(Block.scala:38)
at io.gatling.core.action.InnerLoop.execute(Loop.scala:83)
at io.gatling.core.action.Action.$bang(Action.scala:41)
at io.gatling.core.action.Action.$bang$(Action.scala:38)
at.... ```

Expected the cursor ID should be taken and looped in the do while condition

您確定CursorIDOption[String]的類型嗎?

您的日志包含以下行: Can't cast attribute 'CursorID' '...' of type class java.lang.String into class scala.Option


試試String

session("CursorID").as[String]...

或者更簡單:

session.contains("CursorID")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM