Jmeter压力测试教程(上)

JMeter压力测试

  • 一、 简介
    • 1.1优点
    • 1.2缺点
  • 二、安装
    • 2.1下载
    • 2.2解决中文乱码问题
    • 2.5配置环境变量
    • 2.4启动
    • 入门案例
  • 三、线程组相关
    • 3.1 创建多个线程组
    • 3.2 并发和顺序执行
    • 3.3 两个特殊的线程组(setUp/tearDown)
    • 线程细节设置
    • 默认http请求
  • 新增接口
    • 信息头管理器
  • 四、 参数化
    • 4.1用户定义变量
    • 4.2 CSV数据文件设置(推荐)
    • 4.3 用户参数
    • 函数
      • counter
      • Random
      • Time
  • 五、 直接连接数据库
      • 将查出来的数据放到百度上搜索

一、 简介

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:点我下载

安装:直接下载解压即可
Jmeter压力测试教程(上)_第1张图片

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(黑窗口不要关闭)

看到如下界面,则环境变量配置成功
Jmeter压力测试教程(上)_第2张图片

入门案例

大致界面:
Jmeter压力测试教程(上)_第3张图片下面我们新建一个测试
1、右击测试计划>添加>线程组
Jmeter压力测试教程(上)_第4张图片

接下来我们会进入到如下界面
Jmeter压力测试教程(上)_第5张图片

2、进程组>取样器>HTTP请求
Jmeter压力测试教程(上)_第6张图片
接下来我们会进入到如下界面

Jmeter压力测试教程(上)_第7张图片

3、以我的接口为例,我的完整api是http://127.0.0.1:8080/user/getAllUser 获取所有用户信息。对应的设置如下
Jmeter压力测试教程(上)_第8张图片

4、如果想要运行并查看结果的话,我们可以右击user>添加>监听器>查看结果树
Jmeter压力测试教程(上)_第9张图片
然后点击绿色三角按钮
在这里插入图片描述

查看结果
Jmeter压力测试教程(上)_第10张图片

三、线程组相关

3.1 创建多个线程组

Jmeter压力测试教程(上)_第11张图片

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

其实我们可以把项目看成一个进程,把一个模块堪称是一个线程组,然后模块里面的一些功能看作是一个线程。
Jmeter压力测试教程(上)_第12张图片

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

然后点击绿色按钮
Jmeter压力测试教程(上)_第13张图片
我们可以看到,中间部分全部报红了。那是因为我只是打个样,并没有填写对应的数据

3.2 并发和顺序执行

Jmeter压力测试教程(上)_第14张图片

设置并发或顺序执行
点击项目(测试计划)>勾选独立运行。。。
Jmeter压力测试教程(上)_第15张图片

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

Jmeter压力测试教程(上)_第16张图片

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

setUp:可以测试一些初始化的操作
tearDown:可以测试需要最后操作的线程,如退出登录等
Jmeter压力测试教程(上)_第17张图片

线程细节设置

Jmeter压力测试教程(上)_第18张图片

默认http请求

我们可以通过设置默认http请求来简化我们线程组内的http的一些配置
Jmeter压力测试教程(上)_第19张图片
当我们在默认http内设置了请求方式、ip地址、端口号时,我们可以在http请求内省略这些配置
Jmeter压力测试教程(上)_第20张图片

新增接口

信息头管理器

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

添加信息头:

右击项目>添加>配置元件>http信息头管理器
Jmeter压力测试教程(上)_第21张图片

然后进行配置

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

Jmeter压力测试教程(上)_第22张图片

四、 参数化

Jmeter压力测试教程(上)_第23张图片

4.1用户定义变量

调用格式:${变量名}

添加用户变量

右击项目>添加>配置元件>用户定义变量
Jmeter压力测试教程(上)_第24张图片
设置
Jmeter压力测试教程(上)_第25张图片

调用
Jmeter压力测试教程(上)_第26张图片

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

CSV可以是实现批量新增和批量修改操作
Jmeter压力测试教程(上)_第27张图片

新建一个CSV文件
内容如下:
Jmeter压力测试教程(上)_第28张图片

保存为utf-8的格式
Jmeter压力测试教程(上)_第29张图片

添加CSV设置

1、新建CSV配置
Jmeter压力测试教程(上)_第30张图片
2、选择数据源
Jmeter压力测试教程(上)_第31张图片
3、设置其他参数

Jmeter压力测试教程(上)_第32张图片

4、在请求中进行调用
Jmeter压力测试教程(上)_第33张图片

4.3 用户参数

Jmeter压力测试教程(上)_第34张图片

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

添加人员>右击>前置处理器>用户参数
Jmeter压力测试教程(上)_第35张图片
2、添加变量和用户
Jmeter压力测试教程(上)_第36张图片
3、进行变量和用户的详细配置
Jmeter压力测试教程(上)_第37张图片
4、应为设置了3条数据,因此需要设置线程

将线程数设置为3
Jmeter压力测试教程(上)_第38张图片

函数

Jmeter压力测试教程(上)_第39张图片

counter

1、添加counter函数
Jmeter压力测试教程(上)_第40张图片

2、生成counter代码并复制代码
Jmeter压力测试教程(上)_第41张图片
3、粘贴
Jmeter压力测试教程(上)_第42张图片
4、运行
Jmeter压力测试教程(上)_第43张图片

当函数参数为false时,结果如下
Jmeter压力测试教程(上)_第44张图片

Random

1、添加counter函数
Jmeter压力测试教程(上)_第45张图片

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

Jmeter压力测试教程(上)_第46张图片

Time

1、添加Time函数
Jmeter压力测试教程(上)_第47张图片

复制代码并运行结果
Jmeter压力测试教程(上)_第48张图片

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

五、 直接连接数据库

Jmeter压力测试教程(上)_第49张图片

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

Jmeter压力测试教程(上)_第50张图片

添加JDBC请求
Jmeter压力测试教程(上)_第51张图片
我们需要配置数据库连接池
Jmeter压力测试教程(上)_第52张图片

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

Jmeter压力测试教程(上)_第53张图片
下面的 mypool则是上面的JDBC Connection Configuration的参数值

Jmeter压力测试教程(上)_第54张图片

Jmeter压力测试教程(上)_第55张图片

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

数据库连接成功!
Jmeter压力测试教程(上)_第56张图片

3、添加Debug Sampler
Jmeter压力测试教程(上)_第57张图片

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

接下来我们看看效果:

Jmeter压力测试教程(上)_第58张图片

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

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

我们新建一个http请求
Jmeter压力测试教程(上)_第59张图片

查看结果树:
Jmeter压力测试教程(上)_第60张图片
测试成功!

你可能感兴趣的:(测试,web,压力测试,jmeter,测试工具)