如何在加特林的Json Body中添加随机值?

2023-12-24

我需要每次创建一个随机正整数并将其发送到加特林中的 Json 主体。

我使用下面的代码创建一个随机正整数:

val  r = new scala.util.Random;
val OrderRef = r.nextInt(Integer.MAX_VALUE);

但是,如何将随机生成的值输入到 json 主体中?

I tried:

.exec(http("OrderCreation")
.post("/abc/orders")
.body(StringBody("""{    "orderReference": "${OrderRef}"}""").asJson)  

但是,这似乎不起作用。请提供任何线索。

Thanks!


首先你想每次生成随机数,因此OrderRef必须是一种方法,例如:

def orderRef() = Random.nextInt(Integer.MAX_VALUE)

旁注:按照Scala约定:命名为camelCase,()在生成新值时,不带;到底。

要使用准备好的方法,您不能使用加特林 EL 弦。语法非常有限,基本上"${OrderRef}"搜索具有名称的变量OrderRef在加特林会议中。

正确的方法是使用表达功能 as:

.exec(
   http("OrderCreation")
  .post("/abc/orders")
  .body(StringBody(session => s"""{ "orderReference": "${orderRef()}" }""")).asJSON
)

在这里,您正在创建采用加特林的匿名函数Session并返回String作为身体。字符串通过标准 Scala 字符串插值机制组成,并使用 before prepared 函数orderRef().

当然你可以省略 Scala 字符串插值,如下所示:

.body(StringBody(session => "{ \"orderReference\": " + orderRef() +" }" )).asJSON

使用 Scala 时,这不是很受欢迎的风格。

请参阅加特林文档以了解更多详细信息请求正文 http://gatling.io/docs/2.1.7/http/http_request.html#request-body并阅读更多有关加特林 EL 语法 http://gatling.io/docs/2.1.7/session/expression_el.html.

另一种方法是定义 Feeder:

// Define an infinite feeder which calculates random numbers 
val orderRefs = Iterator.continually(
  // Random number will be accessible in session under variable "OrderRef"
  Map("OrderRef" -> Random.nextInt(Integer.MAX_VALUE))
)

val scn = scenario("RandomJsonBody")
  .feed(orderRefs) // attaching feeder to session
  .exec(
     http("OrderCreation")
    .post("/abc/orders")
    // Accessing variable "OrderRef" from session
    .body(StringBody("""{ "orderReference": "${OrderRef}" }""")).asJSON
  )

这里的情况有所不同,首先我们定义 feeder,然后将其附加到会话,然后通过以下方式在请求正文中使用它的值加特林 EL 弦。当加特林在附加到每个虚拟用户的会话之前从馈送器获取馈送器值时,此方法有效。查看有关喂食器的更多信息here http://gatling.io/docs/2.1.7/session/feeder.html.

建议:如果您的场景很简单,请从第一个解决方案开始。如果需要更复杂,请考虑喂食器。

Enjoy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在加特林的Json Body中添加随机值? 的相关文章

随机推荐

  • Windows 8 低功耗蓝牙 API 示例

    有没有人找到关于如何使用 C C 在 Windows 8 上发现 连接和断开 BLE 设备的好示例 我不确定如何获取与 蓝牙低能耗功能 API 一起使用的设备句柄http msdn microsoft com en us library w
  • 如何在codeigniter中显示电子邮件中的图像?

    this gt load gt library upload this gt load gt library email this gt email gt set newline r n this gt email gt from emai
  • 为什么 DapperRow.GetType() 返回 null?

    据我所知 Object GetType 永远不应该返回 null 相关讨论 https stackoverflow com questions 2201007 can object gettype ever return null Dapp
  • ZF + Doctrine2 phpUnit 错误:PDOExeption:您无法序列化或反序列化 PDO 实例

    我正在使用 DynamicGuys Doctrine2 集成到 zend 框架中 https github com dynamicguy zf1doctrine2 它有效 但如果我想用 phpUnit 进行测试 我会收到此错误 PDOExe
  • 无法在异步模块中使用“map”功能

    我正在使用node js 异步 模块并且需要使用 map 方法 基本上我有一个包含其他数组的数组 内部数组包含 2 个元素 类型和图像文件名 var arr0 var arr1 type1 image1 jpg jsonArr push o
  • QListWidget中的InternalMove使项目消失

    我正在尝试在树小部件内进行拖放操作 以便能够在该小部件内移动项目 我已经设法使项目可拖动 但是当我释放鼠标按钮时 该项目就会消失 为了缩小范围 我尝试了以下示例 取自此处的另一篇文章 它与 Windows 7 上的 Qt 5 4 中的树小部
  • Automapper 自定义值解析器重用多种类型

    我有一个项目 我试图使用 AutoMapper 从多个类进行映射 每个类中都有一些属性 我想使用一些自定义逻辑将源值解析到目标 我尝试使用 AutoMapper 文档中记录的自定义解析器方法 这是我的代码 public class Cust
  • Chrome 中的同步控制台日志记录

    是否可以同步记录到控制台 我经常遇到代码执行比转储结构更快的情况 这解决了输出已更改的对象的问题 我当然可以使用调试器浏览代码 进行单元测试等 通常很方便console log只是为了大致了解正在发生的事情 您可以在将对象传递给之前创建该对
  • 将 React Element 的字符串值的一部分设为粗体

    我在我的文件中定义了变量 var text The start of string b this state isTrue Bolded Also Bolded b the end of string 该字符串被传递给 React 元素 s
  • 构建批量插入语句powershell到sql

    我有一个 powershell 脚本 它从特定目录开始递归地写入每个文件及其属性 这可行 但目录可能包含多达 1 000 000 个文件 我想要做的是以每个事务 1000 次插入的方式对它们进行批处理 PS原图如下 server Datab
  • Spring WebClient:使用 WebFlux.fn +reactor-addons 重试

    我正在尝试添加条件重试WebClient使用 Kotlin 协程 WebFlux fn reactor addons suspend fun ClientResponse asResponse ServerResponse status s
  • Qt:无法执行'':请求的操作需要提升

    我无法运行 Qt 创建者的应用程序 它抱怨以下错误 无法执行 请求的操作需要提升 我的 exe 文件上有一个 Windows 管理员盾牌符号 我需要更改项目设置吗 我广泛使用 Qt File 库来执行一些文件操作 您的可执行文件的文件名是什
  • 我需要在样式表中插入一些 PHP 代码

    在我的CSS中 div image width px 大小存储在一个数组中 所以我在这里调用 size 1 我是php初学者 有人请帮忙吗 更好的解决方案是在我的示例 cssfile php 中为 css php 文件设置标头 然后就可以使
  • 带有子菜单的可检查菜单项

    WPF 中是否可以将顶级子菜单设置为复选框 我似乎无法让它发挥作用
  • 来自具有交互作用的多元回归 glm 的 LC50 / LD50 置信区间

    我有一个准二项式 glm 其中有两个连续解释变量 假设 LogPesticide 和 LogFood 和交互作用 我想计算不同食物量 例如最小和最大食物值 下农药的 LC50 和置信区间 如何才能实现这一目标 示例 首先我生成一个数据集 m
  • Rails 的即时通讯实现?

    我花了一些时间研究几种技术来为 ruby on Rails 应用程序构建一个简单的即时消息系统 这看起来非常复杂 因为我还没有找到任何跨浏览器的实现或任何 1 1 概念证明 调查 xmpp客户端 github上有Candy只支持群聊 xmp
  • 存储库层是否应该返回数据传输对象(DTO)?

    我有一个存储库层负责我的数据访问 它由服务层调用 服务层返回经过序列化并通过线路发送的 DTO 通常 服务只是访问存储库并返回存储库返回的任何内容 但要使其发挥作用 存储库必须返回该 DTO 的实例 否则 您首先必须将存储库返回的数据层对象
  • Android:选择器中禁用按钮的文本颜色未显示?

    我正在尝试制作一个带有选择器的按钮 我的按钮可以具有以下状态 启用 禁用 按下 未按下 根据上述状态 我需要操纵按钮 文字颜色 背景图 该按钮从我被禁用开始 因此它应该具有禁用的 textColor 和禁用的按钮背景 但我可以看到默认的文本
  • jQuery Mobile 弹出窗口未在 .popup('open') 上打开

    我正在尝试使用 jQuery Mobile 1 3 1 的弹出窗口在登录凭据错误时警告用户 我从 jquerymobile 文档中的基本模板开始 但我无法让它与 popupBasic popup open 如果我这样使用它 div div
  • 如何在加特林的Json Body中添加随机值?

    我需要每次创建一个随机正整数并将其发送到加特林中的 Json 主体 我使用下面的代码创建一个随机正整数 val r new scala util Random val OrderRef r nextInt Integer MAX VALUE