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--
    
  • 相关阅读:
    ARM六种寻址方式的汇编实现
    生产者消费者
    哲学家问题
    linux进程的问题
    linux信号量使用
    linux进程创建
    Ubuntu下编写C语言程序
    Android使用图表库简单教程
    不需要SDK调用图灵机器人的方法
    robotframework接口测试实例
  • 原文地址:https://www.cnblogs.com/idbeta/p/5086654.html
Copyright © 2011-2022 走看看