主要使用场景:

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

操作步骤:

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

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

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

页面结构如下截图:

  

操作步骤代码如下:

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跨py文件的传递《二》的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. (转)python编写登录接口

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

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

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

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

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

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

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

随机推荐

  1. 前端通过将json转成excel文件下载

    方法一: 将table标签,包括tr.td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,代码如下 ...

  2. java源码 -- TreeSet

    这个TreeSet其实和HashSet类似.HashSet底层是通过HashMap实现的,TreeSet其实底层也是通过TreeMap实现的. 简介 TreeSet的作用是保存无重复的数据,不过还对这 ...

  3. SysTick系统定时器(功能框图和优先级配置)

    SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit (2^24)的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置 ...

  4. Tree Generator™ CodeForces - 1149C (线段树,括号序列)

    大意: 给定括号序列, 每次询问交换两个括号, 求括号树的直径. 用[ZJOI2007]捉迷藏的方法维护即可. #include <iostream> #include <algor ...

  5. (八)springmvc之静态资源的访问。

    一.直接调用 行内样式或者js直接调用没有问题. <span style="font-size:26px;color: Blue">行内样式</span> ...

  6. Vs2019 C# .net core 将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效

    https://www.cnblogs.com/xiyuan/p/10632579.html 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 ...

  7. c#基于TCP/IP、CIP协议的欧姆龙PLC通信

    一.关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是一个点到点的面向对象协议,能够实现工业器件(传感器,执行器)之间的连接,和高等级的控制器之间的连 ...

  8. aspnet core 全局模型验证,统一api响应

    上手就来 新建一个模型验证过滤器,其中ApiResp是自定义的统一响应类. public class VldFilter:IActionFilter { /// <summary> /// ...

  9. 设计模式(四)——代理模式(Proxy)

    代理模式的参与者有:一个约束.一个代理者.一个被代理者.一个调用者 代理模式的实现很简单:还是那个房子,对于开门这个操作,我更换了一个远程解锁的门,那么我就可以通过这个远程连接的服务器远程解锁,这样我 ...

  10. Linux命令(1)grep

    开发过程中,与测试运维中 逐渐学习 运维常用的Linux 命令: 转自https://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Lin ...