使用JMeter进行接口测试(压测、性能测试)-Mac

一、JMeter概述

JMeter是通过中间代理,监控和收集并发客户端发出的指令,把他们生成脚本,再发送到应用服务器,再监控服务器反馈结果的一个过程。

二、安装并运行JMeter

1.安装包管理工具brew

brew 是 Mac 下的一个包管理工具,类似于 centos 下的 yum,可以很方便地进行安装/卸载/更新各种软件包,可以用来快速搭建各种本地环境。

终端下输入如下命令即可安装。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew的使用可以参考官网:https://brew.sh/index_zh-tw.html

2.安装java环境

1.JMeter是Apache组织开发的基于Java的压力测试工具,因此想要使用jmeter必须先配置好java环境。

终端下输入如下命令即可安装:

brew cask install java

2.mac下安装jmeter:终端下输入命令:brew install jmeter

3.运行jmeter:终端下输入命令jmeter

运行成功后进入jmeter图形界面

可以通过菜单设置语言

三、JMeter主要功能

JMeter是以元件(也叫元素、组件)来组织它的功能模块的,也就是说你在测试中要使用的所有功能都有对应的元件来支撑。

下面这篇教程可以让你快速了解JMeter的各种元件,但是比较笼统。 这是一篇笼统介绍所有JMeter元件的教程 

进行一次最简单的测试必须包括的元件也有:测试计划、线程组、取样器(http请求)、监听器(查看结果树)、断言(响应断言)、配置元件(HTTP Cookie管理器,用户定义的变量)下面依次详细介绍。

1、测试计划,

  • 1).用户定义的变量,测试计划的全局变量
  • 2).测试计划下如果多个线程组,默认并行,勾选后则顺序执行
  • 3).运行完TearDown线程组关闭整个线程。
  • 4).勾选之后则会保留采样的数据(查看结果树采样的数据,见采样器部分)到采样器配置的文件中。可能会影响压测线程本身的性能,不建议使用。
  • 5).导入jar包

2、线程组

  • 添加线程组:

  • 线程组分三种,常规线程组,初始化线程组,结束后清理线程组。
  • 一个测试计划可以添加多个线程组

  • 线程数:表示并发用户数
  • ramp-up时间:延迟启动时间
  • 循环次数:线程组的循环次数
  • 持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。 (即可以表示成优先级比结束时间高,如果持续时间比结束时间先到了,那么就将停止线程)
  • 启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。 

PS:如果要设置线程组定时跑5分钟,那么直接在线程组中设置持续时间为300s即可,不用管启动时间或结束时间

注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。

3.取样器(HTTP请求)

  • 添加取样器

  • 协议:协议类型
  • 服务器名称或IP:域名或者ip
  • 端口号:端口号,默认80
  • 方法:请求方法
  • 路径:请求url
  • 参数:key-value形式参数
  • 消息题数据:json格式参数
  • 文件上传:上传文件

4.配置元件(HTTP Cookie管理器,用户定义的变量)

  • 添加HTTPCookie管理器

  • 添加用户自动移的变量

  • key-value形式添加变量(此变量为局部变量,可以在对应线程组内使用,使用规则${key})

5.断言(响应断言)

  • 添加响应断言

6.监听器(查看结果树,断言结果)

  • 添加查看结果树

  • 添加断言结果

四、参数化

  • 添加配置元件-csv数据文件设置

参数化文件使用CSV文件,即逗号分隔值,

文件名:填写参数化配置文件绝对的地址

变量名称,即每一列数据的变量名

遇到文件结束符再次循环,http请求结束后继续执行下一组数据

五、关联

在某些业务场景中b接口需要的内容是a接口返回的,对a接口设置正则表达式,提取想要的值,在b接口中引用。

使用关联首先在取样器下添加-后置处理器-正则表达式提取器

  • 引用名称:即变量名称,调用方法与变量一致,即${引用名称}
  • 正则表达式:根据上下文获取需要的数据,()内的数据即变量的数据,()左边两边是你取值的边界
  • 模版:表示将解析到的第几个值赋予给引用名称,需要用$$引用起来
  • 匹配数字:如果你的模版匹配到了多个值,0代表随机,1代表全部,如果你想使用匹配到的第一个值,即${引用变量_g1},第二个值即${引用变量_g2}
  • 缺省值:如果没有匹配到的默认值。

猜你喜欢

转载自blog.csdn.net/weixin_43115821/article/details/107791440