JMeter--快速入门

JMeter下载安装

JMeter版本:4.0

Linux上安装jmeter

  1. 安装jdk
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
tar -xzvf jdk-8u201-linux-x64
  1. 配置java环境变量
  • 编辑文件
sudo vim /etc/profile
  • /etc/profile文件末尾加上如下配置
# java env
export JAVA_HOME=/usr/local/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  • 生效配置
source /etc/profile
  1. 验证java环境安装
java -version
  1. 安装jmeter 4.0
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-4.0.tgz

tar -xzvf apache-jmeter-4.0
  1. 配置jmeter环境变量
sudo vim /etc/profile
  • 文件末尾加上如下行
export PATH=$PATH:/usr/local/apache-jmeter-4.0/bin
  • 生效配置
source /etc/profile
  1. 验证jmeter安装是否成功
jmeter -v
  • 最终效果


    image.png

创建jmeter脚本

1. 新建线程组 Thread Group:

线程数 相当于 虚拟用户数。一个测试计划可以有多个线程组

  • 测试计划--》添加--》Treads--》线程组
  • Ramp-Up Period: 准备时长,设置的虚拟用户数需要多长时间全部启动 。 则 5s/10线程数 即每隔 0.5s启动另一个线程
  • loop:每个线程发送请求的次数。一个HTTP请求20次,如果是2个HTTTP请求则一共的请求20+20=40次

2. 添加 HTTTP 请求:

  • 线程组--》添加--》Sampler--》HTTP请求
  • 跟随重定向:即遇到302会重定向到Location
  • Body Data:注意HTTP POST请求中Body Data默认传递的格式是Content-Type: application/x-www-form-urlencoded,如果需要传递json,需要添加配置元件指定Content-Type: application/json

3. 添加配置元件

  • 线程组--》添加--》配置元件
  1. HTTP信息头管理器: 添加headers请求头参数。
  • 在整个测试计划下添加HTTP信息头管理器,设置User-Agent为浏览器。因为有些服务器会拒绝工具的HTTP请求,即User-Agent为Apache-HttpClient的请求。
  1. HTTP Cookie管理器:之后的请求会带上前面请求获得的Cookies。以这种自动收集的方式收集到的cookie不会在Cookie Manager中进行展示,但是运行后,通过:查看结果树(监听器)可以查看到cookie信息
  • 对于JMeter来说,一个测试计划只能有一个cookie管理器

4. 参数化,使用${}访问变量

4.1 添加用户自定义变量
  • 步骤: 配制元件--》用户定义的变量
  • 根据变量的作用域决定元件应该添加在何处。


    image.png
  • 注意:值如果由冒号的话会被识别为数组,例如:"192.168.1.1:5000",最终获取到的值是[192.168.1.1:5000]是一个数组了。。。
4.2 CSV数据文件设置
  • 步骤:添加--》配置元件--》CSV数据文件设置。
  • 变量作用域依据所处位置有所不同。


    CSV数据文件设置
  • 如果csv文件首航为变量名,则忽略首行需设置为True。
  • 遇到文件结束符再次循环设置为False,则运行到文件末尾之后,不再循环取数据。
  • 遇到文件结束符停止线程设置为True,则运行到文件末尾之后,线程停止运行。
4.3 随机数字
  • 点击“函数助手”
4.4 随机字符串
4.5 csv函数
  • 一个线程一条数据,固定不变

5. 为HTTP请求的结果添加断言,即设置检查点

  • HTTP请求添加----》断言---》响应断言。
  • 响应文本Response body,响应代码Response code,响应信息Response message
输入图片说明

6. 查看断言结果

  • 元件右键添加---》监听器----》断言结果。
  • 可以在HTTP请求下添加单个断言结果也可以为整个线程组添加断言展示所有的断言结果。
  • 断言通过直接显示HTTP请求的名称不通过会有提示


    输入图片说明

7. 添加关联

所谓关联, 就是第二个Request, 使用第一个Request中的数据。

  • 前置处理器: 在HTTP前执行
  • 后置处理器: 在HTTP请求之后执行
7.1 JSON提取器
  • 添加--》后置处理器--》JSON Extractor

  • 变量作用域为:当前线程组当前请求之后的所有请求


    image.png
  • 对于接口返回的结构为json时,可以通过JSON提取器提取想要的值。

  • 使用$表示json文件的根。可以通过察看结果树中的JSON Path展示方式测试,例如获取下图的token: $.token,获取id: $.user_info.id

  • $.data.user[0].id表示获取第一个元素,$.data.user[*].id表示获取所有元素

    JSON Path Tester

7.2 正则表达式提取器
  • HTTP请求添加---》后置处理器---》 正则表达式提取器, ()括起来的部分就是要提取的。
  • 模板:表示使用提取到的第几个值,用$n$引用起来,如果在正则表达式中有多个正则表达式(即多个括号括起来的东东),$-1$:表示取所有值,$0$:表示随机取值,$1$表示解析到的第1个值
    image.png

8. 运行线程组,查看结果树

  • Sampler--》添加---》监听器---》查看结果树
  • 点击工具栏的扫帚,用于清空结果树
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • 1 Jmeter安装配置 使用Jmeter前首先要安装JDK,配置JDK环境变量。Jmeter不需要安装,下载后...
    茶小汐阅读 2,929评论 0 8
  • JMeter有两种类型的控制器:取样器和逻辑控制器。 取样器指示JMeter向一个服务器发送请求。例如,如果你想让...
    七月尾巴_葵花阅读 1,680评论 0 3
  • 2017.9.29日记分享:一早上群里就在讨论大公益该如何进行,其实我们总是讨论的多,行动的少,先做了再说,边做边...
    丽华1117阅读 169评论 0 0