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请求
查看结果树:
测试成功!
版权归原作者 酷酷的朱先森i 所有, 如有侵权,请联系我们删除。