Jmeter 介绍

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

而且用Jmeter 来测试 Restful API, 非常好用。

如何学好Jmeter

如果你用Jmeter去对Web进行功能测试,或者性能测试。 你必须熟练HTTP协议,才能学好Jmeter。 否则你很难理解Jmeter中得概念。

不熟悉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的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

第二步:新建一个 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 中取来的

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

最新文章

  1. C#窗体布局方式
  2. OrderSessionHelper查看订单在session是否存在的辅助类
  3. UVA 442 二十 Matrix Chain Multiplication
  4. iOS - Swift NSTimer 定时器
  5. Http中Cookie与Set-Cookie头
  6. Java语言基本语法
  7. CentOS 5 64bit 编译安装MySQL报错
  8. 一种基于Qt的可伸缩的全异步C/S架构server实现(二) 网络传输
  9. Hyperion Essbase BusinessRule 函数学习--2
  10. python语言学习5——输入和输出
  11. 我的Android 4 学习系列
  12. 浅谈前端中的mvvm与mvc
  13. vs查找功能不显示查找结果
  14. jqgrid修改表格内容为居中
  15. java的static与C#的static的异同
  16. LightOj 1030 - Discovering Gold(dp+数学期望)
  17. LetExpr表达式解读
  18. PyQt5教程——第一个程序(2)
  19. 算法的泛化过程(摘自《STL源码剖析》)
  20. 洛谷——P2799 国王的魔镜

热门文章

  1. 安装了C
  2. EALayout 实践
  3. Java的三种代理模式
  4. Python3基础 使用id() 查询变量的存储位置
  5. Python关键字yield的解释
  6. Mac 安装Eclipse
  7. 多因子降维法(MDR,multifactor dimensionality reduction)
  8. PHP函数 mysql_real_escape_string 与 addslashes 的区别
  9. PosixIO
  10. 支付宝 Android 版使用的开源组件