• Requests 提取token


    在做页面串行的时候 往往需要传入上个页面的数值

    一般需要 token  cookie session 

    提取方式大致相同

    body:
    data:默认表单格式
    json:json格式
    """
    import json
    import requests
    from random import randint

    class My_request(object):

    # token函数 调用函数就可获取token值 再用到新增接口
    def get_token(self):
    # 获取token
    token_urls = 'http://47.96.181.17:9090/rest/toController'
    payload = {'userName': 'J201903070064', 'password': '362387359'}
    header_token = {'Content-Type': 'application/json'}

    # 发送请求 json 请求体
    res = requests.post(token_urls, json=payload)

    # data表单格式比较麻烦
    # res = requests.post(token_urls,data=json.dumps(payload),headers= header_token)
    # 返回响应数据 输出字符串格式
    # json.loads() 把字符串 转为字典对象 再通过键取值
    # return json.loads(res.text)['token']

    # 本身是字典形式的话 直接 .JSON
    # 返回json 字典格式
    return res.json()['token']


    # ---------------------- 新增用户接口 ----------------------

    class Register(My_request):
    def __init__(self):
    self.token = My_request().get_token()
    self.addUsr_url = 'http://47.96.181.17:9090/rest/ac01CrmController'
    self.payload = {

    "aac003": "张三",
    "aac004": "1",
    "aac011": "21",
    "aac030": f"134{randint(11111111,99999999)}",
    "aac01u": "88002255",
    "crm003": "1",
    "crm004": "1",
    "crm00a": "2018-11-11",
    "crm00b": "aaaaaa",
    "crm00c": "2019-02-28",
    "crm00d": "bbbbbb"
    }
    self.header_addusr = {'Content-Type': 'application/json', 'X-AUTH-TOKEN': '%s'%self.token}

    def requests(self):
    #
    # 发送请求 url 请求体
    res = requests.post(self.addUsr_url,json=self.payload,headers = self.header_addusr)
    print(res.json())

    # 查看发出去的请求: fiddler,print打印
    # 查看请求头
    # print(res.request.headers)

    # 引入完美打印
    # import pprint
    # pprint.pprint(res.json())

    # 断言
    try:
    assert res.json()['message'] == '成功'
    print(f'--接口pass,总共耗时{res.elapsed.total_seconds()}s--')
    except Exception as e:
    print(f'--接口fail,总共耗时{res.elapsed.total_seconds()}s--')




    if __name__ == '__main__':
    rg = Register()
    rg.requests()

    后期可以对数据进行断言 assert

            # 断言
    assert res.json()['message'] == '成功'

    也可以进行完美打印

            # import pprint
    # pprint.pprint(res.json())

    每次都需要更改参数会很麻烦 可以添加 随机区间

    from random import randint
    "aac030": f"134{randint(11111111,999999999)}",

     也可加入耗时获取

    # 断言
    try:
    assert res.json()['message'] == '成功'
    print(f'--接口pass,总共耗时{res.elapsed.total_seconds()}s--')
    except Exception as e:
    print(f'--接口fail,总共耗时{res.elapsed.total_seconds()}s--')

    后续优化 

      封装

      结合 excel 测试用例 yaml用例

      结合pytest框架

      导出allure报告

      调试

      jenkins

      邮件通知

  • 相关阅读:
    第二章Redis管理实战
    第一章Redis入门部署及持久化介绍
    数据库命令
    第一章MySQL介绍及安装
    第十一章 MHA高可用及读写分离
    第八章 日志管理
    第九章 备份和恢复
    第十章 主从复制
    关系型数据库和非关系型数据库的对比
    MySQL面试题
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13393122.html
Copyright © 2020-2023  润新知