• Jmeter压力测试教程(上)


    一、 简介

    JMeter是Apache组织使用Java开发的一款测试工具

    1、可以用于对服务器、网络或模拟巨大的负载
    2、通过创建带有断言的脚本来验证程序是否能返回期望的结果

    *:断言就是通过写一个程序,让这个程序帮我们判断实际结果与预期结果的关系。

    1.1优点

    1、开源、免费
    2、跨平台
    3、功能强大

    1.2缺点

    1、不支持IP欺骗
    2、使用Jmeter无法验证JS程序,也无法验证页面UI,要配合Selenium来完成Web2.0应用测试

    二、安装

    2.1下载

    前提条件:
    由于JMeter是Java写的,必须安装Java环境
    1):
    1.JDK
    2.JRE

    2):
    下载并安装JMeter:点我下载

    安装:直接下载解压即可
    在这里插入图片描述

    2.2解决中文乱码问题

    在找到bin目录下的jmeter.properties文件并打开
    将此处的sampleresult.default.encoding的值改为UTF-8
    在这里插入图片描述

    2.5配置环境变量

    1、如果计算机上卖弄没有JDK和JRE,是需要配置JDK和JRE的环境变量的。具体配置可以自行百度
    2、配置JMeter环境变量:
    新建变量名:JMETER_HOME
    变量值:jmeter解压地址
    编辑变量名:CLASSPATH
    变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
    直接复制,最后的分号也要复制,全部点击确定保存

    2.4启动

    两种方法:

    1、在bin目录下找到ApacheJMeyer.jar点击运行

    2、windows下点击jmeter.bat(黑窗口不要关闭)

    看到如下界面,则环境变量配置成功
    在这里插入图片描述

    入门案例

    大致界面:
    在这里插入图片描述下面我们新建一个测试
    1、右击测试计划>添加>线程组
    在这里插入图片描述

    接下来我们会进入到如下界面
    在这里插入图片描述

    2、进程组>取样器>HTTP请求
    在这里插入图片描述
    接下来我们会进入到如下界面

    在这里插入图片描述

    3、以我的接口为例,我的完整api是http://127.0.0.1:8080/user/getAllUser 获取所有用户信息。对应的设置如下
    在这里插入图片描述

    4、如果想要运行并查看结果的话,我们可以右击user>添加>监听器>查看结果树
    在这里插入图片描述
    然后点击绿色三角按钮
    在这里插入图片描述

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

    三、线程组相关

    3.1 创建多个线程组

    在这里插入图片描述

    接下来我们可以新建多个线程组,并在每个线程组内添加多个http请求。

    其实我们可以把项目看成一个进程,把一个模块堪称是一个线程组,然后模块里面的一些功能看作是一个线程。
    在这里插入图片描述

    我们如果要查看整个项目的测试结果,需要右击项目>添加>监听器>查看结果树

    然后点击绿色按钮
    在这里插入图片描述
    我们可以看到,中间部分全部报红了。那是因为我只是打个样,并没有填写对应的数据

    3.2 并发和顺序执行

    在这里插入图片描述

    设置并发或顺序执行
    点击项目(测试计划)>勾选独立运行。。。
    在这里插入图片描述

    3.3 两个特殊的线程组(setUp/tearDown)

    在这里插入图片描述

    setUp:最先执行的线程组
    tearDown:最后执行的线程组

    setUp:可以测试一些初始化的操作
    tearDown:可以测试需要最后操作的线程,如退出登录等
    在这里插入图片描述

    线程细节设置

    在这里插入图片描述

    默认http请求

    我们可以通过设置默认http请求来简化我们线程组内的http的一些配置
    在这里插入图片描述
    当我们在默认http内设置了请求方式、ip地址、端口号时,我们可以在http请求内省略这些配置
    在这里插入图片描述

    新增接口

    信息头管理器

    新增修改(insert/update)实现时提交的数据时JSON格式的,需要声明提交的数据的内容类型

    添加信息头:

    右击项目>添加>配置元件>http信息头管理器
    在这里插入图片描述

    然后进行配置

    名称:Content-Type
    值:application/json:charset=utf-8

    在这里插入图片描述

    四、 参数化

    在这里插入图片描述

    4.1用户定义变量

    🎆调用格式:${变量名}

    添加用户变量

    右击项目>添加>配置元件>用户定义变量
    在这里插入图片描述
    设置
    在这里插入图片描述

    调用
    在这里插入图片描述

    4.2 CSV数据文件设置(推荐)

    CSV可以是实现批量新增和批量修改操作
    在这里插入图片描述

    新建一个CSV文件
    内容如下:
    在这里插入图片描述

    保存为utf-8的格式
    在这里插入图片描述

    添加CSV设置

    1、新建CSV配置
    在这里插入图片描述
    2、选择数据源
    在这里插入图片描述
    3、设置其他参数

    在这里插入图片描述

    4、在请求中进行调用
    在这里插入图片描述

    4.3 用户参数

    在这里插入图片描述

    演示:
    1、添加用户参数配置

    添加人员>右击>前置处理器>用户参数
    在这里插入图片描述
    2、添加变量和用户
    在这里插入图片描述
    3、进行变量和用户的详细配置
    在这里插入图片描述
    4、应为设置了3条数据,因此需要设置线程

    将线程数设置为3
    在这里插入图片描述

    函数

    在这里插入图片描述

    counter

    1、添加counter函数
    在这里插入图片描述

    2、生成counter代码并复制代码
    在这里插入图片描述
    3、粘贴
    在这里插入图片描述
    4、运行
    在这里插入图片描述

    当函数参数为false时,结果如下
    在这里插入图片描述

    Random

    1、添加counter函数
    在这里插入图片描述

    同理将代码复制给http请求设置里,运行结果:

    在这里插入图片描述

    Time

    1、添加Time函数
    在这里插入图片描述

    复制代码并运行结果
    在这里插入图片描述

    注意:如果时间函数参数不设置任何的format格式,则会生成一个时间戳

    五、 直接连接数据库

    在这里插入图片描述

    1、加载jdbc驱动,我这里是Oracle的

    在这里插入图片描述

    添加JDBC请求
    在这里插入图片描述
    我们需要配置数据库连接池
    在这里插入图片描述

    2、此时我们应该添加一个JDBC Connection Configuration

    在这里插入图片描述
    下面的 mypool则是上面的JDBC Connection Configuration的参数值

    在这里插入图片描述

    在这里插入图片描述

    在SQL框内输入SQL语句:select * from VDMS_USER

    数据库连接成功!
    在这里插入图片描述

    3、添加Debug Sampler
    在这里插入图片描述

    再到JDBC Rquest里面将Varivable name的参数值设置为实际需要的,我这里设置的是:用户

    接下来我们看看效果:

    在这里插入图片描述

    将查出来的数据放到百度上搜索

    我们需要用到上面的调试取样器给出的: 用户_2

    我们新建一个http请求
    在这里插入图片描述

    查看结果树:
    在这里插入图片描述
    测试成功!

  • 相关阅读:
    Spring6.0全新发布,快来看看
    如何获取GC(垃圾回收器)的STW(暂停)时间?
    网络安全(黑客)自学
    《文献阅读》- 遗传算法作为量子近似优化算法的经典优化器(未完成)
    Vim实用技巧_6.复制和粘贴原理(寄存器)
    Ubantu 20.04 卸载与安装 MySQL 5.7 详细教程
    小白学习,在kali里面用volatility3,一步一步细致操作,解决问题。建议电子取证选手好好看看。
    《C++Primer 中文第四版》 笔记
    【Python】10 自动选课
    2316. 统计无向图中无法互相到达点对数
  • 原文地址:https://blog.csdn.net/qq_49385719/article/details/127967840