【问题标题】:Variables in httprequest post bodyhttprequest 帖子正文中的变量
【发布时间】:2013-04-02 18:55:38
【问题描述】:

我正在尝试生成一个 jmeter 脚本,其中每次运行脚本时都会创建一个唯一文件夹 - 将某种变量添加到文件夹名称中,例如用户名+时间戳,应该足以保证唯一性。但是,jmeter 没有将变量解析为其值 - 尽管它是在从 csv 文件中读取变量时(这是不合适的)。

基本上我是在http请求中编辑PostBody,如下:

 {"alf_destination":"workspace://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6","prop_cm_name":"Test
 Folder - ${variable}","prop_cm_title":"Test
 Folder","prop_cm_description":"Test Folder"}

variable 基本上是迄今为止我尝试过的任何变量(例如随机字符串、时间戳等)

谁能建议如何解决这个变量?

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    使用 JMeter 2.9,以下工作:

    在 HTTP 请求采样器中,“Post Body”选项卡添加例如您的 JSON 数据并在其中包含变量:

    {"uuid":"${new-uuid}"}
    

    new-uuid 是用户定义的变量。 这将发送(从查看结果树,选项卡“请求”/“原始”):

    POST data:
    {"uuid":"a1b2c3d4e5f6"}
    

    【讨论】:

      【解决方案2】:

      你可以使用jmeter(从2.9版本开始)uuid功能->http://jmeter.apache.org/usermanual/functions.html#__UUID

      ${__UUID}
      

      1) 如果您只想要整个测试的 1 个值,请添加“用户定义 变量”配置元素到您的测试。这将在 您是第一次加载测试脚本。

      2) 如果你想让每个线程执行的值都改变, 但在每个线程实例期间保持不变:在您的“线程”下 Group',添加一个'Pre Processors -> User Parameters'到你的线程组 - 并在那里添加变量。

      此外,如果您希望在每次线程重新开始时更改值 (线程组中脚本的每个“迭代”),您可以 检查用户参数上的“每次迭代更新一次”框 - 和 每次在 测试脚本的开头(在该线程组内)。

      http://mail-archives.apache.org/mod_mbox/jmeter-user/201208.mbox/%3C004301cd853e$0c4a60c0$24df2240$@gmail.com%3E

      【讨论】:

      • 在 jmeter 2.11 中,这适用于 HTTP json POST 正文中的任何随机变量
      • 它在 jmeter 2.13 中工作,在请求正文中放入 ${__UUID}
      【解决方案3】:

      假设您在 jmeter 变量“Location”中有值“NewYork”。

      在 HTTP POST BODY DATA 中像这样使用它:

      {location:"${Location}"} => 被解释为{location:"NewYork"}

      【讨论】:

        【解决方案4】:

        我通过在 http 请求帖子正文中引用一个变量来做到这一点 - ${formvalues} - 使用附加到 http 请求采样器的 beanshell 预处理器创建。
        Beanshell 内容:

        double random = Math.random();    
        String formvalues ="{\"alf_destination\":\"workspace://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6\",\"prop_cm_name\":\"Test Folder - ${uname}_" + random + "\",\"prop_cm_title\":\"Test Folder\",\"prop_cm_description\":\"Test Folder\"}";         
        vars.put("formvalues",formvalues);
        

        因此,这会创建一个包含用户名(${uname},取自 csv)加上一个随机数的文件夹 - 这很粗糙,因为可能仍然存在脚本尝试创建与现有文件夹同名的文件夹的情况一个,但它适用于我的情况。

        【讨论】:

          猜你喜欢
          • 2012-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-02
          • 1970-01-01
          • 2011-10-10
          • 2014-12-09
          • 1970-01-01
          相关资源
          最近更新 更多