性能测试内容、Jmeter性能测试工具

性能测试内容

在这里插入图片描述
思维导图原件链接:https://pan.baidu.com/s/1COceW_mNAFYv69g95H5O0A
提取码:ibem

Jmeter

下载安装
  • ①安装JDK
  • ②安装Jmeter,网址:http://jmeter.apache.org/
    在这里插入图片描述
    解压后配置环境变量
    ①系统变量
    变量名:JMETER_HOME
    变量值:D:\apache-jmeter-5.4.1(解压后的文件路径)
    在这里插入图片描述
    ②Path
    %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar
    %JMETER_HOME%\lib\jorphan.jar
    %JMETER_HOME%\lib\logkit-2.0.jar
    在这里插入图片描述
启动

在这里插入图片描述

功能概述
  • bin文件
    在这里插入图片描述
  • docs文件
    在这里插入图片描述
  • printable_docs\usermanual文件
    在这里插入图片描述
  • lib文件
    在这里插入图片描述
  • 汉化配置
    在这里插入图片描述
  • 响应乱码的处理
    在这里插入图片描述
基本使用流程

需求:使用jmeter访问百度首页接口,并查看请求的响应信息
方法:添加线程组,线程组添加HTTP请求取样器和察看结果树监听器

  • 在测试计划下添加线程组
    在这里插入图片描述

  • 在线程组下添加HTTP请求取样器
    在这里插入图片描述

  • 填写HTTP请求的相关请求数据
    在这里插入图片描述

  • 在线程组下添加察看结果树监听器
    在这里插入图片描述

  • 点击启动并查看结果
    在这里插入图片描述

元件组

在这里插入图片描述
基本元件

  • 线程组:模拟用户的
  • 配置元件:进行测试环境和测试数据的初始化。类似于自动化脚本中的setup
  • 前置处理器:对要发送请求进行预处理。类似于自动化脚本中的参数化
  • 取样器:往服务器发送请求。类似于自动化脚本中的发送请求的代码
  • 后置处理器:对收到的服务器的响应进行数据提取。类似于自动化脚本中获取响应中特定字段的语句
  • 断言:将收到的响应结果与预期结果做对比。类似于自动化脚本中的断言
  • 监听器:查看测试脚本运行的结果和日志。类似于自动化脚本中的测试报告
  • 定时器:等待一段时间。类似于自动化脚本中的sleep
  • 测试片段:封装基本功能,不单独执行,需要通过脚本调用才能执行。类似于自动化脚本中封装的函数。

元件作用域
核心:根据测试计划中的树形结构的父子节点来确定的

  • 取样器:元件不和其他元件相互作用,因此不存在作用域的问题;
  • 逻辑控制器:元件只对其子节点中的取样器和逻辑控制器作用;
  • 其他六大元件:除取样器和逻辑控制器元件外,如果是某个取样器的子节点,则该元件对其父子节点起作用;
  • 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等);
    在这里插入图片描述

元件执行顺序

  1. 配置元件(config elements)
  2. 前置处理程序(Per-processors)
  3. 定时器(timers)
  4. 取样器(Sampler)
  5. 后置处理程序(Post-processors)
  6. 断言(Assertions)
  7. 监听器(Listeners)

提示:
1.前置处理器、后置处理器、断言等元件功能对取样器起作用(如果在它们的作用域内没有任何取样器,则不会被执行)
2.如果在同一作用域范围内有多个同一类型(比如两个HTTP请求或者一个HTTP请求一个FTP请求)的元件,则这些元件按照它们在测试计划中的上下顺序依次执行

线程组

线程组的特点

  • 设定线程数(模拟多人操作)
  • 取样器(请求) 和逻辑控制器必须依赖线程组才能使用(先加线程组再加请求,因为请求是用户发送的,线程组是用户)
  • 线程组可以添加多个,多个线程组可以并行或串行(很多用户一起运行)
  • 线程组下可以添加其他元件下组件
    在这里插入图片描述
    在这里插入图片描述
    线程组的分类
  • 线程组
    普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
  • setUp线程组
    一种特殊类型的线程组,可用于执行预测试操作(所有线程组最先运行)
  • tearDown线程组
    一种特殊类型的线程组,可用于执行测试后工作(最后执行,清理一些残留的数据、恢复环境和数据等)
    在这里插入图片描述
参数化

线程组的参数

  1. 线程数
    在这里插入图片描述
    在这里插入图片描述

  2. Ramp-Up时间(秒)
    在这里插入图片描述

  3. 循环次数
    1秒内循环10次
    在这里插入图片描述
    等3秒再持续执行10秒
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意:
    实际发送的HTTP请求数为线程组*循环次数
    在这里插入图片描述
    在这里插入图片描述

HTTP请求参数

  • 协议不填写时默认为http
    在这里插入图片描述
    在这里插入图片描述
    察看结果树的参数
    在这里插入图片描述
    用户定义的变量
  1. 线程组下添加用户定义的变量
    在这里插入图片描述
  2. 添加变量
    在这里插入图片描述
  3. 添加HTTP请求和察看结果树
    在这里插入图片描述
  4. 使用变量,格式:${变量名}
    在这里插入图片描述
  5. 运行并查看结果
    在这里插入图片描述
    变量添加方法二:再测试计划中添加,两者的区别是一个是局部变量 一个是全局变量
    在这里插入图片描述

用户参数

  • 在线程组中添加用户参数
    在这里插入图片描述
  • 添加变量和用户
    在这里插入图片描述
  • 添加HTTP请求和察看结果树
  • HTTP请求中引用参数
    在这里插入图片描述
  • 运行结果并查看结果树
    在这里插入图片描述
    CSV Data Set Config
    csv数据文件
    在这里插入图片描述
  • 在线程组中添加CSV Data Set Config在这里插入图片描述
  • CSV数据文件配置
    在这里插入图片描述
  • 参数的引用
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述

函数

  1. 生成函数
    在这里插入图片描述
    在这里插入图片描述
  2. 使用并查看结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
断言

响应断言

  1. 在HTTP请求中添加响应断言
    在这里插入图片描述
  2. 配置响应断言
    在这里插入图片描述
  3. 运行结果
    在这里插入图片描述
  4. 配置文件详情
    在这里插入图片描述

Json断言

  • 在HTTP请求中添加json断言
    在这里插入图片描述

  • 配置json文件
    在这里插入图片描述

  • 查看结果
    在这里插入图片描述
    断言持续时间

  • 添加断言持续时间
    在这里插入图片描述

  • 配置断言持续时间
    在这里插入图片描述

  • 运行并查看结果
    在这里插入图片描述

关联

获取某网站的title值作为请求参数

  1. 在HTTP请求中添加正则表达式提取器
    在这里插入图片描述

  2. 配置
    在这里插入图片描述

  3. 将提取出来的title放到访问百度地址的参数中
    在这里插入图片描述

  4. 查看结果
    在这里插入图片描述

xpath提取器

  1. 在HTTP请求中添加XPath提取器
    在这里插入图片描述

  2. XPath文件配置
    在这里插入图片描述

  3. 运行结果
    在这里插入图片描述

Json提取器

  1. 在HTTP下添加Json提取器
    在这里插入图片描述

  2. 配置Json提取器的文件
    在这里插入图片描述

  3. 运行并查看结果
    在这里插入图片描述

直连数据库
  1. 在测试计划中添加MySql驱动jar包,或者直接将jar包放在lib文件里
    在这里插入图片描述

  2. 在线程组下添加JDBC配置文件
    在这里插入图片描述

  3. 配置文件
    在这里插入图片描述

  4. 在线程组中添加JDBC Request
    在这里插入图片描述

  5. 在线程组下添加JDBC Request并且配置,sql语句选择的属性值多个时变量名也用,隔开
    在这里插入图片描述

  6. HTTP断言中就可以引用变量来进行判断

逻辑控制器

控制取样器的执行顺序

IF控制器

  1. 添加自定义变量
    在这里插入图片描述

  2. 在线程组下添加if控制器
    在这里插入图片描述

  3. 定义if控制器
    在这里插入图片描述

  4. 运行并查看结果
    在这里插入图片描述

循环控制器

  1. 在线程组下添加循环控制器
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/56c1e70e7f504d6cbbd5a8aa7facc1ac.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BldHJlbF8=,size_16,color_FFFFFF,t_70

  2. 配置循环控制器
    在这里插入图片描述

  3. 运行并查看结果
    在这里插入图片描述

ForEach控制器
一般和用户自定义变量或正则表达式一起使用

  1. 与用户定义的变量配合使用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 与正则表达式配合使用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

定时器

同步定时器(Synchronizing Timer【集合点】)
当需要进行大量用户并发测试时,为了让用户能真正的同时执行,添加同步定时器,用于阻塞线程,直到线程数达到预先配置的数值,才开始执行取样器的操作。

  1. 在HTTP请求下添加同步定时器
    在这里插入图片描述

  2. 配置并查看结果
    在这里插入图片描述

  3. 超时时间(①必须配置,否则当模拟用户数无法被并发整除时,会有部分用户挂起无法执行。②配置时间不能太短,必须比并发数加载时间长,否则无法达到并发数的要求数据就会被释放掉)
    在这里插入图片描述

常数吞吐定时器

  1. 在HTTP请求下添加常数吞吐定时器
    在这里插入图片描述

  2. 配置并运行
    在这里插入图片描述

分布式

当测试机无法模拟用户需要的业务负载量时,需要使用多台测试机配合测试
测试原理
1、分布式测试时分为一台控制机和多台代理机
2、控制机负责发布测试任务给代理机
3、代理机接收任务并向服务器发送请求,并接收服务器返回的响应,然后将测试结果返回给控制机
4、由控制机对测试结果数据进行汇总统计

在这里插入图片描述
注意事项
1、所有的测试机防火墙都已经关闭
2、所有的测试机及服务器在同一个网络内
3、所有的测试机的Jmeter版本和IDK版本完全相同
4、关闭Jmeter里的RMI SSL开关
在这里插入图片描述
分布式测试步骤

  1. 代理机配置
    ①server_port:不重复。如果使用多台机器做代理机,可不用配置
    ②关闭RMl SSL

  2. 控制机配置
    ①remote_server:所有代理机的IP+port,有多台代理机时用逗号分隔
    ②关闭RMlI SSL

  3. 运行
    代理机:jmeter-server.bat运行
    控制机:①jmeter.bat运行 ②控制代理机执行脚本;运行—>远程启动所有

  4. 具体流程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

测试报告

在这里插入图片描述

常用图表
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值