jmeter使用,关联 auto-test, 自动化测试

sampler / 取样器

JSR223 Sampler

其中可以执行脚本,语法支持 java, groovy, javascript 等。

1
2
3
4
5
// 命令行启动jmeter的话,可以看到打印语句
OUT.println("要打印的语句");

// vars.get 获取变量的Value
OUT.println("xx变量:" + vars.get("VARIABLE-NAME"));

Logic Controller / 逻辑控制器

If Controller

Expression 的例子:

${__jexl3(${record_id_matchNr}== 0)}

${__jexl3(${COUNT} < 10 && "${VAR}" == "abcd",)}

To test if a variable is undefined (or null)

${__jexl3("${myVar}" == "\${myVar}")} 或者 ${__jexl3("${myVar}" != "\${myVar}")}

变量

变量引用 ${VARIABLE} 可以用的地方

  • Http Request 取样器的 Body Data

函数

时间函数

1
${__time(yyyy-MM-dd HH:mm,)}

技巧

http request body 包含中文,提交服务器为乱码

  • 解决方法:

http 请求设置 Content encoding 为 UTF-8 ,可以设置的组件:

  • Sampler / Http Request ,针对某个http request
  • Config Element / Http Request Defaults,针对Thread Group 下的所有 http request,推荐使用这个设置

设置cookie ,不仅要设置 Name 和 Value, 也要设置 Domain 和 Path 才行。

Domain 可以直接设置 url 用到的域名,Path 可以直接设置根目录 /

JSON Extractor 来提取到多个变量的时候,无效

单个变量时候, Default values 可以不填,但是多个变量的时候,必须要填。

使用分号来分隔变量名称和json path表达式,注意不要用中文分号。

实例如下:

1
2
3
Names of created variables: SCHOOL_ID; STUDENT_GRADE; STUDENT_CLASS
JSON Path expressions: $.schoolId; $.studentGrade; $.studentClass
Default Values: No_Default; No_Default; No_Default