在数字网络世界,“身份信息”就像我们的身份证一样,有身份证信息,我们才可以去办理个人社保、公积金、银行卡之类的信息,同样的我们要获取这些数据,都必须使用我们的身份证进行验证,否则对应的系统服务器无法识别,是否用户本人?应该给获取什么数据给对应的用户?

web接口测试工具jmeter(接口自动化测试世界里的)(1)

同样的在接口的世界里面,不同的客户端向服务器请求信息时,也需要指定的“身份信息”来告知服务器该请求是哪个客户端发起的 。服务器根据接口对应的“身份信息cookie”来识别发起请求的是谁,应该给其什么数据,且该数据是别人无法获取的。

Jmeter是一个常见的接口自动化测试工具,其提供了HTTP Cookie Manager来管理接口需要的“身份信息”。

基础概念

在cookie管理器之前需要了解以下两个概念:

Cookie

Cookie是远程服务端返回的识别用户身份信息,该信息存储在客户端,客户端每次进行操作时,会通过HTTP协议和服务器端进行Cookie的交互,验证身份信息正确才可交互成功(大多数需要登录后操作的接口上面会比较常见)。

Set-Cookie

设置HTTP Cookie,用来存储一些用户信息以便让服务器辨别用户身份的,一般是服务端返回的用户身份信息(大多数需要登录的接口上面会比较常见)。

Cookie和set-cookie之间的调用关系如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(2)

获取身份信息

用户登录成功后,服务器会通过登录请求的响应信息头(Response Headers)返回对应的“身份信息”,该信息存储在set-cookie中。

身份信息

我们可根据开发提供的接口文档找到身份信息指定的字段是哪一个,本文示例以XXX系统为例。

Response-headers下的set-cookie的第一个字段就是我们需要的“身份信息”:

Set-Cookie: ***_TOKEN=A73D75CE267E489EB61547BA1C5E89B0

具体如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(3)

提取身份信息

添加Regular Expression Extractor,通过正则表达式的方式从response headers中提取“身份信息” ,如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(4)

1.选择要检查的响应信息字段:此处选择Response Headers;

2.定义变量:下一个请求要引用的参数名称,用于存储正则表达式获取的结果;

3.正则表达式:其中()括起来的部分就是要提取的字符串(关于正则表达式的规则,可自行学习)。

使用cookie

菜单路径

web接口测试工具jmeter(接口自动化测试世界里的)(5)

添加cookie

登录接口的提取到的cookie信息:

在登录接口里面通过正则表达式获取到的cookie有多个,形成list类型的数据,此时需要通过对应的变量名来获取指定的有效cookie信息,例如本文中,有效的cookie对应的变量名为:cookie_g1=D5062B16CBA04005AA845CBB2E643B5D,如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(6)

1.Name:定义cookie的名称,接口中定义的cookie所在字段的名称;

2.Value:Cookie变量值得引用,从上一个请求中提取的cookie的变量名称:${cookie_g1};

3.Domain:定义cookie生效的域名,若不定义则请求时不会引用该cookie信息。

web接口测试工具jmeter(接口自动化测试世界里的)(7)

脚本

本文示范的请求只有一个,所以直接在该请求下添加cookie管理器,如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(8)

运行结果

登录后未设置对应的cookie管理器,或者cookie管理器的域名设置错误,则进行其他接口请求时,request内容会显示no cookies,则接口请求会报错401,如下图:

web接口测试工具jmeter(接口自动化测试世界里的)(9)

登录后的其他接口请求,会自动获取cookie管理器内的信息,作为cookie data进行身份信息验证:

web接口测试工具jmeter(接口自动化测试世界里的)(10)

常见状态码

以下为个人在进行接口测试过程中常见的状态码:

web接口测试工具jmeter(接口自动化测试世界里的)(11)

其他常见状态码可自行百度学习,在进行接口自动化测试过程中,掌握基础的常见HTTP状态码,有利于我们快读判断接口错误的原因。

我是谁?

我是一名从事了多年软件测试的老测试员,今年年初我花了一个月整理了一份最适合2020年学习的软件测试学习干货,可以送给每一位对软件测试感兴趣的小伙伴,想要获取的可以关注我的头条号 私信:【测试】,即可免费获取。

web接口测试工具jmeter(接口自动化测试世界里的)(12)

,