【性能测试】我的第一个Jmeter脚本 --BeanShell变量作为HTTP请求参数

  1. 这个简单的脚本如图

  2. 在BeanShell取样器中完成加密加签的脚本编写(本来采用带入jar包方式来直接传参调用方法,但一直报错,一个早上解决无果决定把整个脚本搬上来 = =)

    vars.put("outstring",outstring); -- 将脚本处理后的变量存到jmeter变量中,后面才可以使用
    //vars.put(String key,String value):数据存到jmeter变量中

  3. 因为所声明的变量是json文本,一开始没有添加消息头管理器,请求失败了

    然后去就学习了一下HTTP请求里的 参数消息体数据

    使用Body Data时,Content-Type可传application/x-www-form-urlencoded或application/json,两者的区别是数据格式不同。

    Jmeter的Parameters和Body Data两种参数化方式,具体应该怎么使用呢?
    一般来说,Get请求用Parameters,Post请求用Body Data。

    精确的对于Post的说法是:
    -普通的post请求和上传接口,选择Parameters。
    -json和xml点数据格式请求接口,选择Body。

    即,根据post请求数据的格式,分两种情况:map格式、json格式。
    -post请求数据为map格式
    当post请求数据为map格式,即参数名、参数值为key-value键值对,请求的参数添加在Parameters参数表中即可,如下图:

    -post请求数据为json格式
    目前阶段比较流行的是json格式传递参数,使用jmeter时,将json格式的请求数据加入到http请求BodyData中
    另外,由于POST请求方式,如果不设置Headers的content-type,基本默认会以 application/x-www-form-urlencoded 方式提交数据。为了Post请求确保传的是json格式,还需要在请求头中声明一下请求参数的格式为json,【就是没做这步导致
    错误】具体操作如下:
    Thread Group右键Add --> Config Element --> HTTP Header Manager,打开HTTP信息头管理器,Add一个Name为Content-Type,Value为application/json,如下图:

  4. HTTP请求
    对应协议、IP、路径等的配置,新手一开始踩的坑,简单记录一下

  5. 这就是我的第一个Jmeter脚本,虽然简单但还是学习到了很多,记录一下

posted @ 2020-11-18 15:55  TesterBenja  阅读(967)  评论(0编辑  收藏  举报