接口自动化测试世界里的身份证

发表于:2021-4-01 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:绿豆芽呀    来源:51Testing软件测试网原创

  在数字网络世界,“身份信息”就像我们的身份证一样,有身份证信息,我们才可以去办理个人社保、公积金、银行卡之类的信息,同样的我们要获取这些数据,都必须使用我们的身份证进行验证,否则对应的系统服务器无法识别,是否用户本人?应该给获取什么数据给对应的用户?
  同样的在接口的世界里面,不同的客户端向服务器请求信息时,也需要指定的“身份信息”来告知服务器该请求是哪个客户端发起的 。服务器根据接口对应的“身份信息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状态码,有利于我们快读判断接口错误的原因。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号