博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jmeter压力测试
阅读量:4538 次
发布时间:2019-06-08

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

Jmeter压力测试

1.     Jmeter 简介
一个非常优秀的开源的性能测试工具。
  优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。
从性能工具的原理划分:
Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:
  (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
  (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
  (3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。
  (4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。
2.     安装jmeter
jmeter 是Java程序,在Linux windows Mac系统都可以安装,配置好JDK环境就好

双击启动

支持中文,不需要汉化。选项中直接选择中文简体。

 

3.     测试步骤

1. 写脚本 或者录制脚本
2. 使用用户自定义参数
3. 场景设计
4. 使用控制器,来控制 模拟多少用户。
5. 使用监听器, 查看测试结果
3.1.     测试脚本

1 
2
3
4
5
6
false
7
false
8
9
10
11
12
13
14
15
continue
16
17
false
18
10
19
20
100
21
10
22
1509075599000
23
1509075599000
24
false
25
26
27
28
29
30
31
32
33
api.erp.zhaonongzi.com
34
35
http
36
utf-8
37
http://api.erp.zhaonongzi.com/APICenter/login.wn?loginForm=%7B%22device_code%22%3A%22863952037843214%22%2C%22mobile%22%3A%2215991608593%22%2C%22password%22%3A%2204dcf2e8981bf2ba0f35fb8ea4a18396%22%2C%22rs%22%3A1524037195%7D
38
POST
39
false
40
true
41
false
42
false
43
44
45
46
47
48
49
false
50
51
saveConfig
52
53
54
true
55
true
56
true
57
58
true 59
true
60
true
61
true
62
false
63
true
64
true
65
false
66
false
67
false
68
true
69
false
70
false
71
false
72
true
73
0
74
true
75
true
76
true
77
true
78
true
79
80
81
82
83
84
85
86
87
88
89
90
wd
91
jmeter性能测试
92
搜索词
93
=
94
95
96
97
98
99
false
100
101
saveConfig
102
103
104
true
105
true
106
true
107
108
true109
true
110
true
111
true
112
true
113
true
114
true
115
true
116
true
117
true
118
true
119
true
120
true
121
false
122
true
123
0
124
true
125
true
126
true
127
true
128
true
129
true
130
true
131
true
132
true
133
134
135
/Users/admin/Desktop/aggregate.csv
136
137
138
139
false
140
141
saveConfig
142
143
144
true
145
true
146
true
147
148
true149
true
150
true
151
true
152
false
153
true
154
true
155
false
156
false
157
false
158
true
159
false
160
false
161
false
162
true
163
0
164
true
165
true
166
true
167
true
168
true
169
170
171
172
173
174
175
false
176
177
saveConfig
178
179
180
true
181
true
182
true
183
184
true185
true
186
true
187
true
188
false
189
true
190
true
191
false
192
false
193
false
194
true
195
false
196
false
197
false
198
true
199
0
200
true
201
true
202
true
203
true
204
true
205
206
207
208
209
210
211
212
213

3.2.     配置
接口:
http://api.erp.zhaonongzi.com/APICenter/login.wn?loginForm=%7B%22device_code%22%3A%22863952037843214%22%2C%22mobile%22%3A%2215991608593%22%2C%22password%22%3A%2204dcf2e8981bf2ba0f35fb8ea4a18396%22%2C%22rs%22%3A1524037195%7D

3.3.     查看结果

3.4.    参数和结果说明
Number of Threads(users):     一个用户占一个线程,  200个线程就是模拟200个用户
Ramp-Up Period(in seconds):   设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。
Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
Ramp-up Period(in seconds)
【1】决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。  一般设置ramp-up=线程数启动,并上下调整到所需的。
【2】用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发
Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Note:关于 50% 和 90% 并发用户数的含义,请参考下文
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

4.     压力测试样例
http://api.erp.zhaonongzi.com/APICenter/login.wn?loginForm={%22device_code%22%3A%22863952037843214%22%2C%22mobile%22%3A%2215991608593%22%2C%22password%22%3A%2204dcf2e8981bf2ba0f35fb8ea4a18396%22%2C%22rs%22%3A1524037195}
100 10 10
server CPU 170%
DB cpu 40%
100 10 50
server CPU 170%
DB cpu 40%
150 10 10
server CPU 170%
DB cpu 40%
200 10 10
server CPU 200%
DB cpu 40%
500 10 10
server CPU 200%
DB cpu 40%
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Oops, you&#39;ve found a dead link. - JIRA</title><script type="text/javascript">contextPath = "";</script><link type='text/css' rel='stylesheet' href='/static-assets/metal-all.css' media='all'><script src='/static-assets/metal-all.js'></script><!--[if lt IE 9]><link type='text/css' rel='stylesheet' href='/static-assets/metal-all-ie.css' media='all'><script src='/static-assets/metal-all-ie.js'></script><![endif]--><!--[if IE 9]><link type='text/css' rel='stylesheet' href='/static-assets/metal-all-ie9.css' media='all'><![endif]--><meta name="decorator" content="none" /></head><body class=" error-page error404"><script type="text/javascript">document.body.className += " js-enabled";</script><div id="page"><header id="header" role="banner"></header><!-- #header --><section id="content" role="main"><div class="aui-page-panel"><div class="aui-page-panel-inner"><section class="aui-page-panel-content lowerContent"><div id="error-state"><span class="error-type"></span><h1>Oops, you&#39;ve found a dead link.</h1><ul><li>返回 <a href="javascript:window.history.back()">上一页</a></li><li>跳转到 <a href="/secure/MyJiraHome.jspa">主页</a></li></ul></div></section><!-- .aui-page-panel-content --></div><!-- .aui-page-panel-inner --></div><!-- .aui-page-panel --></section><!-- #content --><footer id="footer" role="contentinfo"><section class="footer-body">
5.    参数接口测试
我所测试的就是带参数的接口,只不过拼接到URL中了
下面这个是更好
wx 2018-04

314144952@qq.com

 

转载于:https://www.cnblogs.com/wangxu01/articles/8884453.html

你可能感兴趣的文章
被汉得拒绝以后
查看>>
转:Python自省(反射)指南
查看>>
SVN
查看>>
谷歌浏览器
查看>>
Python 流程控制:for
查看>>
android.os.NetworkOnMainThreadException异常如何解决
查看>>
我的轮播练习
查看>>
js中index()的四种经典用法111
查看>>
vb Array.ConvertAll 泛型方法
查看>>
flask 基本配置和参数解释
查看>>
HDMI转EDP芯片NCS8803简介
查看>>
Git查看、删除、重命名远程分支和tag
查看>>
nexus4/5/6/7/9/10设备谷歌安卓5.1.1系统底包下载
查看>>
子界类型的应用
查看>>
ubuntu系统中查看本机cpu和内存信息的命令和用法
查看>>
PHP的学习--cookie和session
查看>>
es6 箭头函数
查看>>
python装饰器的作用
查看>>
[bzoj2510]弱题 (循环矩阵优化dp)
查看>>
Django Form 的主要内置字段介绍
查看>>