首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从“主管”内部通过Gatling测试?

如何从“主管”内部通过Gatling测试?
EN

Stack Overflow用户
提问于 2014-09-02 11:36:24
回答 4查看 10.6K关注 0票数 8

带有一个执行链的Gatling场景。请求之后,将保存返回的数据。稍后,它将被处理,并且取决于处理结果,它要么失败,要么通过测试。

这似乎是最简单的可能方案,但我找不到任何可靠的信息,如何在一个exec块内的测试失败。assert打破了场景,似乎是Gatling (如:异常抛出并不仅仅是测试失败)。

示例:

代码语言:javascript
复制
// 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");
    })
))

上面的场景大致是“卫报失败,关闭系统”。

现在,这似乎是一件有用的、经常使用的事情--我可能遗漏了一些简单的东西。该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-02 11:54:57

您必须遵守Gatling API。

  1. 通过检查,您不会“失败”测试,而是请求。如果您希望整个测试失败,您应该看看断言 API和Jenkins插件
  2. 您只能在请求站点执行检查,而不是稍后执行检查。其中一个很好的原因是,如果您像您正在做的那样将bodyString存储在会话中,那么您将结束使用大量内存,可能会崩溃(仍然引用,而不是垃圾收集)。您必须在检查中执行processData,通常在转换可选步骤中执行。
票数 5
EN

Stack Overflow用户

发布于 2017-05-30 04:27:56

你是在找像

代码语言:javascript
复制
  .exec(http("getRequest")
    .get("/request/123")
    .headers(headers)
    .check(status.is(200))
    .check(jsonPath("$.request_id").is("123")))
票数 2
EN

Stack Overflow用户

发布于 2021-01-27 06:46:29

因为编辑队列已经满了。

这个问题已经在新版本的Gatling中解决了。3.4.0版

他们补充说

exitHereIf

代码语言:javascript
复制
exitHereIf("${myBoolean}")
exitHereIf(session => true)

如果条件保持不变,让用户退出这个场景。条件参数是ExpressionBoolean。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25622470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档