使用JMeter测试更改REST服务,JsonExtractor?

时间:2017-10-04 13:47:11

标签: rest jmeter automated-tests

我正在尝试使用JMeter测试REST服务(失败)。 REST服务具有某种安全验证,每次发出请求时都会调整其回调顺序。要测试REST服务,必须使用其相关值'ValueN'填充'IDTokenN'回调,如下所示:

第一次请求:

{
"header": "Test",
"callbacks": [
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback A"
        }
      ],
      "input": [
        {
          "name": "IDToken1",
          "value": "ValueA"
        }
      ]
    },
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback B"
        }
      ],
      "input": [
        {
          "name": "IDToken2",
          "value": "ValueB"
        }
      ]
    },
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback C"
        }
      ],
      "input": [
        {
          "name": "IDToken3",
          "value": "ValueC"
        }
      ]
    }
  ]
}

第二个请求(B和C切换位置,而A维持其位置),导致IDTokenN更改其值以匹配新订单(现在IDToken2为“ValueC”,IDToken3为“ValueB”):

{
"header": "Test",
"callbacks": [
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback A"
        }
      ],
      "input": [
        {
          "name": "IDToken1",
          "value": "ValueA"
        }
      ]
    },
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback C"
        }
      ],
      "input": [
        {
          "name": "IDToken2",
          "value": "ValueC"
        }
      ]
    },
    {
      "type": "NameCallback",
      "output": [
        {
          "name": "prompt",
          "value": "Callback B"
        }
      ],
      "input": [
        {
          "name": "IDToken3",
          "value": "ValueB"
        }
      ]
    }
  ]
}

在连续请求中,订单可能(或可能不)发生变化。我想它应该通过JSON Extractors和CSV数据集的某种组合来完成(我可以找到Callbacks的关系 - 答案),但我不能这样做。任何人都可以帮助我吗?

感谢并为这篇长篇文章感到抱歉!

亲切的问候,

0 个答案:

没有答案