带小白入门之Jmeter全流程介绍
安装须知:
1.安装JDK,JDK必须1.7版本以上。
2.下载的Jmeter需安装到非中文目录下,
3.配置Jmeter的环境变量。
-
新增变量:JMETER_HOME: D:\software package\apache-jmeter-5.0\apache-jmeter-5.0\bin
-
CLASSPATH变量加入:(java环境变量需提前是配好)
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;
-
PATH变量加入:%JMETER_HOME%\bin;
-
进入D:\software package\apache-jmeter-5.0\apache-jmeter-5.0\bin,双击jmeter.bat即运行起来(运行窗口不关闭)
4.设置中文环境
打开D:\software package\apache-jmeter-5.0\apache-jmeter-5.0\bin\jmeter.properties文件 37行
元件介绍
测试接口流程
切记 每次修改测试流程后保存测试计划,无自动保存计划
1.测试计划
2.线程组
右键测试计划->添加->线程(用户)->线程组
-
线程数:
-
Ramp-UP时间(秒):设置线程数全部启动的时长。如果线程数为20,准备时长为10秒,即10秒启动20个线程。
-
循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会一直发送请求,可以选择工具栏上的停止按钮,注意,如果不勾选永远必须 在右侧选择循环次数
3.HTTP Cookie管理器
线程组右键->添加->配置元件->HTTP Cookie管理器
元件描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies
4.HTTP请求默认值
线程组右键->添加->配置元件->HTTP请求默认值
元件描述:HTTP请求默认值是为了方便填写后续内容而设置。主要填写[服务器名称或IP]和[端口号],后续的HTTP请求中就不用每次都填写IP地址和端口号了。
非必须,实际上直接在HTTP请求路径上直接写全路径就行
5.HTTP请求
线程组右键->添加->取样器->HTTP请求
根据需要选择协议、IP、端口号、方法类型以及路径
当有请求需要带参数发送时,在下方加入。
6.HTTP信息头管理器
Request Header在这里塞入。
7.响应断言
右键HTTP请求->添加->断言->响应断言
检查接口是否访问成功。如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了。
Apply to
指断言作用范围,通常发出一个请求只触发一个请求,所以勾选“main sample only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了。
(1)Main sample and sub-samples:作用于主请求和子请求
(2)Main sample only:仅仅只作用于主请求
(3)Sub-samples only:仅仅只作用于子请求
(4)Jmeter Variable:作用于jmeter变量(输入框内输入jmeter变量名称)
测试字段
响应文本(匹配返回的json数据)、响应代码(匹配返回码:如200, 404,500等)、响应信息(匹配响应信息如“OK”字样)、响应头(匹配响应头)、请求头(匹配请求头)、URL样本(匹配请求的url链接,如果有重定向则包含请求url 和 重定向url)、、忽略状态(一个请求有多个响应断言,第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的)、请求数据(匹配请求数据)
模式匹配规则
包括:响应内容包含需要匹配的内容即代表响应成功,支持正则表达式。
匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
字符串:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
相等:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
否:相当于取反,如果结果为true,勾上否就是false
或者:如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)
测试模式
其实就是断言的数据。点击“添加”按钮,输入要断言的数据。
8.增加监听器
线程组orHTTP请求右键添加->监听器->察看结果树(图形结果、聚合报告)
设置token为全局变量
明确自己的token方式,比如我们的token是通过“X-Subject-Token:***”形式。
1.正则表达式提取器
通过正则表达式提取器提取需要的Toekn值。右键线程组->添加->后置处理器->正则表达式提取器
引用名称:就是变量名,调用使用${name}
正则表达式:贴一个正则表达式匹配网址
模板:$$表示你要是用那个正则表达式那个模板获取的值 -1全部,0 随机,1第一个2第二个,如果只有一个正则一般就填写1
匹配数字:-1表示全部,0随机,1第一个,2第二个,一般默认0
缺省值:这个如果没有匹配到,给它定义的一个默认值,建议写一个。
2.BeanShell断言
右键线程组->添加->断言->Bean Shell 断言
将token值设为全局变量,${__setProperty(newtoken,${X-**-Token,)}
放置在HTTP信息头管理器里就行,将变量token使用如下。${__property(newtoken)}
即可设置token为全局变量
并发
并发测试有两种形式,除了在上述线程组介绍的的原始的Jmeter设计方法。还有一种集合点的设计方法。
请求右键添加->定时器->Synchronizing Timer
SycTimeType的目的是阻止线程,直到X个线程被阻塞,然后它们都被立即释放。因此,同步计时器可以在测试计划的各个点创建大的即时负载。(百度翻译)
其目的为阻塞线程,什么意思呢?就好似过桥一样,先在桥头将人挡住,直到人数阻塞到一定数量,释放障碍物,让人一起从桥上通过(速度恒定)
Number of Simultaneous Users to Group by:每次释放的线程数
Timeout in milliseconds:超时时间,超时时间后达不到设置的线程数时,会丢弃继续请求
请求右键添加->定时器->Constant Throughput Timer
Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,比如,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。
Calculate Throughput based on :有5个选项,分别是:
This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以矣线程的数量。
All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。
All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。
All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。
All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。
- 点赞
- 收藏
- 关注作者
评论(0)