zoukankan      html  css  js  c++  java
  • postman设置token等关联参数

    登陆时登录成功后服务器会返回一个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
  • 相关阅读:
    oracle case when的使用方法
    php数字,字符,对象判断函数
    php is_dir 判断是否为目录
    mysql服务器查询慢原因分析与解决方法
    php生成html文件的多种方法介绍
    php mysql mysqli区别比较详解
    C++定时器用法(已经封装成类)
    获取远程计算机MAC
    批量获取远程计算机MAC
    c++封装日志类
  • 原文地址:https://www.cnblogs.com/Ladylittleleaf/p/10648419.html
Copyright © 2011-2022 走看看