web接口测试工具jmeter(接口自动化测试世界里的)
在数字网络世界,“身份信息”就像我们的身份证一样,有身份证信息,我们才可以去办理个人社保、公积金、银行卡之类的信息,同样的我们要获取这些数据,都必须使用我们的身份证进行验证,否则对应的系统服务器无法识别,是否用户本人?应该给获取什么数据给对应的用户?
同样的在接口的世界里面,不同的客户端向服务器请求信息时,也需要指定的“身份信息”来告知服务器该请求是哪个客户端发起的 。服务器根据接口对应的“身份信息cookie”来识别发起请求的是谁,应该给其什么数据,且该数据是别人无法获取的。
Jmeter是一个常见的接口自动化测试工具,其提供了HTTP Cookie Manager来管理接口需要的“身份信息”。
基础概念
在cookie管理器之前需要了解以下两个概念:
Cookie
Cookie是远程服务端返回的识别用户身份信息,该信息存储在客户端,客户端每次进行操作时,会通过HTTP协议和服务器端进行Cookie的交互,验证身份信息正确才可交互成功(大多数需要登录后操作的接口上面会比较常见)。
Set-Cookie
设置HTTP Cookie,用来存储一些用户信息以便让服务器辨别用户身份的,一般是服务端返回的用户身份信息(大多数需要登录的接口上面会比较常见)。
Cookie和set-cookie之间的调用关系如下图:
获取身份信息
用户登录成功后,服务器会通过登录请求的响应信息头(Response Headers)返回对应的“身份信息”,该信息存储在set-cookie中。
身份信息
我们可根据开发提供的接口文档找到身份信息指定的字段是哪一个,本文示例以XXX系统为例。
Response-headers下的set-cookie的第一个字段就是我们需要的“身份信息”:
Set-Cookie: ***_TOKEN=A73D75CE267E489EB61547BA1C5E89B0
具体如下图:
提取身份信息
添加Regular Expression Extractor,通过正则表达式的方式从response headers中提取“身份信息” ,如下图:
1.选择要检查的响应信息字段:此处选择Response Headers;
2.定义变量:下一个请求要引用的参数名称,用于存储正则表达式获取的结果;
3.正则表达式:其中()括起来的部分就是要提取的字符串(关于正则表达式的规则,可自行学习)。
使用cookie
菜单路径
添加cookie
登录接口的提取到的cookie信息:
在登录接口里面通过正则表达式获取到的cookie有多个,形成list类型的数据,此时需要通过对应的变量名来获取指定的有效cookie信息,例如本文中,有效的cookie对应的变量名为:cookie_g1=D5062B16CBA04005AA845CBB2E643B5D,如下图:
1.Name:定义cookie的名称,接口中定义的cookie所在字段的名称;
2.Value:Cookie变量值得引用,从上一个请求中提取的cookie的变量名称:${cookie_g1};
3.Domain:定义cookie生效的域名,若不定义则请求时不会引用该cookie信息。
脚本
本文示范的请求只有一个,所以直接在该请求下添加cookie管理器,如下图:
运行结果
登录后未设置对应的cookie管理器,或者cookie管理器的域名设置错误,则进行其他接口请求时,request内容会显示no cookies,则接口请求会报错401,如下图:
登录后的其他接口请求,会自动获取cookie管理器内的信息,作为cookie data进行身份信息验证:
常见状态码
以下为个人在进行接口测试过程中常见的状态码:
其他常见状态码可自行百度学习,在进行接口自动化测试过程中,掌握基础的常见HTTP状态码,有利于我们快读判断接口错误的原因。
我是谁?我是一名从事了多年软件测试的老测试员,今年年初我花了一个月整理了一份最适合2020年学习的软件测试学习干货,可以送给每一位对软件测试感兴趣的小伙伴,想要获取的可以关注我的头条号 私信:【测试】,即可免费获取。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com