自己使用JMeter测试百度心得:
主要用到了1.添加线程组(一个测试的线程容器,可设置线程个数,循环次数,所有线程启动一次的周期时间)
2.在线程组 中添加sample --> http-request (一个请求的范式,可以设置请求的url和参数)
3. 在http-reqeust 中添加 timer,用于设置线程组工作一次后休眠时间,可以用于拷机测试。
4. 在http-reqeust 中添加 listener --> view result in table(用表格查看) 可以显示每个线程的请求时间和返回状态
5. 在http-reqeust 中添加 listener --> view result tree(查看结果树) 可以查看每一次请求返回的http报头和回复内容
6. 在http-request 中添加 listener --> Graph result(图形结果) 可以查看描点图,包括数据,平均,中值和吞吐量,比较直观看到每次请求的结果,和整体情况。
以下 转自:http://www.cnblogs.com/TankXiao/p/4045439.html
概述
JMeter 最早是为了测试 Tomcat 的前身 JServ 的执行效率而诞生的。到目前为止,它的最新版本是2.1.1,它的测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JMS、Web Service、LDAP等多种对象的测试能力。在最新的 2.1.1 中,它还提供了对于 JUNIT 的测试。
JMeter 的安装非常简单,从官方网站上下载,解压之后即可使用。运行命令在%JMETER_HOME%/bin 下,对于 Windows 用户来说,命令是 jmeter.bat。运行前请检查JMeter 的文档,查看是否具备相关的运行条件。对于最新版(即2.1.1),需要JDK的版本要求是JDK 1.4。
JMeter 的主要测试组件总结如下:
1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3. 监听器负责收集测试结果,同时也被告知了结果显示的方式。
4. 逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5. 断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
6. 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7. 前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8. 定时器负责定义请求之间的延迟间隔。
阅读目录
- Jmeter介绍
- 如何学好Jmeter
- Jmeter下载和运行
- 实际测试的例子
- 第一步: 新建Thread Group
- 第二步: 新建HTTP Request
- 第三步: 新建HTTP Header Manager
- 第四步: 新建 View Results Tree
- 第五步: 运行测试,查看结果
- 第六步: 添加Assertion和Assertion Results
- 第七步: 使用用户自定义变量
- 第八步: 关联
- 源代码下载
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.html 可以得到该城市的天气数据
第一步: 新建一个Thread Group
必须新建一个Thread Group, jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。
第二步:新建一个 HTTP Request
比如我要发送一个Get 方法的http 请求: http://toy1.weather.com.cn/search?cityname=上海
可以按照下图这么填
第三步 添加HTTP Head Manager
选中上一步新建的HTTP request. 右键,新建一个Http Header manager. 添加一个header
第四步: 添加View Results Tree
View Results Tree 是用来看运行的结果的
第五步:运行测试,查看结果
到这里。 我们已经成功运行起来了。
第六步:添加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://www.cnblogs.com/TankXiao/p/4045439.html