此文已由作者夏君授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
本文主要结合实例、利用图形方式简要介绍Jmeter基本功能,以便新人快速入手,希望能结合具体测试场景提高测试效率:
一、Jmeter简介
Jmeter是一款使用Java开发的,开源免费的测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用。
官网:http://jmeter.apache.org/
二、Jmeter安装与使用
Jmeter 下载和运行
官方网站:http://jmeter.apache.org/
解压后, 运行“bin/jmeter.bat”
Jmeter是支持中文的,启动Jmeter 后, 点击Options -> Choose Language来选择语言
三、Jmeter工具使用(实际例子)
eg:获取【网易理财】-【基金】每日涨跌数据:
GET 请求:https://8.163.com/wyfund/getFundDailyGain.htm?fundCode=270001&page=1
response 中获取到基金每日涨跌信息. 比如:
result": [ { "fundCode": "270001", "dataDate": "2016-09-12", "unitNet": 0.8501, "cumulativeNet": 3.6661, "dailyGain": -0.0241 }, { "fundCode": "270001", "dataDate": "2016-09-09", "unitNet": 0.8711, "cumulativeNet": 3.6871, "dailyGain": -0.0023 }]
1、 新建Thread Group 如下图,选择控件创建(右键"测试计划",依次选择添加->Threads(Users)->线程租)
文章图片
说明:必须新建线程租Thread Group,Jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。
2、新建HTTPS Request
如下图,选择控件创建(右键"线程租",依次选择添加->Sampler->HTTP请求)
文章图片
设置Get请求: https://8.163.com/wyfund/getFundDailyGain.htm?fundCode=270001&page=1,如图所示:
文章图片
3、添加HTTP信息头管理器
如下图,选择控件添加(HTTP请求右键,依次选择添加->配置元件->Http信息头管理器)
文章图片
参数设置如图:
【Jmeter入门实例】
文章图片
4、 添加View Results Tree
如下图,选择控件添加(线程租右键,依次选择添加->监听器->察看结果树)
查看运行结果
文章图片
运行,检查结果:
文章图片
文章图片
5、添加Assertion和Assert Results
如下图,选择控件添加(选择HTTP Request,右键,依次选择添加->断言->响应断言),添加测试值
文章图片
文章图片
如下图,选择控件添加(右键"线程组",依次选择添加->监听器->断言结果),查看断言执行的结果。
运行后, 如果HTTP Response中没有包含期待的字符串,那么test 就会Fail。
文章图片
6、使用用户自定义变量
通过Jmeter中定义变量。 比如定义一个变量叫 fundCode. 使用它的时候用 ${fundCode};
如下图,选择控件添加(右键“线程组”,依次选择添加->配置元素->用户定义变量)
文章图片
然后在Http Request中使用这个变量
文章图片
四、Jmeter简单的压力测试
1、使用CSV Data Set Config 来参数化
新建一个data.txt文件,参数数据放至txt文件中,一行有两个数据(分别表示fundCode、page),用逗号分隔。
文章图片
如下图,选择控件添加(右键点击"线程租",依次选择添加->配置元件->CSV Data Set Config),填写相关数据:
文章图片
2、添加HTTP Request.
Get请求:http://8.163.com/wyfund/getFundDailyGain.htm?fundCode={fundCode}&page={page}
如下图,选择控件添加(右键点击"线程租",依次选择添加->Sampler->HTTP请求),填写相关数据:
文章图片
3、 使用线程租Thread Group, 控制模拟多少用户
文章图片
说明:
a. 线程数:一个用户占一个线程, 200个线程就是模拟200个用户
b. Ramp-Up Period(in seconds): 设置线程需要多长时间全部启动。如果线程数为200,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
c. 循环次数:每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
4、添加Summary Report 用来查看测试结果
如下图,选择控件添加(右键点击"线程租",依次选择添加->监听->Summary Report)
5、 运行,查看结果
文章图片
五、利用Jmeter录制脚本
通过配置Web代理,利用jmeter录制脚本:
1、如下图,选择控件添加(右键点击"工作台",依次选择添加->非测试元素->HTTP代理服务器),配置端口-目标控制器-分组:
文章图片
2、设置chrome浏览器的代理服务器。
文章图片
3、浏览器中访问网站,相应请求进行录制。
文章图片
说明:Jmeter中录制的脚本比较乱,可设置忽略某些请求,另外创建与录制可结合使用。
网易云免费体验馆,0成本体验20+款云产品!
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 漫画解读“跨视图粒度计算”,了解有数分析利器
【推荐】 分布式存储系统可靠性系列五:副本放置算法 & CopySet Replication