主要使用场景:

  一般我们在进行接口测试时,依赖登录接口后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. FCM实现手机推送,推送的方式,真机调试

    FCM实现手机 1 下载Androidstudio 3.2 版本,之后新建一个项目 2  创建完项目之后查找文件AndroidMainifest.xml 3  访问网站注册一个自己的firebase的 ...

  2. elasticsearch7.1.1【win】下载安装

    下载:https://www.elastic.co/cn/downloads/elasticsearch 历史版本下载:https://www.elastic.co/cn/downloads/past ...

  3. Redis 常用命令学习二:字符串类型命令

    1.赋值与取值命令 127.0.0.1:6379> set foo helloredis OK 127.0.0.1:6379> get foo "helloredis" ...

  4. python学习-28 map函数

    1. num_1 = [10,2,3,4] def map_test(array): ret = [] for i in num_1: ret.append(i**2) # 列表里每个元素都平方 re ...

  5. Python开发【第三章】:函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  6. ASP.NET Core分布式项目-1.IdentityServer4登录中心

    源码下载 一.添加服务端的api 1.添加NUGet包 IdentityServer4 点击下载,重新生成 2.添加Startup配置 打开Startup文件 public class Startup ...

  7. Flash播放控件属性详解

    Flash 播放控件属性详解 一.属性篇 1.AlignMode(读写)  语法:AlignMode As Long  说明:对齐方式(与SAlign 属性联动).当控件的长宽比例与影片不一致且WMo ...

  8. ARM微控制器与嵌入式系统

    个牛人在ARM实现嵌入式系统的过程 第一章  概览 1.1课程概览 认识ARM嵌入式系统(什么是ARM?什么是嵌入式系统?) 备战智能车 在科技活动中玩起来 积累计算机.电路基础知识 1.2如何学好嵌 ...

  9. Twitter Bootstrap:前端框架利器

    Bootstrap 的文件结构 读者可以直接从 GitHub 下载到 Bootstrap 源码,本地解压后可以看到这样的目录结构:docs.img.jquery-ui- bootstrap.js 和 ...

  10. 在nuxt中引入Font Awesome字体图标库

    介绍 在element-ui框架中提供了一些图标样式,但是种类比较少,所以在这里提供一套更完善的字体图标库Font Awesome(官方文档),下面就开始介绍如何在一个nuxt项目中使用这套字体库. ...