1、JMter简介及作用
JMter是Apache公司用Java开发的一款测试工具
可以对服务器、网络或者对象模拟巨大的负载
通过带有断言的脚本来验证程序是否能返回预期的结果
2、安装
Java环境安装:
https://www.oracle.com/java/technologies/downloads/
JMter环境安装:
https://jmeter.apache.org/download_jmeter.cgi
解压即可
启动:
图形化启动:
windows下启动:
安装目录/bin/jmeter.bat
linux下启动:
jmeter.sh
中文乱码:
修改:安装目录/bin/jmeter.properties中讲encoding=改为UTF-8
3、基础操作
1.添加线程组及线程组详介
2.添加取样器–>http请求(子线程)
3、http请求基本填写及http请求默认值
重复性的字段数据可填写至http请求默认值, 填写后组内的取样器则不用填写默认值的字段数据
4.信息头管理器
5.并发执行和顺序执行
并发:子线程同时执行
顺序:按添加顺序执行
6.优先执行和最后执行(setUp、tearDown)
7.断言
断言类型:
1、响应断言 断言状态码、响应体
2、大小断言 响应内容的字节长度
3、断言持续时间 判断响应时间
8.逻辑控制器
1、如果(if)控制器
线程组-->添加-->逻辑控制器-->如果(if)控制器
判断表达式语法:"${变量}" == "比对的值"
2.ForEach逻辑控制器
线程组-->添加-->逻辑控制器-->ForEach控制器
需要输入:
输入变量前缀:如变量名为name_1、name_2、name_3、name_x···,则只输入name即可(前提是勾选了数字之前加上下划线“_”)
开始循环字段(不含):如需从1开始则填0
结束循环字段(含):如到3结束则填3
输出变量名称:给该foreach取变量名称,用时只需要${foreach变量名称}即可
3.循环逻辑控制器
线程组-->添加-->逻辑控制器-->循环控制器
循环几次循环次数填几次即可
4.关联-->Xpath(上一个请求的返回结果当作下一个请求的参数)
添加线程组-->添加http请求-->添加后置处理器-->Xpath提取器-->线程组下添加http请求-->使用Xpath提取器的变量(如果返回内容为html则必须勾选Xpath提取器中的“use tidy”和“quiet”)
5.关联-->正则表达式提取器
添加线程组-->添加http请求-->添加后置处理器-->正则表达式提取器-->线程组下添加http请求-->使用正则表达式提取器的变量
引用名称:填写变量名称即可
正则表达式:提取内容的正则表达式(通用的正则表达式语法)
模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
匹配数字:0代表随机,-1是所有,1、2、3···代表取第几个
缺省值:匹配不到时用
5.跨线程组传值:
线程组-->取样器-->BeanShell取样器
9.高并发–>同步定时器
4、参数化
1.参数化
用户定义的变量:
csv批量添加:
csv:逗号分隔值,一种常见的数据存储格式
语法格式:变量值1,变量值2,变量值3···, 一行代表一条数据
用户参数:
2.函数
函数生成:
计数器函数:
用户维度的计数器${_counter(true,)}, 全局计数器${_counter(false,)}
随机数函数:
${_Random(1, 3,)} 1为最小值,3为最大值,都为闭区间
时间函数:
${time(,)} 无参返回时间戳,${time(yyyy-MM-dd hh:mm:ss,)} 年-月-日 时:分:秒格式
4、连接数据库
下载Mysql jdbc驱动包:https://mvnrepository.com/artifact/mysql/mysql-connector-java
1.设置JDBC Connection Configuration
Variable Name:自定义参数,在JDBC Request中会用到;
Database URL:jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称;(例:jdbc:mysql://127.0.0.0:3306/mysql)如果运行报时间错误后边加上:?serverTimezone=UTC; 如果中文乱码后边加上:?useUnicode=true&characterEncoding=UTF-8
JDBC Driver Class:com.mysql.jdbc.Driver;
Username:数据库用户名;
Password:数据库密码;
2.线程组下添加JDBC Request
JDBC Request中Variable Name of Poll declared in JDBC Connection Configuration填写设置的JDBC Connection Configuration中的Variable Name变量名称
数据库查询结果当做参数使用:
1、JDBC Request中为variable name设置一个变量名
2、添加一个调试取样器(debug sample)
3、查看结果树中调试取样器的结果,结果的变量名就可以直接调用该变量使用
4、添加http请求使用该变量