【问题标题】:Variable Path Param for REST service testing in JmeterJmeter中REST服务测试的可变路径参数
【发布时间】:2013-11-10 17:54:27
【问题描述】:

我正在测试具有路径参数的 REST 服务。

/my-service/v1/Customer/order/{ordernumber}

我想为每个请求将数字增加 1。如何在 Jmeter 中实现这一点?到目前为止,我一直在传递一个固定的路径参数,因此我们的测试结果只有一个输入参数。

/my-service/v1/Customer/order/5247710017785924

【问题讨论】:

    标签: java rest jmeter


    【解决方案1】:

    最好的开始是将您的初始订单价值放入User Defined Variable

    假设起始订单为“5247710017785924”,您需要创建一个“ordernumber”变量并将其值设置为 5247710017785924。

    在每次请求后,您可以使用以下代码将 BeanShell 后处理器添加到 HTTP 采样器来增加变量值:

    long ordernumber = Long.parseLong(vars.get("ordernumber"));
    ordernumber++;
    vars.put("ordernumber",String.valueOf(ordernumber));
    

    并将 HTTP 采样器路径中的 ordernumber 设置为

    /my-service/v1/Customer/order/${ordernumber}
    

    【讨论】:

    • 想知道什么更需要资源:计数器还是 BeanShell 脚本?
    【解决方案2】:

    没有一个解决方案对我有用。这就是我所做的

    1. 如下图定义HTTP请求,并在请求中添加路径/api/v2/state/find/${id}
    2. 右击HTTP request --> Preprocessor -> User Parameters ->Add variable -> input id and it's value
    3. 启动 HTTP 请求,这应该可以工作

    【讨论】:

      【解决方案3】:

      使用 JMeter Counter 组件来增加变量。

      【讨论】:

        【解决方案4】:

        这个问题是路径参数相关的,其中订单号的值在每个连续的请求中增加1。但是我遇到了一个场景,我得到了一个订单号列表,我不得不请求这些订单号。所以,我要回答这个问题,这个解决方案可以应用于这两种情况。

        我所做的是将所有参数路径放在一个 CSV 文件中,就像这样 -

        /my-service/v1/Customer/order/5247710017785924
        /my-service/v1/Customer/order/5247710017785976
        /my-service/v1/Customer/order/5247710017785984
        /my-service/v1/Customer/order/5247710017785991
        

        然后我遍历 CSHTTPle 中的路径列表并向服务器发出 http 请求。要了解如何遍历 CSV 文件并在 Jmeter 中发出 http 请求,您可以查看此链接:

        https://stackoverflow.com/a/47159022/5892553

        【讨论】:

          【解决方案5】:

          您可以使用 JMeter 计数器:

          1. 右键单击您的线程组(在测试计划下)
          2. 选择添加->配置元素->计数器
          3. 设置起始值 (0)、增量 (1)、最大值、导出的变量名称 ("ordernumber")

          然后您可以使用导出的变量名称作为路径参数: /my-service/v1/Customer/order/${ordernumber}

          【讨论】:

            【解决方案6】:

            我使用了一个BeanShell PreProcessor来生成一个id

            vars.put("id", UUID.randomUUID().toString());
            

            然后使用路径Http Request

            /api/v1/event/${id}/
            

            宾果游戏!!!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-04-24
              • 2017-01-27
              • 1970-01-01
              • 1970-01-01
              • 2011-07-30
              • 1970-01-01
              • 2012-04-11
              相关资源
              最近更新 更多