Jmeter 接口测试

Jmeter 接口测试知识

参考资料

* [jmeter](http://jmeter.apache.org/)
* [manual]( http://jmeter.apache.org/usermanual/index.html )

jmeter简介

jmeter 是一款 java 开源的测试工具. 
    1. 多协议支持 ,http,https ,soap/rest, ftp ,jdbc ...
    2. 多线程并发
    3. GUI界面
    4. more...

名词解释

* test-plan : 
    测试计划 , 测试计划中有一个函数测试模式, 选中该选项后则从服务器请求的结果会保存到指定位置, 一般不选择,因为影响性能.,
    
* thread-group : 
    线程组 ,所有的samples,controllers 比需在thread group下面创建.顾名思义,线程组用来控制所有测试执行的线程
    
* Controllers : 
    控制器 ,两种分类,
    一种是samplers(样板),主要负责请求处理,比如http request Sampler 讲发送一个http请求;
    一种是逻辑控制器.主要负责定制请求逻辑,比如,交替控制器 ,可以交替的处理两个样板
     
* Samplers :
    样本(采集器), 主要用于处理jmeter的请求和响应.提供多种协议支持的样本
    
* Listeners :
    监听器, 主要监控请求和响应的数据
   
* Timers :
    定时器 , 线程组执行样本如果不设置延迟,则瞬间压力非常大
   
* Assertions: 
    断言 , 验证响应结果.
    
* Pre-Processor:
    前置处理器,顾名思义,请求前的处理
    
* Post-Processor:
    后置处理器,顾名思义, 响应后的处理

请求顺序

0. Configuration elements 
1. Pre-Processors
2. Timers
3. Sampler
4. Post-Processors (unless SampleResult is null)
5. Assertions (unless SampleResult is null)
6. Listeners (unless SampleResult is null)

Web 接口测试demo

jmeter 可以测试接口的功能和性能.
通过jmeter自带的tempalte 我们可以了解一些jmeter 大致的流程. 那么 ,我们假设一个场景: 用户登录,登录之后获取到我的信息.
这个场景主要需要,用户请求登录,登录之后返回用户token, 获取到用户token 访问用户信息接口,查询用户信息.首先,我们来实现功能测试.

流程介绍

1. 创建一个线程组 ,默认线程数1 ,循环2
2. 创建"用户定义的变量" 来设置一些公共的变量
3. 创建一个默认的 "http请求默认值"(所谓请求默认值,顾名思义,如果下面不指定,则这个就是标配)
4. 正常的流程,我们需要测试用户登录之后的一系列操作, 所以这里,我们创建逻辑控制器 "仅一次控制器" 来确定无论多少次循环都执行一次登录
5. 鉴于我们的登录需要传递一个json 的请求参数,这里需要创建一个自己使用的"http信息头管理器" ,设置content-Type 为 application/json
6. 创建一个sampler ,"http请求" 命名为 登录.Post ,Body-Data 传递一个json 的用户名和密码
7. 创建一个属于登录自己的断言, 判断成功必须包含一个assess_token
8. 创建一个属于登录自己的监听 "结果树"
9. 我们需要获取到token的值,所以,创建一个后置处理器 "正则表达式提取器",别忘了apply to: 指定main sample and sub-samples (我们的样板
        不在一个层级)
10. 创建一个"Http信息头管理器" (这个头信息默认为下面的功能提供默认携带token)
11. 创建另一个功能接口,"http请求" ...巴拉巴拉,按照以上顺序创建断言,结果树



**总结**
    我们在使用过程中测试了scope , 一个请求的范围,默认值得范围 ,最后我们看到,jmeter是有作用域的,虽然 官方文档中介绍了作用域,但是写一个demo
    才感受到有了作用域的强大.

你可能感兴趣的:(Jmeter 接口测试)