1.jmeter连接数据库(MYSQL)
- 1.下载数据库驱动
- 所下载的驱动和数据库版本一致
- 找开发/运维询问数据库版本
- 2.创建测试计划连接数据库
- 在测试计划中,将数据库驱动的jar包导入进来
- 测试计划–>添加目录或jar包到classpath,点击浏览
- 在线程组中添加连接数据库的配置组件
- 配置元件—>JDBC Connection Configuration
- 配置JDBC Connection Configuration
- variable Name for create pool 填写 连接数据库的名称
- 最好是项目名称
- Database URL:数据库连接地址
- jdbc:mysql://ecshop.itsoso.cn:3306/ecshop?参数(必要时)
- JDBC Driver class:选择对应数据库驱动
- Username:访问数据库用户名
- password:密码
- variable Name for create pool 填写 连接数据库的名称
- 添加JDBC Request
- Variable Name Bound to pool 填写数据库配置中的名称
- sql Query
- Select 选项 只能执行查询语句
- Updata 选项 执行新增,修改,删除
- 在测试计划中,将数据库驱动的jar包导入进来
- 数据库引用变量和输出变量
- 引用变量(略)
- 输出变量
- JDBC Request 中添加变量名
- variable Names 栏填写变量名
- JDBC Request 中添加变量名
- Debug sampler
- 作用,读取测试计划中变量
2.关联(后置处理器使用)
2.1XPATH提取器
- 位置 后置处理器
- 使用范围 当接口返回值类型为xml/html格式时使用
- 配置Xpath提取器
- 在XML parsing Options 中勾选Use Tidy
- 引用名称:变量名
- XPath query :xpath表达式
- 匹配数字:0,表示随机,-1,表示全部
- 缺省值: 当表达式没有找到对应值得时候,变量=缺省值
2.2JSON提取器
- 位置 后置处理器
- 适用范围 当接口返回值类型为json格式时,使用
- 配置JSON提取器
- Names of created variable:变量名
- JSON Path expressions:jsonpath表达式$…关键字
- Match No:0,随机,-1,全部
- default values:默认值
2.3正则表达式提取器
- 位置 后置处理器
- 适用范围 适用于任何返回值类型
- 配置正则表达式提取器
- 引用名称: 变量名
- 正则表达式
- 核心(.*?)
- 正则表达式写法:使用(.*?)替代需要获取的部分
- 例如:“session”😦.*?),“user”
- 模板:$数字$ 1 1 1 表示获取第一组
- 匹配数字:0,随机,-1全部,正整数,表示取第几个
- 缺省值
3.断言
3.1响应断言
- 位置 断言
- 使用范围 适用于所有返回值类型
- 配置
- 断言非中文
- 直接复制要断言的字段和对应值
- 断言中文
- 1.在http请求中添加—>后置处理器—>Bean shell postprocessor
- 2.Bean shell postprocessor中编写一段代码,将Unicode编码下的中文解码
- 3.中文断言
- 断言非中文
3.2时间断言和大小断言
- 位置 断言
- 时间断言,用来断言接口响应时间
- 接口返回时间≤预期时间
- 大小断言,用来断言接口返回值所占空间的大小
- 实际返回值的大小和预期返回值大小
4.集合点–实现并发操作
- 集合点:用于性能测试中,收集/集合虚拟用户的
- 操作步骤
- 1.创建测试计划
- 2.添加线程组和取样器(HTTP请求)
- 3.添加监听器
- 查看结果树
- 聚合报告
- 4.在取样器下添加 Synchronizing Timer
- 位置 定时器下
- 配置 Synchronizing Timer
- Number of Simulated User to Group by:每次用于并发的用户数
- Timeout in milliseconds:集合并发用户数所使用的时间
- 5.配置线程组
- 修改线程数
- 线程数最好是集合点中集合用户的倍数
- 修改线程数
- 注意事项
- 1.线程组中线程数最好是集合数的倍数
- 2.集合时间大于线程启动时间
- 3.当集合时间不为0时,到了集合时间就开始执行,不管是否达到集合数
- 4.当集合时间为0,必须在集合数达到要求时,才执行
- 集合点是性能测试中常用的一个方式,用来测试并发
5.函数
5.1函数使用步骤
- 1.打开函数助手
- 2.选择要使用的函数
- 3.填写函数参数
- 4.点击生成
- 5.复制生成后的函数表达式
- 6.粘贴到需要使用函数的位置
函数本质----对变量的引用
5.2 统计函数,随机函数,时间函数
- 统计函数 counter
- 随机函数 Random
- 时间函数 time
在jmeter中任何可以输入的位置,都可以使用函数/变量
5.3跨线程组关联
- 核心思想:提升线程组内变量的作用域,
- 1.准备至少2个线程组
- 2.线程组_2需要使用线程组_1中的变量
- 3.提升线程组_1中的变量的作用域
- 使用setProperty函数
- 设置setProperty函数
- 属性名称:提升作用域后的名称–自定义
- value of property: 变量值
- 设置setProperty函数
- 复制setProperty函数
- 在线程组_1中添加一个取样器—Bean Shell 取样器
- 将setProperty函数粘贴在Bean Shell 取样器中
- 使用setProperty函数
- 4.使用property获取提升后的变量
- 属性名称:写在setProperty中自定义的变量名
- 5.将property函数复制到线程组_2中需要的位置
6.jmeter分布式
- 分布式
- 由多台电脑共同完成同一1个任务(请求)部署,我们称这种部署为分布式部署
- jmeter做分布式测试配置
- 前提
- 1.控制机和执行机都安装了相同版本的java和jmeter
- 2.控制机和执行机在同一网段下(一个局域网内)
- 3.控制机和执行机脚本存放的路径一致
- 4.控制机和执行机都需要关闭防火墙
- 5.控制机和执行机只保留一个网络
- 配置执行机
- 1.获取执行机的ip地址
- 2.将IP地址添加在jmeter配置文件中
- remote_hosts = 172.16.20.254:1099
- 保存配置文件
- 3.启动jmeter-server.bat 等待执行机操作
- 配置控制机
- 1.将执行机的ip+端口号填写在配置文件中
- remote_hosts = 172.16.20.254:1099
- 保存配置文件
- 2.打开jmeter—>运行—>远程启动
- 3.执行脚本
- 1.将执行机的ip+端口号填写在配置文件中
- 前提
5台执行机,测试脚本500,总的并发量=5*500