首页 > 解决方案 > Gatling:如何更改保存的整数值

问题描述

Gatling:如何更改保存的整数值

我将获取元素的数量保存为整数值。

    val getElements = exec(http("1. get_elements")
            .get("/apis/;version=0/elements/items?")
            .check(jsonPath("$.totalElements").ofType[Int].saveAs("total_elements"))
            .check(status.is(200))
            .headers(headers_common))

但是我不能在另一个函数中修改这个值,例如:

    .repeat("${total_elements}" / 100){
         .....
    }

标签: javascalaperformancegatlingscala-gatling

解决方案


文档

警告

此表达式语言仅适用于传递给 Gatling DSL 方法的字符串值。当实例化 Gatling 模拟时,此类字符串仅被解析一次。

例如 queryParam("latitude", session => "${latitude}") 不起作用,因为参数不是字符串,而是返回字符串的函数。

此外, queryParam("latitude", "${latitude}".toInt) 不会因为 toInt 会在将参数传递给 queryParam 方法之前发生。

这里的解决方案是传递一个函数:

因此,您必须传递一个使用Session API的函数。在你的情况下:

repeat(session => session("total_elements").as[Int] / 100) { ... }

推荐阅读