Jmeter详讲一 入门教程

Jmeter是一款优秀的开源测试工具,是开发和测试工程师都必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率;

1.Jmeter介绍

Jmeter是一款使用Java开发的,开源免费的测试工具,主要用来做接口测试(Restful API)和性能测试(压力测试/负载测试);

2. Jmeter 现在和运行

官方网站:http://jmeter.apache.org/

解压后, 运行  “bin/jmeter.bat”   

Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言

3.应用举例

目标:获取城市的天气数据:

第一步:发送request 获取城市的城市代号
http://toy1.weather.com.cn/search?cityname=上海 

从这个请求的response 中获取到上海的城市代码. 比如:上海的地区代码是101020100

第二步:发送request 到: http://www.weather.com.cn/weather2d/101020100.shtml 可以得到该城市的天气数据

3.1 新建一个Thread Group

新建一个Thread Group,  jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

 

 

3.2 新建一个HTTP Request

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

3.3 添加HTTP Head Manager

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

3.4 添加View Results Tree

View Results Tree 是用来看运行的结果的

3.5 运行测试,查看结果

 

到这里。 我们已经成功运行起来了。

补充知识---重要

 ***线程组设置

Number of Threads(users):虚拟用户数,一个虚拟用户数占用一个进程或线程,设置多少个虚拟用户数在这里就设置多少个线程数;

Ramp-up period(seconds):准备时长,设置虚拟用户数需要多长时间全部启动,如本例子中设置线程数为50,准备市场为2s,那么就是2s启动50个线程,也就是每秒启动25个线程;

Loop Count:循环次数,每个线程发送请求的次数,若设置为10,则总请求数为:50*10=500,如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本;

Delay Thread creation until needed:直到需要时延迟线程的创建;

Specify Thread lifetime:调度器,控制每个线程组运行的持续时间以及它在多少秒后再启动;

Duration(seconds):持续时间;线程组运行的持续时间;

Startup delay(seconds):启动延迟,测试计划开始后,线程组的线程将在多少秒之后再启动运行

***调度器和循环次数的关系

  • 循环次数有固定值且 ≠ -1,持续时间不会生效,以循环次数为准
  • 循环次数设置为永远或 -1 时,持续时间才会生效

***聚合报告参数

聚合报告参数详解:

1)Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

2) #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

3)Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间

4)Median:中位数,也就是 50% 用户的响应时间

5)90% Line:90% 用户的响应时间

6)Min:最小响应时间

7)Max:最大响应时间

8)Error%:错误率——错误请求数/请求总数

9)Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

10)KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

3.6  添加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. 

3.7 使用用户自定义变量

我们还可以在Jmeter中定义变量。 比如我定义一个变量叫 city.    使用它的时候用  ${city}

添加一个 User Defined Variables.  选中Thread Group: 右键 Add -> Config Element -> User Defined Variables.

我们添加一个变量: city

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

 

3.8 关联

所谓关联, 就是第二个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 中取来的

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值