接口测试token失效的问题

问题来源:

最近没事会接口测试的群里潜水学习,碰巧今天在接口自动化的群里有个好友问了一个问题,其实就是关于token的问题

1.首先是一个登陆接口,该接口是第一个接口所以不需要header,但是用脚本写的时还是要传一个header进去,所以我就传了一个浏览器默认的header解决了问题,其次对于form-data的入参类型要以data=的形式去传

2.当第一个问题解决以后他又来问我,说用登录返回的token去请求查询接口的时为什么有报错了,报错:token错误

  我当时就郁闷了,打印出来看发现token明明是正确的啊,为什么服务器返回token错误呢?

 我就想到了,可能是seesion的问题,可能是由于登录接口再另一个py文件中,调用请求查询接口时就是另外一个session了,

所以就来修改了一下脚本,将登陆和查询写在一个py文件中,用一个seesion去管理,代码如下:

#coding:utf-8
import requests

s = requests.session()
def chaxun():
    u'查询接口'
    url = 'http://183.59.xxx.xx:8080/restful/api/authentication'
    #登录的入参
    in_data = {
        'username': "sendi",
        'password': "2MDL010618",
      'appid':"HDC2054490406A"
    }
    #请求头部
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }
    #发送请求
    r = s.post(url,headers = header,data = in_data)
    #获取token
    t = r.json()['token']
    print('登录返回的token是:%s' % t)

    #'信息查询接口'
    url_2 = 'http://183.59.xxx.xx:8080/restful/api/custinfo'
    #登录的入参
    in_data_2 = {
        'customer':'佛山威立雅垃圾填埋处理有限公司',
        'elecode':'IPCYW2267381990',
        'elename':'IPCYW2267381990',
        'NEName':'高明杨梅杨梅二楼综合机房01/S-T64G-1',
        'portName':'gei_4/8',
        'disabled':0,
        'is_vip':0,
        'page':1,
        'pagesize':10,
        'token':t
    }
    #请求头部
    r = s.post(url_2,headers = header,data = in_data_2)
    print(r.json())

if __name__=='__main__':
    chaxun()

打印一下:

查询成功,问题解决!。。。。哈哈!

以此记录一下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Postman登录接口测试需要使用token进行验证。在请求登录接口时,需要先获取token,然后将token作为请求头中的Authorization参数传递给服务器。服务器会根据token进行验证,如果验证通过,则返回登录成功的信息,否则返回登录失败的信息。在测试过程中,需要注意token的有效期和正确性,以确保测试结果的准确性。 ### 回答2: postman是一款流行的API接口测试工具,可以用来对各类API进行测试,包括登录接口测试。在登录接口测试中,通常会用到token,用于验证用户身份和保持用户会话状态。下面是关于postman登录接口测试token的一些解析和实例。 1. 了解token 在进行登录接口测试时,需要先了解一下tokentoken是一种身份验证方式,可以用来验证用户身份和保持用户会话状态。Token是由服务器生成的一串字符串,作为客户端进行请求的凭证,具有时效性。通常在登录成功之后,服务器会返回一个token给客户端。此后,客户端在后续的请求中,需要携带这个token。 2. 设置postman环境变量 在postman中进行登录接口测试时,需要先设置环境变量来保存token。具体方法是: (1)打开postman软件,选择左上角的Manage Environments图标,进入环境管理页面; (2)点击Add按钮,设置一个新环境,比如命名为“token_env”; (3)点击Add按钮,添加Key为“token”,Value为空的环境变量,点击Update按钮。 环境变量设置完成之后,在进行测试请求时,就可以通过环境变量来保存和携带token。 3. 设置登录接口测试请求 登录接口测试请求通常包括用户名和密码两个参数,同时需要将token保存到环境变量中。具体方法是: (1)在postman中选择请求的请求方式(Get/Post/...),填写请求的URL地址和请求参数; (2)选择设置请求Headers,添加一个Header,Key为“Content-Type”,Value为“application/json”; (3)选择设置请求Body,在Body中填写用户名和密码参数,比如: { "username": "admin", "password": "admin123" } (4)将请求的response中的token保存到环境变量中,比如: pm.environment.set('token', pm.response.json().token); 设置完毕后,点击Send按钮进行请求,请求成功之后,就可以通过{{token}}来获取环境变量中保存的token。 4. 存储和携带token 在后续的请求中,需要携带token来维护用户的会话状态。具体方法是: (1)在请求的Header中,添加一个Header,Key为“Authorization”,Value为“Bearer {{token}}”; (2)点击Send按钮,即可完成请求。 通过以上设置,就可以在postman中进行登录接口测试,并且保存和携带token了。需要注意的是,在实际的项目中,需要根据接口文档和实际需求来设置请求参数和header。同时,还可以使用Postman的测试脚本和测试集合来完善测试自动化和测试覆盖率。 ### 回答3: 当使用Postman对登录接口进行测试时,需要获取一个有效的token才能进行后续的操作。否则,将无法向接口发送请求。 通常,登录接口会返回一个JWT token。JWT(JSON Web Token)是一种基于JSON格式的用户身份验证标准。该标准定义了一个简洁、自包含的方式,用于在通信双方之间传递安全信息。因此,在登录接口中,应该返回包含token的JSON格式数据。 使用Postman进行接口测试,需要在Headers中添加Authorization字段,并将Bearer + token值作为value。其中,Bearer是固定的字段,token值需要根据登录接口返回的信息来获取。 在获取token之后,我们可以使用Postman发送其他请求。例如,获取某些资源、提交表单等。只需要在Headers中添加Authorization字段,并填写对应的值即可。 需要注意的是,当token过期或无效时,接口将拒绝请求。此时,需要重新获取token,并将其更新到Headers中。这就是为什么我们需要使用Postman登录接口测试token的原因之一。 总之,使用Postman进行接口测试时,我们需要先获取有效的token。该token将用于后续的请求头中进行身份验证。而且,我们需要不断地更新token来避免因为token过期而无法进行测试
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不过如此1951

如果有收获,可以打赏一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值