jmeter笔记

jmeter组件的执行顺序

 

同一组件不同层级的作用域不同

 

http cookie manager 能自动将请求响应中的cookie带入到下次请求中

user define varible 组件无论层级如何,所有组件都能拿到定义的变量

组件:

http request defaults :可以配置默认请求的hostname等参数

 

 

多个http request defaults 且hostname不同时,one请求以one下面的http request defaults配置的为准

固定定时器:

 

 作用的同级请求都会延时5秒后在请求

 

请求组件中:勾选改选项后,可以自动解析当前请求返回结果中的其他子请求

 

 

配置原件中以manager 结尾的原件和以defaults结尾的组件区别:

    同级中manager结尾的不能放多个,否则会出现错误;以defaults结尾的可以用多个

 

JMeter中获取属性值:

 

 JMeter属性在测试脚本的任何地方都是可见的(全局) 

JMeter中变量:参数化文件或者用户自定义变量组件等方式,均可以设置变量

 

 User Defined Variables组件是线程共享的组件,没有层级关系和作用域的限制

 JMeter中属性和变量均是大小写敏感的

 

Jmeter逻辑控制器:

 1、simple Controller:仅提供一个组织结构控制的功能,无其他功能

 2、Loop Controller: 循环控制器

 3、Once only Controller:整个脚本过程中至执行一次,不管线程组上循环几次(不存在逻辑控制器嵌套的情况下)

 4、For each Controller:可以和User Defined Variables组件一起使用,每次循环找一个变量,可以指定循环的起始和结束值但无法指定循环的步长。

 

 name:输入变量前缀;1:是循环小标从1开始(不包含);3:循环结束的下标(包含);vname:输出变量名称

 5、Transaction Controller:事物逻辑控制器,统计控制器下所有采样器的响应时间

 

 

6、If Controller: 判断控制器下的采样器是否需要执行(判断表达式值是否为true)

 

 

 

 

 选项1:表示只判断一次,如果为true则控制器下的所有组件都执行;

选项2:表示if controller控制器下的每个控件执行的时候都去判断一遍表达式的结果是true还是false

 

采样器:

 

 

 可以添加请求参数和上传文件

 这个Listener可以测试下载文件时,将文件保存到本地

 

该选项可以更加真实的模拟浏览器上的请求,会吧请求css,图片等的子请求一起请求

 

过滤自请求中不匹配指定网址的其他请求

 

 

 

ip欺骗(作为ip欺骗的机子不能使用动态分配ip地址)

 

参数化

出自定义变量组件外,CSV Data Set Config是常用的参数化组件

 

csv参数为空时,默认使用<EOF>,可以修改默认值(jmeter.properties文件中修改下图属性值)

 

关联:

1、正则表达式提取

 

 

 

 

 

 1、表示匹配到值后存储到改变量中

 2、需要匹配的正则表达式

 3、正则中匹配数据的个数,上图中2位置匹配了两个值,所以$1$表示匹配的第一个值,$2$表示匹配的第一个值;aaa表示$1$和$2$拼接的字符串

 4、表示取第几个值,如果正则表达式匹配出多个满足条件的值,1表示取匹配到的第一个值。

  (?s)(^.*) ——该正则表达式可以获取响应的全部内容

使用cookie Manager自动关联cookie

 

 Jmeter函数:

 

 

BeanShell:

1、BeanShell中的一些内置变量

 

 bsh.args[0]的值为123

 Parameters的值为123 456 789

 props.get("jmeter.version")表示获取jmeter.properties文件中jmeter.version的属性值

 log是jmeter内置的日志对象,可以用来打印日志

 BeanShell中直接引用java文件(也可以导入jar包后使用java对象)

 引用.class文件

 

 

 监听器:

 

读取excel中的文本内容,并解析为字符串时,可以使用jmeter中提供的Document工具类

 

jdbc connection configuration 配置数据库连接驱动

 参考:https://www.cnblogs.com/istart/p/11226270.html

  • Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
  • Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test
  • JDBC Driver class:JDBC驱动
  • username:数据库登陆的用户名
  • passwrod:数据库登陆的密码

JDBC Request

可执行sql和存储过程。

 

JAVA Request:

参考:https://www.jianshu.com/p/4f3290da6dc2

 

Tomcat监控工具:https://blog.51cto.com/xqtesting/2074513

 

mock请求和响应的sample

 

流量控制:

权重控制器:Weight Switch Controller   

吞吐量控制器:

 

jmeter分布式:

 

 master机上运行:Jmeter.bat

master机器上需要配置slave机器信息:

slave机上:jmeter-server.bat

对于csv Data这种参数化文件,远程机上必须要有对应的参数化文件,远程机上才可以运行

 

NO GUI运行Jmeter常用参数:

 

 

posted @ 2019-08-14 13:49  caoyp  阅读(132)  评论(0编辑  收藏  举报