如何解决无法在我自己的代码/函数中使用加特林表达式语言
我正在为SCALA中的所有仿真创建一个报告,部分地,我没有所有属性,并且由于我没有出现属性定义错误,因此需要替换所有属性。
我正在尝试使用以下代码,甚至更多:
val dbc_communityID = if ("${communityID.exists()}" == true) "${communityID}" else "N/A"
我总是有“ N / A”。我还检查了
== 1
==“ true”
我肯定会花很多时间, 请帮忙
解决方法
引用Gatling官方文档:
此表达式语言仅适用于传递给Gatling DSL的字符串值 方法。这样的字符串在加特林机只解析一次 仿真正在实例化。
例如queryParam(“ latitude”,session =>“ $ {latitude}”)不会 之所以起作用,是因为该参数不是字符串,而是一个 返回一个字符串。
此外,queryParam(“ latitude”,“ $ {latitude}”。toInt)不会,因为 在将参数传递给queryParam之前会发生toInt 方法。
这里的解决方案是传递一个函数:
session => session(“ latitude”)。validate [Int]。
简而言之:您不能将Gatling EL和函数/自定义代码混合使用。如果要实现一些用于处理会话数据的自定义逻辑,则必须使用Session API,例如:
session => session("communityID").asOption[String].getOrElse("N/A")
,
if ("${communityID.exists()}" == true)
您正在将固定的String
与Boolean
进行比较,因此结果将始终为false
。对此可能会出现编译器警告。
您可能想要这样做,但是如果不进一步了解其余代码,很难说:
if (s"${communityID.exists()}" == "true")
但是在这种情况下,编写起来更简单
if (communityID.exists())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。