cfnetwork php接口,Python+request 登录接口reponse的返回值token跨py文件的传递《二》...

主要使用场景:

一般我们在进行接口测试时,依赖登录接口后reponse中的某些返回值,因此需要将login接口单独写一个py文件,另外的py文件均可调用login的reponse返回值使用。共用登录接口。

操作步骤:

1、创建gol命名的py文件,对全局变量的使用方法进行封装,后期有用到全局变量时均可使用

2、单独创建login的py文件,和todo的py文件。

3、todo文件中调用login并运行,查看结果

页面结构如下截图:

26812d63815d96317288ece42ded5140.png

操作步骤代码如下:

1、gol.py 文件中主要是对之后全局变量可使用的封装

# -*- coding: utf-8 -*-

#全局变量使用

def _init(): # 初始化

global _global_dict

_global_dict = {}

def set_value(key, value=None):

""" 定义一个全局变量 """

_global_dict[key] = value

def get_value(key, defValue=None):

""" 获得一个全局变量,不存在则返回默认值 """

try:

return _global_dict[key]

except KeyError:

return defValue

2、login.py 文件是登录接口的方法。注意点:

(1)需调用  import gol

(2)需要初始化gol,gol._init()

(3)对需要设置为全局变量值的写法,gol.set_value("uuid",uuid)  这里我将uuid设置了全局变量

#!/usr/bin/env python

# coding=UTF-8

import requests

import gol

gol._init() #初始化了gol

def login():

url = "https://***.***.com/v2/user/login"

data = {

"mobile": "",

"password": "33a7d3da476a32ac237b3f603a1be62fad00299e0d4b5a8db8d913104edec629"

}

headers = {

"version": "2.3.0",

"version-id": "",

"device-id": "8BAFD18C-61E3-4BAF-8AB1-0BC16E567633",

"time": "",

"channel-id": "",

"os": "ios",

"Accept-Language": "zh-tw",

"device-name": "iPhoneX",

"User-Agent": "iBer/235 CFNetwork/976 Darwin/18.2.0",

#注:一定不能加content-type,否则报签名错误

# Content-Type: multipart/form-data; boundary=vHsPJ5s6grMzpmWoZxd3T3o6.LcUWBvUUu0gDNubaf05Ve7kv6bAkH3s_rr0AEc2D6AbEh

"sign": "a81b4379f504f330e83792ce2015e629"

}

r = requests.post(url=url, data=data, headers=headers, verify=False)

uuid = str(r.json()["data"]["uuid"])

gol.set_value("uuid",uuid) #注意此处设置了uuid为全局变量

token = str(r.json()["data"]["token"])

gol.set_value("token",token) #注意此处设置了token为全局变量

version = "2.2.1" version_id = "" print "登录成功,如下是reponse返回的内容" print r.text #login()

3、todo.py 文件是对某个模块的接口编写,中使用到了login接口的reponse返回值token和uuid,注意点:

(1)需调用  import gol

(2)不需要初始化gol._init()

(3)获取全局变量的写法  gol.get_value("uuid")

(4)为了方便,我使用了unittest框架

#!/usr/bin/env python

# coding=UTF-8

import requests

import unittest

from login import login

import gol

class todo(unittest.TestCase):

def setUp(self):

login()

def test_create_todo(self):

#print login.login.uuid

url = "https://***.***.com/v2/todo/create"

data = {

"name": "",

"todo_remind_type": "",

"cate_uuid": "86799e50d9890ade579c4ac88059a5ff",

"all_day": "",

"todo_start": "2019-05-13",

"todo_end": "",

"type": "",

"repeat_tyep": "",

"c_user_uuid": ""

}

headers = {

"version": "2.3.0",

"version-id": "",

"os": "ios",

"sign": "",

"is-test": "",

"uuid": gol.get_value("uuid"), #对uuid的调用

"token": gol.get_value("token") #对token的调用

}

r = requests.post(url=url, data=data, headers=headers, verify=False)

print "%%%%%%%%%%%%%%%%%%start"

print gol.get_value("uuid") #对获取的uuid进行打印,查看结果

print gol.get_value("token")

print "%%%%%%%%%%%%%%%%%%end"

print r.json()

if __name__ == "__main__":

unittest.main()

Python+request 登录接口reponse中token传递给其他接口使用,小示例介绍《一》

要求: 1.调用登录login 2.调用通过登录接口返回的reponse中的token和uuid,实现test_create_todo接口的测试 实现: 1.login登录接口的调用,直接填写对应的U ...

java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程

用ThreadLocal管理线程,Callable接口实现有返回值的线程 ThreadLocal在我的笔记"关于线程同步"的第5种方式里面有介绍,这里就不多说了. ...

[Day14]Eclipse高级、类与接口作为参数返回值

l  不同修饰符的使用   类,最常使用public修饰   成员变量,最常使用private修饰   成员方法,最常使用public修饰 l  自定义数据类型的使用   类作为方法参数时,说明要向方 ...

Java面向对象(Eclipse高级、类与接口作为参数返回值)

面向对象 今日内容介绍 u Eclipse常用快捷键操作 u Eclipse文档注释导出帮助文档 u Eclipse项目的jar包导出与使用jar包 u 不同修饰符混合使用细节 u 辨析何时定义变 ...

14_Java面向对象_第14天(Eclipse高级、类与接口作为参数返回值)_讲义

今日内容介绍 1.Eclipse常用快捷键操作 2.Eclipse文档注释导出帮助文档 3.Eclipse项目的jar包导出与使用jar包 4.不同修饰符混合使用细节 5.辨析何时定义变量为成员变量 ...

(转)python编写登录接口

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...

Python基本语法_函数_返回值

目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...

python使用threading获取线程函数返回值的实现方法

python使用threading获取线程函数返回值的实现方法 这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下 threading用于提供线程相 ...

Python调用C的SDK出现返回值不符合预期以及Segmentation fault

1.sdk返回值不是int型 1.1 登录函数调用 def login(ip, port, username, password, device_info, error_code):"&qu ...

随机推荐

iOS角度与弧度转换

在iOS中图片的旋转单位为弧度而不是角度,所以经常会在两者之间进行转换 弧度转角度 #define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / ...

PyVISA介绍

针对测量仪器进行编程比较痛苦,存在各种各样的协议以及通过不同接口和总线(GPIB.USB.RS232).使用任何一种语言去编程,你必须找到支持仪器和对应总线的合适的库. 为了解决这种问题,VISA应运 ...

@echo off 与echo off

echo off 关闭其他命令的显示(但是不包括自身这条命令) @echo off 关闭所有命令的显示(@关闭其后命令的显示)

01_根据Id查询User的数据

[工程目录] [数据库表中内容 user表] [sqlMapConfig.xml配置文件主要内容] 简述:sqlMapConfig.xml配置文件主要有两个作用: 1.配置和数据连接的相关信息,例如事 ...

CSS画三角形引发的一些思考

今天刷知乎时看到了一个问题,有谁能详细讲一下css如何画出一个三角形?怎么想都想不懂? - 知乎.很巧,刚入前端坑的我前不久也遇到过这个问题,今天再来谈一谈这个问题则是因为知乎的一些答案引发了我的 ...

SoupUI接口测试学习分享

一.SoapUI的使用 我们主要用SoapUI的REST 测试功能来测试我们协议接口.RESTful是一种服务端API的规范,每个资源对应唯一的URI,然后用HTTP的POST.GET.PUT.DEL ...

浅学vue

因之前项目接触了vue,从此我被迷住,简洁而不失优雅,小巧而不乏大匠. 首先我们要了解vue,什么是vue,正如官网所说:Vue.js 是一套构建用户界面的渐进式框架,Vue 的核心库只关注视图层.V ...

Tomcat系列(8)——Tomcat运行模式连接数和线程池

Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据:然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Reques ...

python装饰器学习笔记

定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 #-*-coding:utf-8-*- 1 imp ...

unity 归纳

1.获取控件四个角在屏幕上的坐标 Vector3[] corners = new Vector3[]; gameObject.GetComponent().G ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值