博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jmeter入门实例
阅读量:5068 次
发布时间:2019-06-12

本文共 2396 字,大约阅读时间需要 7 分钟。

此文已由作者夏君授权网易云社区发布。

欢迎访问,了解更多网易技术产品运营经验。

  本文主要结合实例、利用图形方式简要介绍Jmeter基本功能,以便新人快速入手,希望能结合具体测试场景提高测试效率:

一、Jmeter简介

Jmeter是一款使用Java开发的,开源免费的测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用。

官网:

二、Jmeter安装与使用

Jmeter 下载和运行

官方网站:

解压后, 运行“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)->线程租)

c7013d0a-4164-45f5-9132-383709a92553

说明:必须新建线程租Thread Group,Jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

2、新建HTTPS Request

如下图,选择控件创建(右键"线程租",依次选择添加->Sampler->HTTP请求)

8a90076c-e25a-4a10-8738-708119613086

设置Get请求: https://8.163.com/wyfund/getFundDailyGain.htm?fundCode=270001&page=1,如图所示:

bfb074a4-cc40-4e9e-bb49-986107daa5c5?imageView&thumbnail=980x0

3、添加HTTP信息头管理器

如下图,选择控件添加(HTTP请求右键,依次选择添加->配置元件->Http信息头管理器)

4023c61b-bb92-4899-8906-f7d643e14292

参数设置如图:

cca4f13c-4171-4071-aef3-ba827ddcb719?imageView&thumbnail=980x0

4、 添加View Results Tree

如下图,选择控件添加(线程租右键,依次选择添加->监听器->察看结果树)

查看运行结果

4a43bf91-46b1-4462-8935-11c2d3751762

   运行,检查结果:

2b87009e-1679-4435-bab1-f02e1c210ae3

a3b0981e-3dc3-49d0-b2a9-b7f54040f7b6

5、添加Assertion和Assert Results

如下图,选择控件添加(选择HTTP Request,右键,依次选择添加->断言->响应断言),添加测试值

0e99da89-d56d-4f03-936b-d4750484fd1c

91425c7f-643e-4ecb-b904-6a2ede404270?imageView&thumbnail=980x0

    如下图,选择控件添加(右键"线程组",依次选择添加->监听器->断言结果),查看断言执行的结果。

运行后, 如果HTTP Response中没有包含期待的字符串,那么test 就会Fail。

58ece905-c425-4882-b841-5e8736c6e73b?imageView&thumbnail=980x0

6、使用用户自定义变量

通过Jmeter中定义变量。 比如定义一个变量叫 fundCode. 使用它的时候用 ${fundCode};

如下图,选择控件添加(右键“线程组”,依次选择添加->配置元素->用户定义变量)

4d9a1ee9-1588-4ee1-9799-1c68a2255a14

然后在Http Request中使用这个变量

1c6c4d20-6cd0-45e7-bb3a-ef3d5f626b9d

四、Jmeter简单的压力测试

1、使用CSV Data Set Config 来参数化

新建一个data.txt文件,参数数据放至txt文件中,一行有两个数据(分别表示fundCode、page),用逗号分隔。

03a3eb93-b71f-48fc-a539-56f6f1aed69f

如下图,选择控件添加(右键点击"线程租",依次选择添加->配置元件->CSV Data Set Config),填写相关数据:

9d4e7944-b9b2-42f7-baf1-349e34236653

2、添加HTTP Request.

Get请求:http://8.163.com/wyfund/getFundDailyGain.htm?fundCode={fundCode}&page={page}

如下图,选择控件添加(右键点击"线程租",依次选择添加->Sampler->HTTP请求),填写相关数据:

c0dd64f8-4797-4f9e-b4c5-75209f0d1907

3、 使用线程租Thread Group, 控制模拟多少用户

2b023b2f-c696-44ea-95cf-98f65f3082ed

说明:

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、 运行,查看结果

8114ddcb-0ca5-454a-91bd-2b4356d1707a?imageView&thumbnail=980x0

五、利用Jmeter录制脚本

通过配置Web代理,利用jmeter录制脚本:

1、如下图,选择控件添加(右键点击"工作台",依次选择添加->非测试元素->HTTP代理服务器),配置端口-目标控制器-分组:

b4059be7-e0fe-4e53-9991-c047c58482df?imageView&thumbnail=980x0

2、设置chrome浏览器的代理服务器。

0b9627ae-4bfb-4ff7-9f18-a48f3675ae74

3、浏览器中访问网站,相应请求进行录制。

c1ec156d-eda5-49ab-829d-1c43f2c9367f

说明:Jmeter中录制的脚本比较乱,可设置忽略某些请求,另外创建与录制可结合使用。

网易云,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请。

相关文章:

【推荐】 

转载于:https://www.cnblogs.com/zyfd/p/9837162.html

你可能感兴趣的文章
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>