gatling - Gatling:在 .check(regex) 中提取多个组
问题描述
我尝试使用单个 .check(regex 来提取多个值。下面的代码表示提取 3 个组。
val goToProduct = http("""GoTo_${product}""")
.get("""${product}""")
.headers(headers_0)
.check(regex("""name="([\s\S]+?)" value="(.+)" id="(.+)"""").ofType[(String,String,String)].saveAs("description")
在此之后,我尝试单独使用提取的值(例如 description._1 作为 Tuple3,或 description(1) 作为 Collection)。但总是失败。
这可行,但也许有更方便的方法来做到这一点(如 val._1)
session("description").validate[(String, String, String)].map { case
(prod_name, prod_value, prod_id) =>
session.setAll("prod_name" -> prod_name, "prod_value" -> prod_value,
"prod_id" -> prod_id)
试试这个
.exec { session =>
println(session("${description._1}").as[String])
session }
Will give an error: 'hook-1' crashed with 'j.u.NoSuchElementException: No attribute named '${description._1}' is defined', forwarding to the next one
这条线
println(session("description").as[String])
Shows Tuple3: (addtocart_37.EnteredQuantity,1,/addproducttocart/details/37/1)
解决方案
加特林 EL 支持元组,因此您可以使用如下调用
"${description._1}"
访问产品,例如
要获取值以便在接受表达式的 dsl 调用以外的地方使用它,您可以在会话操作中检索它(您不能使用 EL)
exec(session => {
println(session("description").as[(String, String, String)]._1)
session
})
推荐阅读
- c - 我正在为竞争激烈的编程平台编写此 C 代码,并且想知道在哪里可以改进代码以克服 SIGTSTP 错误?
- python - Pandas 中的布尔和索引切片
- java - KafkaMessageListenerContainer 与 ConcurrentMessageListenerContainer
- amazon-web-services - CloudFormation - 策略变量的未解决资源依赖关系?
- r - 将 geom_vridgeline 与 geom_line 组合在一个图中
- angular8 - 通过赋值和使用 patchValue() 为 formGroup 对象设置值有什么区别?
- python - 获取有序连续列表中 x 降序值的累积组合(x 选择 y)
- bash - 在 Azure 中轮换 AAD 机密
- vimeo - Vimeo API 和隐私:哪些设置允许从移动应用程序中看到视频?
- python - 在 Heroku 中使用 celery worker 导致超时