postman设置token等关联参数

别说谁变了你拦得住时间么 提交于 2021-02-19 20:54:34
登陆时登录成功后服务器会返回一个token,这个token作为第二步骤的入参;第二个步骤请求成功后服务器会返回一个新token,然后这个token作为第三步骤的入参!如此一来的话,要用postman做接口测试,那么就要解决token这个参数的关联问题:
第一,首先将这三个要测试的接口写成collection:

 

第二,要设置postman的环境,设置名称,url,以及token(只需要设置key就行),如下图:
 

 

第三步,在Postman软件的Tests中写以下代码,设置环境变量
 

 

第四步,修改第二以及第三个接口的入参的tokend值,格式用双花括号:{{token}} 格式
 

 

到此就设置完成了,我们选择登陆接口点击send,此时token就会显示在环境变量中了,这时第二个接口就可以执行了;然后再执行第三个接口,此时这个流程就可以跑通了!
 
 

 

总结:其实像这样的1步骤产生token,2步骤关联1步骤的token,3步骤关联2步骤的token,4步骤关联3步骤的token ,这种情况我也是第一次接触,这种情况与我司的项目不同,我司项目中只要token有效期内就行,不会存在步骤间这种紧密的依赖关系。
 如果把这种项目的接口写成自动化脚本的话也比较冗长,因为我要在一个py中同时从步骤1写到步骤4.这样代码比较长了,代码如下:

#coding:utf-8
import requests,unittest
 
def chaxun():
    u'查询接口'
    s = requests.session()
    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',
        'Connection': 'keep-alive',
    }
    #发送请求
    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'
    #请求头部
    header2 = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
        'Connection': 'keep-alive'
    }
    #查询的入参
    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
    }
 
    r1 = s.post(url_2,headers = header2,data = in_data_2)
    print(r1.json())
    t1 = r1.json()['token']
    print('查询返回的token是:%s' % t1)
 
 
    url_3 = 'http://183.59.xxx.xx:8080/restful/api/custflow'
    # 登录的入参
    to1 = 'Bearer '+ t1
    # 请求头部
    header3 = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
        'Connection': 'keep-alive'
    }
    in_data_3 = {
        'customer': '广东丹姿集团有限公司',
        'elecode': 'IPCYW2270156401',
        'elename': 'IPCYW2270156401',
        'starttime': '2018061217',
        'endtime': '2018062418',
        'type': 0,
        'page': 1,
        'pagesize': 10,
        'token': t1
    }
    r3 = s.post(url_3, headers=header, data = in_data_3)
    print(r3.json())
 
 
if __name__=='__main__':
    chaxun()
转:https://blog.csdn.net/xgh1951/article/details/81665285

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!