Jmeter性能测试 入门http://www.cnblogs.com/TankXiao/p/4045439.html

Jmeter 介绍 
Jmeter  是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试).  
而且用Jmeter 来测试 Restful API, 非常好用。 
 
 
如何学好Jmeter 
如果你用Jmeter去对Web进行功能测试,或者性能测试。 你必须熟练HTTP协议,才能学好Jmeter。 否则你很难理解Jmeter中得概念。 
不熟悉HTTP协议的话, 可以参考我的 【小坦克:HTTP 协议教程】 
 
Jmeter  下载和运行 
官方网站:http://jmeter.apache.org/ 
解压后, 运行  “bin/jmeter.bat”    
Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言 
 
实际测试的例子 
目标: 获取城市的天气数据: 
 
第一步: 发送request 获取城市的城市代号 
http://toy1.weather.com.cn/search?cityname=上海  
从这个请求的response 中获取到上海的城市代码. 比如: 
上海的地区代码是101020100 
上海动物园的地区代码是:  10102010016A 
 
第二步:  发送request 到: http://www.weather.com.cn/weather2d/101020100.shtml   可以得到该城市的天气数据 
 
第一步: 新建一个Thread Group 
必须新建一个Thread Group,  jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。 

Apache JMeter (2.11 r155454 
Eile Edit Search Run Options 
Test 
Worka 
Paste 
Reset Gui 
Openm 
Merge 
Save Selection Asm 
Save Node As Image 
Help 
ctrl-v 
ctrl-G 
Threads (Users) 
Test Fragment 
Config Element 
Timer 
Pre Processors 
Post Processors 
Assertions 
Listener 
setup Thread Group 
tearDown Thread Group 
read Group 
Defined Variables 
Save Screen As Image ctrl*Shift-G

 

 
第二步:新建一个 HTTP Request 

Apache JMeter (2.11 r155454 
Eile Edit Search Run Options Help 
http://www.cnbloqscom/tankxiao 
Test Plan 
Workaench 
Paste 
Duplicate 
Reset Gui 
Openm 
Merge 
Thread Group 
ctrl-x 
ctrl-c 
ctrl-v 
ctrl*Shift-c 
Logic Controller 
Config Element 
Timer 
Pre Processors 
Post Processors 
Assertions 
Listener 
n until needed 
Access Log Sampler 
AJP/1.3 Sampler 
Bean Shell Sampler 
8SF Sampler 
Debug Sampler 
FTP Request 
P Request 
Java Request 
O Stop Test Now 
Save Selection Asm

 
比如我要发送一个Get 方法的http 请求: http://toy1.weather.com.cn/search?cityname=上海  
可以按照下图这么填 
 

J Meter 
Eile Edit Searcn Run Help 
L 10 H IA 
c n blog 
HTrp—« 
HTTP Request 
Getcit,code 
Server Name or I 
HTTP Request 
Path: 
toytweathercotn 
Protocd[httpl htp 
Port 
Tüneouts 
Connect: 
Conten t encoding: 
C] Redirect Automatically e:] Redrects @ Use KeeNive C] Use multipartnotm-dataIorPOST D Browser-compatible headers 
Parameters Body Data 
Send Parameters With the Request 
Name: 
Add trom Cupboard 
Delete 
Send Fim With the Request 
File Path: 
Encode? Include Equals? 
Up 
Down 
Parameter Name: 
MIME Type:

 
第三步 添加HTTP Head Manager 
选中上一步新建的HTTP request. 右键,新建一个Http Header manager. 添加一个header 

Apache JMeter (2.11 r1554548) 
Eile Edit Search Run Options 
Test Plan 
Thread Group 
WorkBench 
Help 
HTTP Request 
Insert Parent 
Paste 
Duplicate 
Reset Gui 
ctrl-x 
ctrl-c 
ctrl-v 
ctrl*Shift-c 
Con Element 
Timer 
Pre Processors 
Post Processors 
Assertions 
Listener 
CSV Data set config 
FTP Request Defaults 
HTTP Cache Manager 
HTTP Cookie Manager 
Header Manager 
HTTP Authorization Manager 
HTTP Request Defaults

 

Apache JMeter (2.11 r1554548) 
File Edit Search Run Options Help 
Test Plan 
Thread Group 
Getctycode 
HTTPHeaderManager 
Workaench 
oo 
HTTP Header Manager 
Name: HTTP Header Manage 
Comments: 
Headers Stored in the Header Manager 
Name: 
Referer 
Add from Clipboard 
Value 
htt :/twwwweathencomcn 
Delete

 
第四步: 添加View Results Tree 
View Results Tree 是用来看运行的结果的 

Apache JMeter (2.11 r1554548) 
Eile Edit Search Run Options 
Comparison Assertion Visualizer 
Distribution Graph (alpha) 
Help 
JSR223 Listener 
Response Time Graph 
Test Plan 
Workaen 
cut 
Duplicate 
Reset Gui 
Openm 
Merge 
Save Selection Asm 
ctrl-x 
ctrl-c 
ctrl-v 
ctrl*Shift-c 
Simple Data Writer 
Spline Visualizer 
Logic Controller 
Summary Report 
Config Element 
Save Responses to a file 
Timer 
Graph Results 
Pre Processors 
Results Tree 
Sampler 
Assertion Results 
Post Processors 
Assertions 
t: C] Forever 1 
read creation un 
Generate Summary Results 
View Results in Table 
Monitor Results 
Aggregate Report 
Mailer Visualizer

 
第五步:运行测试,查看结果 
 

(E:xsta 
Eile Edit Search Bun Qptions Help 
Test Plan 
Thread Group 
GetC ityCode 
33 Resurs Tree 
eat her 
View Results Tree 
Name: View Results Tree 
Write results to tile I Read from file 
99tCityCog. 
C) Scroll automatically? 
548) 
Only: Errors Successes 
Sampler result Request Response data 
GET httpMoy1.weather.comavsearch?cityname=YE 
no cookies) 
equest Headers: 
onnediom keep-awe 
Reterer http•Jhww.weather.com.ü1 
Host toylweather_com.cn 
ser-Agent Apache-HttpClienV4.26 (java 1 S) 
Configure

 

GetWeather.•mx 
Eile Edit Search Bun Options 
Test Plan 
Getctycode 
VEw 
WorkBench 
üæJPÅFormat 
li 28 hotmail.com\Stash GetWeather. mx - Apac JM r .1 r15 548) 
Help 
oo go 
View Results Tree 
Write results to file J Read from file 
Lognsplay Only: Errors Successes 
Sampler result Request ResX»nse data 
Configure 
Jewis 
Jewish Refugees 
Urban 
on Center-YAGRE11"te-Shanghai Urban Planning Exhibition Cente 
ory Natural History M 
'SON

 
到这里。 我们已经成功运行起来了。 
 
第六步:添加Assertion和Assert Results 
选择HTTP Request, 右键 Add-> Assertions -> Response Assertion.  添加 Patterns To Test 
 
然后添加一个Assetion Results 用来查看Assertion执行的结果.  
选中Thread Group 右键  Add -> Listener -> Assertion Results.  
运行后, 如果HTTP Response中没有包含期待的字符串。 那么test 就会Fail.  
 
第7步: 使用用户自定义变量 
我们还可以在Jmeter中定义变量。 比如我定义一个变量叫 city.    使用它的时候用  ${city} 
添加一个 User Defined Variables.  选中Thread Group: 右键 Add -> Config Element -> User Defined Variables. 
我们添加一个变量: city 
 
然后在Http Request中使用这个变量 
 
第八步:关联 
所谓关联, 就是第二个Requst, 使用第一个Request中的数据 
我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用 
选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor 
 
现在新建第二个Http Request,发送到: http://www.weather.com.cn/weather2d/${citycode}.html  
${citycode} 中的数据, 是从Regular Expression Extractor 中取来的 

 
 
 

 
到这, 脚本就全部写好了, 运行下,看下最终结果 

 
 
 

 
现在新建第二个Http Request,发送到: http://www.weather.com.cn/weather2d/${citycode}.html  
${citycode} 中的数据, 是从Regular Expression Extractor 中取来的 

 

 
到这, 脚本就全部写好了, 运行下,看下最终结果 

posted @ 2017-11-28 12:31  春田花花同学会  阅读(163)  评论(0编辑  收藏  举报