0

我提取了一个包含字符串列表的 JsonArray,并且我想通过正则表达式验证该对象中的每个字符串。问题,我似乎在 Taurus 的网站上找不到任何答案。你知道我该怎么做吗?下面的例子:

# Verification of value inside the JsonArray
    extract-jsonpath:
      names: $.names
  - foreach: name in names
    do:
    - jsonpath: ${name} # if this JSONPATH is not found, assert will fail
      validate: true # validate against an expected value
      expected-value: "\\w" # value we're expecting to validate. [default: false]
      regexp: true  # if the value is regular expression, default: true
      expect-null: false  # expected value is null
      invert: false # invert condition
4

1 回答 1

2

我认为Taurus YAML 语法不可能:

  1. foreach关键字生成一个普通的JMeter ForEach 控制器
  2. 这些jsonpath,validate等默认情况下应用于采样器,如果您将它们添加为 ForEach 控制器的子级,它们将不起作用

假设以上几点,我建议添加一个JSR223 PostProcesssor来执行所有检查。在 Taurus 中,它是通过JSR223 块完成的,例如:

- url: https://api.example.com/v1/media/search
  extract-jsonpath:
    names: $.names
  jsr223:'1.upto(vars.get("names_matchNr") as int,{if (vars.get("names_$it").matches("\\w+")) {prev.setSuccessful(false)}})'  

请参阅The Groovy Templates Cheat Sheet for JMeter文章,以获取有关使用 Groovy 脚本可以完成什么的更多想法。

于 2018-08-07T13:03:57.173 回答