1.Jmeter安装配置及目录结构
2.Windows下Jmeter下载安装
登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件
2.1设置环境变量
2.2安装JDK,配置环境变量(具体步骤不做介绍)
将下载Jmeter文件解压,打开/bin/jmeter.bat
3.Jmeter的目录结构
/bin 目录(常用文件介绍)
examples:目录下包含Jmeter使用实例
ApacheJMeter.jar:JMeter源码包
jmeter.bat:windows下启动文件
jmeter.sh:Linux下启动文件
jmeter.log:Jmeter运行日志文件
jmeter.properties:Jmeter配置文件
jmeter-server.bat:windows下启动负载生成器服务文件
jmeter-server:Linux下启动负载生成器文件
/docs目录——Jmeter帮助文档
/extras目录——提供了对Ant的支持文件,可也用于持续集成
/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录
/licenses目录——软件许可文件,不用管
/printable_docs目录——Jmeter用户手册/
4.Jmeter简单入门
4.1修改语言
在jmeter\bin目录中打开jmeter.properties配置文件,修改language=zh_CN
4.2创建测试计划,添加线程组
4.3添加sampler设置http请求
4.4添加结果树
线程组--右击--添加监听器-查看结果树
4.5查看结果
4.6测试计划
独立运行每个线程组:
再每一组运行结束后启动下一个
Run tearDown Thread Groups after shutdown of main threads:
主线程关闭运行后拆除线程组,
4.7线程组
Delay Thread creation until needed
延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。
持续时间(秒):测试计划持续多长时间,会覆盖结束时间。
启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。
4.8Sampler --HTTP请求
请求方式
请求路径
请求ip
请求协议
请求编码
自动重定向,只会显示重定向之后的地址。
4.9结果收集
查看结果树
4.10表格查看结果
偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
4.11聚合报告
平均时间
90%时间
error率
吞吐量
KB/s
4.12Jmeter参数化
配置元件(Config Element)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config
4.12.1使用随机函数助手
生成随机字符串
生成随机数字
4.12.2参数引用
4.13Jmeter断言--检查点
断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
设置断言,可以设置响应内容监听或者响应头断言。
5.Jmeter高级入门
5.1Jmeter定时器
Jmeter定时器,可以模拟用户思考时间。可以使用固定定时器,高斯随机定时器。
也可以模拟集合点,用户数量达到某一个并发量所有线程一并执行。
5.2固定定时器
高斯随机定时器
同步定时器-集合点
6.Jmeter配置原件
6.1HTTP Cookie管理器、
配置元件---->HTTP Cookie管理器
默认保存cookie信息
6.2HTTP信息头管理器
配置元件----->HTTP信息头管理器,如果需要,就以键值对形式添加上。
常用头示例:Content-Type------application/json;charset=UTF-8
6.3HTTP 请求默认值
配置元件-------HTTP请求头默认值
可以设置http请求的默认值,在单个的请求中不需要再设置其他内容
7.Jmeter逻辑控制器
7.1 简单控制器
作用:这是Jmeter里最简单的一个控制器,它可以让我们组织我们的采样器和其它的逻辑控制器(分组功能),提供一个块的结构和控制,并不具有任何的逻辑控制或运行时的功能。
7.2 循环控制器
在之前基础上再去循环,线程10,迭代1,一共十次,放到循环控制器可以多次x请求,用于在某一组中对哪些请求循环执行
7.3事务控制器
在线程组下创建事务控制器,对于一个事务,包含多个接口,为了统计整体性能数据,可以添加事务控制器。
7.4 仅一次控制器
设置某一个接口对于一个线程,仅执行一次。
8.Jmeter关联-后置处理器
存在接口依赖问题,需要从某一个接口中提取参数,放置到某个接口中时,需要添加后置处理器,提取参数。
后置处理器---正则表达式提取器
后置处理器---json提取
8.1 正则表达式提取
要检查的响应字段,提取时,
要提取的变量在响应实体中---->主体
要提取的变量在响应头中 ----->信息头
要提取的变量在URL中 ----->URL
- 引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:user_id,后面的引用方式是${user_id}
- 正则表达式:提取内容的正则表达式,
- () 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来
- . 点号表示匹配任何一个字符
- + 一次或多次
- ? 在找到第一个匹配项后停止
- 模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来),则可以是$2$,$3$等等,表示解析到的第几个值给user_id。例如:$1$表示匹配到的第一个值$1$
- 匹配数字:0代表随机取值,-1代表所有值,此时提取结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${user_id_1}的方式来取第1个匹配的内容,${user_id_2}来取第2个匹配的内容。
- 缺省值:正则匹配失败时,取的值
8.2 Json提取器
只适用于响应结果是json的数据
Names of created variables 定义变量名称
Json Path expressions json表达式
Match No 0 代表随机 1 代表 第一个 -1代表所有