zoukankan      html  css  js  c++  java
  • windows版jmeter的body data如何用 作为“换行”

      前段时间用jmeter进行某个web接口性能测试的时候遇到一个问题,body data中的换行的内容发送后,通过抓包发现总是发送"0D0A"即" "(wireshark—〉Hex Dump),因为接口中有一个参数需要测试并发多条数据,每个数据规定用" "分隔,所以一直没有找到好方法模拟,51testting问了也没人答,google了N久也没有好办法,今天有时间重新试了几次,终于找到方法了。
      我首先尝试的办法是不用body data,改用parameters,增加一条detail,然后把原来在body data的内容贴进去,大概如下

    ------------------------------c2549808e0df
    Content-Disposition: form-data; name="em"
    
    product=deepscan
    uv=4
    et=1
    en=1
    md5s=a1d7e3adcdb07ddb6f42386
    a1d7e3adcdb07ddb6f42387
    ------------------------------c2549808e0df--
    

      运行测试之后发现原来数据中的换行都变成" "了,包括之前一直无法解决的md5s也是用" "来换行啦,因为这个接口要求除了md5s这个参数的换行要用" ",其他地方的换行还是要用" ",所以这样并不能解决问题,但是起码知道原来windows版jmeter也是可以发送" "作为换行的了,因为" "是个转义字符,所以便从转义方向考虑,只要能把" "转义后作为数据发送出去就可以了,google后发现jmeter有转义字符相关的函数:

          __char(将一串数字翻译成Unicode字符)
      __unescape(用于反转义Java-escaped字符串)
          __unescapeHtml(用于反转义一个包含HTML字符串,将其变为包含实际Unicode字符的字符串)
          __escapeHtml(用于转义HTML字符串中的字符)

      最终找到问题的解决办法,就是一句:

    ${__unescape(
    )}或${__char(0xA)}
    

      所以只要把body data中需要这样处理的内容修改一下就就可以了,即

    Content-Disposition: form-data; name="em"
    
    product=deepscan
    uv=4
    et=1
    en=1
    md5s=a1d7e3adcdb07ddb6f42386${__unescape(
    )}a1d7e3adcdb07ddb6f42387
    ------------------------------c2549808e0df--
    
  • 相关阅读:
    2021NUAA暑假集训 Day3 题解
    2021NUAA暑假集训 Day2 题解
    2021NUAA暑期模拟赛部分题解
    CodeForces 1038D Slime
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 10689 Yet another Number Sequence
    HDU 4549 M斐波那契数列
    HDU 4990 Reading comprehension
    CodeForces 450B Jzzhu and Sequences
  • 原文地址:https://www.cnblogs.com/idbeta/p/5086654.html
Copyright © 2011-2022 走看看