前戏
一般我们的项目都是http的,测接口也是http,所以发送http请求是必须要会的,下面就以一个自己写的登录接口为例。
首先我们创建一个线程组,在创建一个HTTP信息头管理器,用来存放请求头,在创建一个HTTP请求,在创建一个查看结果树,用来查看我们的结果。
因为传的参数是json格式的,所以要在HTTP信息头管理器里注明Content-Type,如下
注:HTTP信息头管理器如果放在上面所有请求都会带上,如果是放在HTTP请求下面,则只有当前的HTTP请求会携带请求头
执行查看结果
这样一个最简单的HTTP接口就请求成功了
JSON Extractor提取参数
上面我们已经发送了一个登录请求,并且成功了,返回了token,现在我们还有一个获取课程的接口,需要携带token,我们可以把登录返回的token写到获取课程的接口里,但是当我们重新登录之后,token就发生了变化,如果还使用之前的token。接口就会返回token错误,如下
所以token不能写死,每次都需要从登录接口里获取token值。
因为接口返回的是JSON格式,jmeter提供了json提取器来快速帮我们获取对应的值,在正式提取之前,我们可以使用json提取器来测试我们的表达式
操作步骤如下
上面我们使用正确的表达式提取到了token,我们就可以把这个表达式放到JSON Extractor里了。
在登录接口下新增JSON Extractor,JSON Extractor在Post Processors中
界面参数如下
经过上面的一系列操作之后,我们就把我们的token提取出来存到了变量login_token里面,接下来我们要在获取课程接口里面使用这个token。
JMETER中引用变量的方法 ${变量名}
运行查看结果
Debug Sampler
上面我们使用json表达式测试的时候能保证我们的表达式是正确的,但有时候如果接口失败的话,那我们提取的值也就是错误的了,这时候如果一个接口一个接口的排查下去的话,会很浪费我们的时间,我们可以添加一个Debug Sampler,可以查看我们的所有变量
界面如下
运行jmeter查看debug sanpler
Debug Sampler一般放在最后