JMeter简介:一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协议的特点。
JMeter环境安装与配置:
1、本机配置好Java环境变量
2、官网下载压缩包,在任意目录下解压
3、修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改
language=zh_CN
sampleresult.default.encoding=utf-8
4、进入到Jmeter的bin目录下,双击jmeter.bat启动,或者双击ApacheJMeter.jar启动
Jmeter主要元件:◼测试计划◼ 线程组◼ 采样器(sampler)◼ 断言◼ 监听器
Jmeter基本元件-线程组:添加线程组并设置参数大小:测试计划→添加→Threads →线程组
Jmeter应用:
一、接口测试脚本-get/post:
get请求如下,ip和port为全局变量,在 测试计划下添加;
post请求如下:
响应文本断言和json断言:
二、逻辑控制器:
常用的逻辑控制器
1,循环控制器:可以设置该控制器内的sampler执行的次数,循环次数与线程的循环次数各自独立
2,if控制器:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和字符串
都需要加引号,如”{param}” == “test”
3,随机控制器:随机执行该控制器内的一个请求
4,随机顺序控制器:执行该控制器内的所有请求,顺序随机
5,仅一次控制器:该控制器内的请求只执行一次,无论线程循环多少次
6,foreach控制器,可以遍历某个参数数组,循环获取数组中的参数
三、关联参数,后置处理器,提取参数后可以通过调试取样器的返回结果查看参数值:
1、正则表达式提取器:可以通过正则表达式来获取http请求返回的数据
引用名称:匹配后的结果,保存到一个参数中,如param
正则表达式:支持正则表达式的语法,用()来进行分组,指定要获取的内容,如":(.+?),
模板:$1$表示取匹配到的第一组数据,$2$为第二组
匹配数字:当某组数据中包含多少个参数时,0代表随机,1代表该组的第一个参数,2表示第二个。。。-1代表获取全部的参数,这个时候,引用名称就变成了参数数组,可以通过param_n来获取指定的参数,当有多组数据时,第一组为param_1_g1,第二组为param_1_g2。
https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin
2、JSON提取器:专门对json数据进行提取的后置处理器,用$代表json数据,配置基本和正则表达式提取器类似
四、cookie管理器:和Loadrunner一样,Jmeter可以自动处理cookie,但是需要在线程组内添加一个空的cookie管理器。
五、header管理器:在http信息头管理器中添加一个或多个http请求header中的名称和值,可以修改请求头的值
六、token处理:
1.登录请求后添加 json 提取器,提取 token参数,下一操作的请求头中引用 token:${token} 值。
七、上传文件请求如下,下载请求同普通get:
八、webservice请求如下,与普通post:
1、添加http post请求
2、添加header:Conent-type:text/xml
3、Post请求的body中填写 xml请求body
九、函数助手与csv数据文件设置
函数助手可以选择一个功能,填入所需值后,点击生成,即可生成 引用的表达式,直接复制函数字符串 即可在请求中使用;
cvs数据文件设置 可以从指定文件中读取csv格式数据,作为参数在请求中使用。