接口测试中的Token鉴权(Postman中Token的获取和引用)

Token鉴权是验证用户访问权限的一种方式,常用于Web身份验证。在接口测试中,当遇到Token鉴权,可以通过Postman这样的工具进行处理。首先,从登录接口获取Token并将其设置为环境变量。接着,在需要鉴权的接口请求Header中引用这个环境变量作为Authorization。如果不引用Token,请求可能会失败。这样确保了每次请求都能携带正确的鉴权信息。

什么是Token鉴权?

鉴权是指验证用户是否有权访问系统的行为。

Token 鉴权是其中一种鉴权方式,其他的鉴权方式还有HTTP Basic Authentication、session+cookie、OAuth

Token是一个令牌,通俗地说就是“暗号”,他是服务端生成的一串字符串。

在进行一些数据传递之前,要核对暗号。在web领域,基于Token的身份验证非常常见,如很多操作是在登录之后进行的,用户第一次登录成功后会返回一个Token,后续的操作带上这个token来请求数据即可,不用再带上用户名和密码。如果没有带Token,说明用户没有登录成功,无法进行后续操作。

那么接口测试过程中,遇到Token鉴权问题,怎么进行测试呢?

以我常用的接口测试工具Postman为例,介绍一下Token引用方法。
 

Token的引用

一般情况下,每次登录返回的token值都是变化的,这种情况下,可以将读取到的Token值设为环境变量/全局变量,token变化,环境变量读取的值也会变化。

步骤一:从登录接口获取Token

登录接口响应成功后,可以看到返回一串Token字符串

 步骤二:将获取到的token设置为环境变量

 步骤三:点击【send】之后,在右上角眼睛图标这里就可以看到这个变量及变量值了

 

步骤四:在请求Header中引用Token

在需要引用token的接口的请求Header中添加KEY:Authorization,值为你设置的环境变量{{token}}

 

然后点击【send】,验证结果。

备注:如果不引用token,发送之后可能是下面这个返回结果:

 最后:下方这份完整的【软件测试】视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

 

 

### 模拟token失效的接口测试方法 在接口测试中,模拟token失效是验证系统在异常状态下的行为是否符合预期的重要手段。可以通过以下方式实现: 1. **使用错误或过期的token** 在请求头中手动设置一个错误、无效或已过期的token值,模拟用户凭证不合法的场景。例如: ```python import requests def test_invalid_token(): url = "https://api.example.com/protected-endpoint" headers = { "Authorization": "Bearer invalid_or_expired_token_here" } response = requests.get(url, headers=headers) assert response.status_code == 401 assert response.json()["error"] == "Unauthorized" # 假设返回指定错误信息 ``` 这种方式可以验证系统是否能正确识别并处理非法token的情况[^1]。 2. **绕过token生成机制直接构造请求** 如果token是由服务器动态生成(如通过登录接口),可以在测试时跳过正常的登录流程,直接使用伪造或篡改的token进行调用,以模拟失败的情形。例如,在登录接口未调用的情况下直接访问受保护接口,此时应返回token缺失的错误码。 3. **利用工具设置断言验证错误码响应内容** 在自动化测试工具中(如Postman或JMeter),可通过添加断言来校验接口在token异常时返回的状态码及响应体是否符合预期。例如在Postman中添加响应断言,检查是否返回`401 Unauthorized`及对应的错误描述字段[^2]。 4. **结合接口文档中的安全要求进行边界测试** 针对token的有效期、签名算法、加密方式等安全策略,设计相应的测试用例。例如,故意发送一个时间戳超出容忍范围的JWT token,或使用错误签名算法生成的token,验证服务端是否能够正确拒绝此类请求。 5. **测试token为空的情况** 直接省略请求头中的`Authorization`字段,模拟用户未携带token访问受限资源的场景。此时应返回明确的失败提示。 ```python def test_missing_token(): url = "https://api.example.com/protected-endpoint" response = requests.get(url) assert response.status_code == 401 assert response.json()["error"] == "Token not provided" ``` 6. **模拟token格式错误** 发送格式不正确的token,如缺少前缀、包含非法字符或结构损坏的JWT字符串,确保服务端能正确识别并返回相应错误码。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值