带小白入门之Jmeter全流程介绍

举报
OceanHu 发表于 2020/09/29 14:49:22 2020/09/29
【摘要】 Jmeter入门

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行


img

元件介绍

测试接口流程

切记  每次修改测试流程后保存测试计划,无自动保存计划

1.测试计划

2.线程组

右键测试计划->添加->线程(用户)->线程组

img


  • 线程数:

  • 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地址和端口号了。

img


非必须,实际上直接在HTTP请求路径上直接写全路径就行

5.HTTP请求

线程组右键->添加->取样器->HTTP请求

根据需要选择协议、IP、端口号、方法类型以及路径

当有请求需要带参数发送时,在下方加入。

img

6.HTTP信息头管理器

Request Header在这里塞入。

img


7.响应断言

右键HTTP请求->添加->断言->响应断言

检查接口是否访问成功。如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了。

img


img


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值。右键线程组->添加->后置处理器->正则表达式提取器

img


引用名称:就是变量名,调用使用${name}

正则表达式:http://tool.oschina.net/regex/贴一个正则表达式匹配网址

模板:$$表示你要是用那个正则表达式那个模板获取的值   -1全部,0 随机,1第一个2第二个,如果只有一个正则一般就填写1

匹配数字:-1表示全部,0随机,1第一个,2第二个,一般默认0

缺省值:这个如果没有匹配到,给它定义的一个默认值,建议写一个。

2.BeanShell断言

右键线程组->添加->断言->Bean Shell 断言

img


将token值设为全局变量,${__setProperty(newtoken,${X-**-Token,)}

放置在HTTP信息头管理器里就行,将变量token使用如下。${__property(newtoken)}

img


即可设置token为全局变量

并发

并发测试有两种形式,除了在上述线程组介绍的的原始的Jmeter设计方法。还有一种集合点的设计方法。

请求右键添加->定时器->Synchronizing Timer


img

SycTimeType的目的是阻止线程,直到X个线程被阻塞,然后它们都被立即释放。因此,同步计时器可以在测试计划的各个点创建大的即时负载。(百度翻译)

其目的为阻塞线程,什么意思呢?就好似过桥一样,先在桥头将人挡住,直到人数阻塞到一定数量,释放障碍物,让人一起从桥上通过(速度恒定)

Number of Simultaneous Users to Group by:每次释放的线程数

Timeout in milliseconds:超时时间,超时时间后达不到设置的线程数时,会丢弃继续请求

限制QPS

请求右键添加->定时器->Constant Throughput Timer

img


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 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。