前言:

        在测试工作中,我们经常会遇到,在执行某项业务之前,必须要先登录,只有登录后才能执行某项业务工作的场景,比如:你必须登录后才能执行查询操作,你必须登录后才能执行新增操作,否则就会报错没有权限。这实际上是在登陆时系统会产生一个token值,在之后的所有业务活动中都会伴随着这个token值(就像古代皇宫里的令牌似的,有牌才让你进)。

在接口测试和性能测试时就要用到token值的传递。

介绍两个组件

1. HTTP信息头管理器

用于储存请求时要包含的信息头,其中就包含token

java怎么怎么把请求头的token设置为空呢 http请求头token_接口测试

HTTP请求默认值,

一般是为了省去填写相同的数据,放在全局位置,然后线程组下的请求就可以共用这个ip端口之类的了

java怎么怎么把请求头的token设置为空呢 http请求头token_HTTP_02

1、用户登陆时产生token

一般情况下,token值都是在登陆时产生的随机的固定长度的字符串

java怎么怎么把请求头的token设置为空呢 http请求头token_jmete_03

2、提取token

java怎么怎么把请求头的token设置为空呢 http请求头token_jmete_04

提取的这个正则表达式为:

"token":"(.+)",

(1)但是要注意(.+)的匹配是一次或多次,也就是说如果不是token 而是taskid有多个taskid的你就提取不到

(2)这个时候我们就要用(.+?)这样就是:不要太贪婪,在找到第一个匹配项后停止。

"taskId":"(.+?)",

第二种方式是最稳妥的

3、将token设置为全局变量

${__setProperty(newtoken,${tokenlist},)}

java怎么怎么把请求头的token设置为空呢 http请求头token_接口测试_05

4、在全局HTTP信息头中引用

名称:token 值: ${__property(newtoken)}

java怎么怎么把请求头的token设置为空呢 http请求头token_性能测试_06

        在这个全局的信息头中引用后,后续所有的请求都可以不用再加信息头了,因为这个是全局的,不管哪个请求执行,都会有这个全局信息头参与一同请求

备注:如果是录制的请求,可能每一个http请求都会带一个信息头,也可以使用jmeter的查找与替换功能,将固定token值替换成 ${__property(newtoken)}

这时,全局的http信息头管理器就可以禁用了

java怎么怎么把请求头的token设置为空呢 http请求头token_接口测试_07