【jmeter教程——从入门到熟练】
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
一.线程组——选择测试计划右键-->添加-->线程-->线程组
二.HTTP请求——选择线程组右键-->添加-->取样器-->HTTP请求
三.HTTP信息头管理器——选择线程组右键-->添加-->配置元件-->HTTP信息头管理器
四.查看结果——选择线程组右键-->添加-->监听器-->查看结果树
一.添加json提取器右键http请求-》添加-》后置处理器-》json提取器
安装与配置
一下载jdk——配置jdk环境变量
1.新建环境变量变量名:JAVA_HOME变量值即JDK的安装路径
2.编辑Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3.新建环境变量变量名CLASSPATH变量值 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
4.验证在cmd窗口中输入java
二下载JMeter——配置环境变量
下载地址Apache JMeter - Download Apache JMeter
1.下载后无需安装解压后即可使用。解压后目录如下
2.环境配置
- 新增JMETER_HOME环境变量变量值为JMeter解压的路径
- 编辑CLASSPATH变量加上
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
- 完成以上操作后打开JMeter中bin目录下面的jmeter.bat文件即可打开JMeter了
打开的时候会有两个窗口Jmeter的命令窗口和Jmeter的图形操作界面不要关闭命令窗口
设置成中文
方法一
方法二永久设置成中文
找到jmeter下的bin目录打开jmeter.properties 文件
第三十七行修改为
language=zh_CN
去掉前面的#
jmeter——接口测试
一.线程组——选择测试计划右键-->添加-->线程-->线程组
线程数虚拟用户数。一个虚拟用户占用一个进程或线程。
准备时长设置的虚拟用户数需要多长时间全部启动。如果线程数为20 准备时长为10 那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数每个线程发送请求的次数。如果线程数为20 循环次数为100 那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”那么所有线程会一直发送请求一到选择停止运行脚本。
二.HTTP请求——选择线程组右键-->添加-->取样器-->HTTP请求
请求名称可不改
Web服务器信息网络协议、域名或IP、端口号可自行修改
接口请求请求方法、请求路径、编码格式可自行修改
参数传递消息体数据存储JSON信息
三.HTTP信息头管理器——选择线程组右键-->添加-->配置元件-->HTTP信息头管理器
作用可以存储请求头里面的信息
四.查看结果——选择线程组右键-->添加-->监听器-->查看结果树
1.开始测试
接口调用成功通过修改http请求来验证返回值是否符合预期
jmeter——Http请求默认值
选择测试计划右键-->添加-->配置元件-->HTTP请求默认值
一个线程下可以同时存在多个http请求可以把公共参数提取到HTTP请求默认值组件中
比如协议、IP、端口号、编码等
然后在每个http请求的元件中编辑自己独有的信息即可。
注加了http请求默认值之后在单个http请求里面还填写了同样的数据那么以哪个为准就近原则——就近原则
jmeter——Http cookie管理器
1.添加HTTP cookie管理器之前有报错缺少cookies
2.选择测试计划右键-->添加-->配置元件-->HTTP cookie管理器
3.添加HTTP cookie管理器之后再次测试不报错。
作用描述HTTP Cookie管理器可以像浏览器一样存储和发送cookie如果你要发送一个带cookie的http请求cookie manager会自动存储该请求的cookies并且后面如果发送同源站点的http请求时都可以用这个cookies。
jmeter——接口与线程之间的传参
以查询全部课程接口为例希望提取课程id
一.添加json提取器右键http请求-》添加-》后置处理器-》json提取器
JSON提取公式$..字段名
查看提取结果——调试取样器course_id=63
提取全部id如下
二.引用提取出来的参数
1.同一线程下引用${引用名}
2.跨线程引用后置处理程序
直接把进入课程详情接口拉到另一个线程下课程id没有成功被引用
跨线程需要把提取出来的值设置为全局变量
右键http请求-》添加-》后置处理器-》后置处理程序
在BeanShell后置处理器中使用__setProperty()函数把courses_id设置为全局变量
${__setProperty(新值,${提取值},)};
设置全局变量成功再次引用查看效果
跨线程引用方法${__property(变量名)}
跨线程调用成功
报错是因为没有cookies下面解决no cookies问题
三.跨线程调用cookies
1.找到需要提取的内容
2.添加正则表达式提取器右键http请求-》添加-》后置处理器-》json提取器
3.查看提取结果——调试取样器
4.成功提取同样跨线程需要把提取出来的值设置为全局变量
右键http请求-》添加-》后置处理器-》后置处理程序
${__setProperty(nlqtoken,${lqtoken},)};
5.在第二个线程下添加信息头管理器
6.跨线程引用函数lqtoken=${__property(nlqtoken)}
7.开始测试
跨线程cookies调用成功
jmeter——参数化
一.CSV Data Set Config方式
1.新建CSV格式文件
2.CSV——选择测试计划右键-->添加-->元件-->CSV data Sat config
3.使用参数化变量${变量名}
4.开始测试
三个登录接口分别使用了不同的账号密码