带有exec链的Gatling场景.请求后,保存返回的数据.之后它会被处理,并且根据处理结果,它应该失败或通过测试.
这似乎是最简单的可能情况,但我找不到任何可靠的信息如何在exec块中失败测试.断言打破了场景,看似加特林(如:异常抛出不仅仅是测试失败).
例:
// The scenario consists of a single test with two exec creating the execChain val scn = scenario("MyAwesomeScenario").exec(reportableTest( // Send the request exec(http("127.0.0.1/Request").get(requestUrl).check(status.is(200)).check(bodyString.saveAs("MyData") // Process the data .exec(session => { assert(processData(session.attributes("MyData")) == true,"Invalid data"); }) ))
在“监护人失败,关闭系统”这一行的某个地方之上.
现在这似乎是一个有用的,经常使用的事情 – 我可能会遗漏一些简单的东西.怎么做?
解决方法
你必须遵守Gatling API.
>通过检查,您不会“失败”测试,而是请求.如果您正在寻找未通过整个测试的,那么您应该查看Assertions API和Jenkins plugin.
>您只能在请求站点执行检查,而不能在以后执行.其中一个很好的理由是,如果将bodyString存储在Sessions中,就像你正在做的那样,你将结束使用大量内存并可能崩溃(仍然引用,因此不是垃圾收集).您必须在检查中执行processData,通常在transform可选步骤中执行.