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

  邮件通知

原文地址:https://www.cnblogs.com/sunzzc/p/13393122.html