我只是使用Gatling为我们的服务进行API测试的新项目。此时,我想搜索查询,下面是代码:
def chnSendToRender(testData: FeederBuilderBase[String]): ChainBuilder = {
feed(testData)
exec(api.AdvanceSearch.searchAsset(s"{\"all\":[{\"all:aggregate:text\":{\"contains\":\"#{edlAssetId}_Rendered\"}}]}", "#{authToken}")
.check(status.is(200).saveAs("searchStatus"))
.check(jsonPath("$..asset:id").findAll.optional.saveAs("renderedAssetList"))
)
.doIf(session => session("searchStatus").as[Int] == 200) {
exec { session =>
printConsoleLog("Rendered Asset ID List: " + session("renderedAssetList").as[String], "INFO")
session
}
}
}
我已经在模拟scala文件中声明了馈线:
class GVRERenderEditor_new extends Simulation {
private val edlToRender = csv("data/render/edl_asset_ids.csv").queue
private val chnPostRender = components.notifications.notice.JobsPolling_new.chnSendToRender(edlToRender)
private val scnSendEDLForRender = scenario("Search Post Render")
.exitBlockOnFail(exec(preSimAuth))
.exec(chnPostRender)
setUp(
scnSendEDLForRender.inject(atOnceUsers(1)).protocols(httpProtocol)
)
.maxDuration(sessionDuration.seconds)
.assertions(global.successfulRequests.percent.is(100))
}
但是Gatling测试失败,显示了此错误:线程"main“java.lang.UnsupportedOperationException中的异常:在模拟过程中没有发送请求,因此不会生成报告。
如果我硬编码#{ edlAssetId } (将真正的edlAssetId放在该查询中),我将得到结果。在这种情况下,我想我把参数传递错了。我尝试在控制台日志中打印输出,但没有结果。这个密码怎么了?我很感谢你的帮助。谢谢!
发布于 2022-09-07 09:56:00
feed(testData)
exec(api.AdvanceSearch.searchAsset(s"{\"all\":[{\"all:aggregate:text\":{\"contains\":\"#{edlAssetId}_Rendered\"}}]}", "#{authToken}")
.check(status.is(200).saveAs("searchStatus"))
.check(jsonPath("$..asset:id").findAll.optional.saveAs("renderedAssetList"))
)
在.
(点)之前缺少一个exec
(点)来将它附加到feed
。
因此,您的方法只返回最后一条指令(只返回执行部分)。
https://stackoverflow.com/questions/73633053
复制相似问题