[ jmeter的使用 ]


jmeter使用流程

  • 配置元件
    • CSV Data Set Config #CSV数据文件设置,可以添加准备好的CSV文件类型的测试用例
    • HTTP信息头管理器
      • Content-Type application/json #json请求头
      • Authorization Bearer (添加获取的密钥access)#密钥验证请求头
    • HTTP Cookie管理器 #保存cookie HTTP请求默认值 #可以设置相同的协议,服务器名称或ip,端口号,HTTP请求里可以不填写,填写则覆默认值
  • 后置处理器
    • JSON提取器语法,例如:
      • Names of created variables(自定义变量名称):name #多个值用;分隔
      • JSON Path expresions(书写语法):$.data.stu[].name #从最外层开始查找需要的字段,[]代表取列表里所有的值
      • Match No.(0 for Random)(0是随机获取):1获取第一个(获取的id字段后面不拼接)-1获取所有(获取的id后面拼接_1)
        • 可以添加调试取样器查看获取字段有没有达到预期,或者是字段的形态
    • 正则表达式提取器语法,例如:
      • 引用名称:id
      • 正则表达式:"id":(.*?) #多个值用;分隔
      • 模板:$1$ #执行一个
      • 匹配数字(0代表随机):-1
      • 缺省值:自定义失败返回的字段
    • 同组的HTTP请求用提取器获得变量可以直接使用,不同组则需要设置全局变量
Jmeter-Jsonpath的解析

$..name
表示递归查找所有NAME
$..*
表示递归查找所有值
$.data.stu[*].name
表示取所有的学生name
$.data.stu[0,2].name
表示取第1个和第3个元素的name
$.data.stu[0:2].name
表示取第1到第3个元素的name(不包括第3个,左闭右开)
$.data.stu[0:].name
不指定end就是找到全部
$.data.stu[-1:-2].name
从倒数第1个到倒数第2个
$.data.stu[-3:].name
从倒数第3个到最后一个


$.data.student[?(@.sex=="1")]
取当前数组中所有性别为1的数据
$.data.student[?(@.name=~/张.*/)]
取姓为张的
$.data.student[?(@.name=~/.*张.*/)]
取有张字的
@.key=~/正则表达示/,表示某一个节的值能够匹配得上
$.data.student[?(@.grade.max()>60)]
取成绩中最大的大于60的数据(取至少一门成绩及格的)
@ 表示当前节点,即数组节点

== != < > <= =>
=~ 正测匹配
in
$.data.student[?(@.age in [25.26])]
取年纪在25,26的数据 等价于$.data.student[?(@.age==25 || @.age==26 )]
not in
$.data.student[?(@.age not in [25.26])]
取年纪在25,26的数据 等价于$.data.student[?(@.age!=25 && @.age!=26 )]

Subsetof
$.data.student[?(@.hobby Subsetof ["11","22"])]
hobby的值为右边的子集的数据
  • 监听器设置
    • 查看结果树,可以查看不同格式的返回数据,也可以使用提取器测试:
      • RegExp Tester(正则提取器测试),使用正则表达式可以查看是否能获取想要的数据
      • JSON JMESPath Tester(json提取器测试),使用json表达式可以查看是否能获取想要的数据
    • 聚合报告
  • 线程组的执行顺序
    • setUp 线程组 #为优先执行
    • 线程组 #为普通线程组,随机执行
    • tearDown 线程组 #为最后执行
  • HTTP请求
  • 返回数据乱码,先找到jmeter/bin目录的jmeter.properties文件
    • sampleresult.default.encoding=UTF-8 后缀修改成utf-8,设置返回数据中文
    • sampleresult.default.encoding=utf-8 前面#号注释去掉
    • language=zh_CN 后缀改成zh_CN,设置主视图中文
  • csv测试用例编写格式
    • 字段1,字段2,字段3,... #一定是英文逗号分隔字段
    • 1,12,123,... #字段内容
    • 例如:
    • title,user,password,name
    • 标题,用户,123,陈