性能测试工具_Jmeter
工具的特点:
-
可以对HTTP和FTP服务器等进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)
-
完全的可移植性和100%纯Java
-
完全多线程 框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
-
各种负载统计表和可链接的计时器可供选择。
-
数据分析和可视化插件提供了很好的可扩展性以及个性化。
-
具有提供动态输入到测试的功能
jmeter下载与安装
- 前置条件:已经安装好JDK,版本使用最新的即可,去官网下载
- jmeter下载链接官网下载:http://jmeter.apache.org/download_jmeter.cgi
- 启动方法:解压后,找到bin目录下的jmeter.bat双击启动
- 服务器模式启动:双击jmeter-server.bat启动。允许在远程节点上以服务器模式运行jmeter,并通过jmeter gui来控制。
jmeter工作原理
- 手写脚本 通过jmeter的多线程模拟服务器访问 →Web、应用、数据库等服务器
- 录制脚本 通过代理方式录制测试脚本 →Web、应用、数据库等服务器
这里推荐使用录制脚本的方法进行测试,比较节约测试的时间。
jmeter目录结构
- bin目录,可执行文件
- log在jmeter.log内查看
- jmeter.properties文件中有一个属性配置文件log_level.JMeter,可以手动配置(默认无需改)
- printable_docs的usermanual子目录下是jmeter用户使用手册,其中component_reference.html是最常用的核心元件帮助手册.
- extras目录下的文件提供了对ant的支持,可以利用ant来实现自动化,例如批量执行脚本,产生html报告等。
- 运行jmeter的时候会产生一个jtl文件,把他放到extras目录下,运行ant-Dtest=文件名 report就可以产生测试统计报表
- lib目录下的ext子目录是jmeter的核心jar包;Junit子目录是放Junit脚本的。
- 用户扩展依赖的包直接放到lib下,不要放到lib下的ext文件夹内
jmeter和loadrunner对比
- jmeter下载安装简单,loadrunner比较复杂
- 两者都支持录制和回放脚本
- jmeter支持的协议类型,比loadrunner稍微少了点
- 两者都支持分布式测试
- jmeter不支持IP欺骗;loadrunner支持
- 两者都支持图形报表,jmeter偏弱
- 两者都支持测试逻辑控制、监控服务器资源(CPU、内存)
- 都支持功能测试
jmeter的GUI区域组成
- 测试计划testplan
1.线程组
2.监听器
3.取样器
4.断言
5.逻辑控制器
6.其他元件
...
只需要根据测试的具体需求,点击右键进行添加 - 控制台(新版本已经去掉了)
jmeter的两种录制脚本的方法
- badboy直接录制,首先要到badboy官网下载
- jmeter代理录制(不常用)
badboy录制_简述
1. 启动badboy,默认是开始录制的状态
2. 在网址栏输入要测试的链接地址,按回车(例如:www.baidu.com)
3. 进入百度搜索页,在搜索框内输入“简书家和万事亨”,搜索结果第一条,点击
4. 进入简书网,我的简书首页https://www.jianshu.com/u/9bf018091adf
5. 点击红色圆点_也就是record off,停止录制
6. 点击file菜单,选择export to jmeter,将录制好的脚本导出为jmeter支持的格式
7. 在jmeter内,打开刚刚保存的脚本即可
jmeter代理录制_略
ps:jmeter代理录制的配置很费事,不如直接使用badboy简单易用。
直接启动jmeter,打开badboy录制好的脚本,即可进行测试。
接下来我们一起看下badboy脚本录制的详细方法
- 检查点:工具 tools →选择 Add assertion for selection(添加断言作为检查)
- 参数化
需要注意的点:
- 建立参数化列表
- 在请求中替换${参数名称}
- 中文可能有乱码,改下请求中的编码即可
----------------------------------------
参数化具体的步骤:
1.切换左下方的标签至variables
2.右键,选择Add variable...
3.给参数起个名(enter a name for variable),例如‘txt’
4.输入你要修改的参数值(current value)点击Add
5.输入的值,会展示在value list里
6.点击OK
7.找到检查点,检查的参数替换为${txt}(也就是参数化)
8.找到检查点之前位置,将参数值替换为${txt}
9.点击Test1,右键选择properties,勾选for each value of variable(遍历所有值)
10.执行脚本即可测试
- 并发测试:tools → Run Background Threads,进行设置
- 测试报告:view → report
ps:如果你仍有不懂的,可以点击:图文解说badboy测试工具的使用
如果觉得本文对您有启发,也可以转发或者收藏哦,以备不时之需。
网友评论