jmeter基础操作
1、jmeter环境搭建
· jmeter是用Java开发的,依赖jdk,jer所以jdk的版本使用1.8版本
1、安装JDK环境,配置环境变量
2、官网下载jmeter下载需要的版本包
3、下载完成后,在bin文件夹下,jmeter.bat双击打开,在命令框敲击回车,注意在jmeter运行过程中,不能关闭该命令框
注意:
·在配置JDK环境变量时,不建议配置JMETER_HOME环境变量,如果配置了那么你的电脑,就有且只能运行一个路径下的jmeter
·没有配置JMETER_HOME环境变量可以在任意路径下启动任意版本的jmeter
2、jmeter切换中文
jmeter切换中文有两种方式,临时切换中文和永久切换中文
1、临时切换中文:
2、永久切换语言为中文
·在jmeter中bin文件下,jmeter.properties,用记事本打开,修改参数zh_CN
3、jmeter创建一个简单的接口
1、测试计划-添加-线程-线程组
2、线程组-取样器-HTTP请求
3、在HTTP请求页面中填写接口相关信息
注意事项:
·协议:如果是http协议可以不用写,服务器IP不允许输入/
·选择:不允许输入,只能点击下拉框进项选择
·路径:复制路径的时候不能多复制空格,多复制一个空格会出错,如果在请求body中看到%20代表有空格的
·内容编码:一般情况填写utf8
·从定向:只有开始和结果,中间的过程不展示,不能提起中间过程数据
·跟随定向:吧整个从定向过程一一展示出来,可以提取出来中间过程的数据
4、填写完成后添加查看结果数,线程组-添加-监听器-查看结果树
5、点击运行
点击运行后可在察看结果树种,看到本次请求的结果,以及返回信息
4、jmeter图形界面中基本的介绍
1、下图中红色框选框中为,脚本运行后的用时间,以及点击可查看运行日志,0/0运行中线程数量/运行线程总数量
2、左侧结果树
2.1 测试计划——脚本的根
2.2 通过点击某个原件,然后右键找到其他原件
2.3 线程(用户)他下边的原件都是来做场景设计的
2.4 逻辑控制器,进行逻辑判断
2.5 前置处理器,在执行请求的前需要干的事情
2.6 后置处理器,对请求的结果进行处理
2.7 定时器,认为的控制请求策略
2.8 配置原件,准备的一起资源,资料
2.9 监听器,对执行的结果进行不同维度的展示
3、请求默认值
在HTTP请求头中的所有信息默认保持,使用
线程组-配置原件-HTTP请求默认值,当前使用的HTTP请求页面中,值为空使用默认值,填写后使用当前填写的信息
4、用户定义变量
·输入变量名称,和变量的值,用%{变量名称}进行调用
·用户定义变量,在启动时获取一次值,在运行过程中不在动态的获取值
·用户定义变量可以跨线程组,被引用
·HTTP请求-添加-配置原件-用户定义变量
5、用户参数
·输入变量名称,和变量的值,用%{变量名称}进行调用
·用户参数,在启动时获取值,在运行过程中动态的获取值
·用户参数不可以跨线程组,不被引用
·线程组-添加-前置处理器-用户参数
使用jmeter进行关联
· 前一个接口的返回值中有一个动态值,需要在下个接口中使用,这个时候需要进行关联
· 使用后置处理器:对返回响应的结果进行提取
· 相应体为为json格式,提取json中的值优先使用——json提取器
· 如果不是从json中提取信息优先使用——正泽提取器
json提取器进行关联
用户参数
· 方法:使用用户参数,定义变量后,在用户参数勾选跌点更新,比如:每次注册调用用户参数,之后登录也会使用注册的参数。
json提取器
· 方法:线程-添加-后置处理器-json提取器
·apply to: 默认 从主取样器中提取
·Names of create variable: 自定义一个变量名
·json path expression: json:提取式有两种方法
方法一:
1、以 $. 开头, 后面 跟节点名称,多个节点之间 用 点号 连接,写法很简单,但是,路径万一写错,就提取不到值
方法二:
1、以 $… 开头, 后面跟上你要提取的值的key名称 -------推荐用
2、mathc no. 匹配第几个
3、0 代表 随机取第几个
4、一个正数值, 当这个正整数,在 配置的返回数量范围内时, 取你填的第几个, 如果你
5、填的数值,大于范围,那么,你将取不到值
6、负数, 获取出所有的, 变量名称后面加了 下划线和数值
7、变量名称_matchNr 代表匹配的数量
8、default value: 默认值 ----没有提取到的时候,变量的值为
注意:当一个json提取器写多个json提取式
1、提取式,之间 要用 分号 分割
2、变量名、mathno数值、默认值的 数量 要相等,且 都用封号 分割
3、此时,要特别注意,一定要填写 默认值
4、提取式也可以使用正则表达式
1、正则式: 左边界(正则式)右边界
2、正则式: .*? 万能正则式
3、模板:
数值
数值
数值 数值,要与 上面的 小括号配对
正则式:
.匹配除换行符以外的所有字符
*匹配0次或多次——贪婪
+匹配1次或多次——懒惰
? 匹配0次或1次
\d 数字
\w 英文字母或数字的字符串
DDT
数据驱动
1、如何使用jmeter生产数据
- CSV数据文件设置
- 添加-配置原件-CSV数据文件设置
- 文件名:使用浏览进行选择为绝对路径,不建议使用,建议使用相对路径找到数据文件
- 相对路径:在win电脑中,填写相对路径是吧\改成/
- 相对路径的起始点默认是,jmeter中的bin路径
- 也可是是,保存jmx文件相同的位置
- 文件编码:选择的文件编码格式需要与这里的设置一直,一般为UTF8,如果CSV文件中有中文,但编码格式不是UTF8,jmeter读取会出现乱码
- 变量名称:给文档的每一列取变量名称,多列用 , 隔开如果有三列,只想读取1 3 列那么,第一列变量名, , 第三列变量名,中间那一列用空格代替
- 忽略首行:一般用来判读是否都读,表头
- 分隔符:文件的分隔符是啥,这里填写啥
- 是否允许带引号:判读是否去掉文件中的"“,只能过滤”"
- 遇到文件结束符 再次循环: 取到了 最后一个值的时候,如果 我还要取值,我就从头 开始取值
- 遇到文件结束符 停止线程:取到最后一个是否停止进程,默认FALSE 否 不停止继续执行,TRUE:取到最后一个是否停止进程,是
- 注意理解上两种方式的组合
- 线程共享模式:
- 默认所有线程:读取一份文件,给所有线程使用,每个线程共享这一个文件,第一个线程使用第一个数据,第二个线程使用第二个数据…第n个线程使用第n个数据
- 当前线程组:读取一份文件,给所有线程使用,每个线程组复制一份文件,独立访问各自的文件 第一个线程组从第一个数据开始读取,读取到第n个数据,第二个线组程从从第一个数据开始读取,读取到第n个数据
- 当前线程:读取文件给所有线程使用,每个线程复制一份文件,独立访问各自的文件第一个线程从第一个数据开始读取,读取到第n个数据,第二个线程从从第一个数据开始读取,读取到第n个数据
逻辑控制器
if条件控制器
- 逻辑控制器,进行逻辑控制,下方一定需要有取样器,如果逻辑控制器想没有,取样器相当于这个逻辑控制器没有用。
- if条件控制器:条件满足就执行下方的取样器,不满足就不执行
- 默认的情况下,使用jexl3或者grooy这两个函数的运行结果为真,才会执行下方的取样器
- 不勾选的的话,自己填写表达式,判断是真执行取样器,假不执行
循环控制器
-
loop循环控制器
- 一模一样的做重复的事情
- 一模一样的做重复的事情
-
foreach控制器
- 相当于 python中 for i in range()
jdbc
- jdbc:Java调用数据库的协议
- 准备工作:mysql数据库为 5.7.x版本 驱动包 可以是 大于等于 数据库版本的jar包; 如果mysql8.x版本,jar包 就要选择 与数据库版本一致的jar包
把 jar包 丢到 jmeter的lib\ext文件夹下 重启动jmeter - 驱动安装包
- 准备工作:mysql数据库为 5.7.x版本 驱动包 可以是 大于等于 数据库版本的jar包; 如果mysql8.x版本,jar包 就要选择 与数据库版本一致的jar包
链接数据库
- jmeter的配置元件中 JDBC Connection Configuration
- 自定义连接池的名称
- database connection configuration
- dbURL:mysql的话: jdbc:mysql://mysqlip:端口/表名
- JDBC Driver class: 选择驱动类型
- username 账户
- password 密码
- 常用sql有 增删改查, 就要注意选择 Query Type
- Select Statement: select脚本, 不带 参数
- Update Statement: 写update语句, 脚本中 不带 参数
- callable statement: 调存储过程
- Prepared select statement: 脚本中,变量用 ? 来占位, 要写 parement value(引用变量) +
parement type(varchar)
- 脚本中带有参数两种写法
- 第一种:query type: select statement, 写的脚本中,直接引用变量
- 第二种: query type: prepared select statement, 脚本中的变量,用 ? 占位,多参数用 , 隔开
- 在jmeter中编写sql语句时,可以不用;结尾,因为该工具不支持多sql语句
* - 自定义接受结果的变量名称: variable names, 这个时候,我们 变量名称,会自动增加数值后缀。
- 如果用 result variable name 来定义接收的变量名,那么 所有的值,都属于一个变量,这个变量值 是一个 列表
- jmeter中吧保存线程的结果到CSV文中
- 文件名称前缀 中 填写 文件名称
- 勾选 不加 数值前缀 和 不加 类型 后缀
- 运行,之后,在 jmeter的bin文件夹下 就会生成文件
- 保存响应到文件,他是保存最后一个结果到文件
sqlite数据库使用
-
是一个 内存数据库,也是一个 关系型数据库,但是,这个数据库 对 高并发支持不友好,该数据库不需要安装
-
首先下载sqlite数据库的jar包,放到 jmeter的lib\ext文件夹下,重启动,jar下边地址
-
再添加 jdbc connection configuration
-
url: jdbc:sqlite:erpuser.db
-
driver: 选择 org.sqlite.JDBC
-
username \password : 没有
-
创建表: 使用 jdbc request —不需要重复操作只需要一次
-
qurey type: update statement文章来源:https://www.toymoban.com/news/detail-664107.html
create table if not exists 'erpuser'( mobile text, psd text, nickName text, platform text )
-
在bin文件下会出现.db的文件,用数据库工具打开查看表创建成功
文章来源地址https://www.toymoban.com/news/detail-664107.html
到了这里,关于jmeter基础操作,图文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!