添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近需要在 linux 环境下拨测线上服务,于是写了一个 python 的脚本在此分享,话不多说先上代码

import urllib,urllib2,httplib,json,gzip
from cStringIO import StringIO
data = {
	'data1': 1,
	'data2': 2
headers = {'Content-type':'application/json',
		'Accept-Encoding':'gzip'}
json_data = json.dumps(data)
servers = ['http://www.baidu.com',
			'http://www.youku.com']
for url in servers:
	req = urllib2.Request(url = url,headers = headers,data = json_data)
		res_data = urllib2.urlopen(req)
	except:
		print "server",url,"is not ok!"
		continue
	buf = StringIO(res_data.read())
	f = gzip.GzipFile(mode = 'rb',fileobj = buf)
		r_data = f.read()
	finally:
		f.close()
	if r_data.find("200") == -1:
		print "server",url,"is not ok!"
	else:
		print "server",url,"is ok!"	
	print r_data

功能说明:

1、 支持多个服务接口拨测

2、响应内容支持 gzip 解压

做接口自动化测试时,常常需要使用 python 发送 一些 json 内容 的接口报文,如果使用urlencode对 内容 进行编码解析并 发送 请求 ,会发现 服务 器返回了200,OK的状态,但响应 内容 不可读(像是一堆加密报文)。定位问题时发现抓包发现 发送 报文的 内容 与我们 发送 json 内容 不符(会去掉”{“与”}“等 内容 ),所以重新采用了 json 封装后,问题解决。 二.解决方法 1.先导入 json 模块,采用 json .dumps将 json 内容 进行封装 import json str = json .dumps({'userid':'381fccbd776c4deb'}) 2.调用这个 内容 发送 htt 压缩操作使用 Python 内置的 json 模块的dumps()函数,并设置分隔符为“,”和“:”,以减少输出字符串的长度。格式化操作同样使用 Python 内置的 json 模块的dumps()函数,并设置indent参数为4,使输出的字符串具有更好的可读性。在GUI类中,先调用了父类(tk.Frame)的构造函数初始化,然后创建了一个文本框对象和两个按钮对象,并分别通过pack()方法将它们添加到GUI窗口中。当点击压缩或格式化按钮时,程序将获取文本框中的 JSON 字符串,并将其传递给相应的函数。 #-*- coding: utf-8 -*- ====================================================================== 描述:将多行格式化的字符串进行压缩 (例如格式化的sql,替换多余的空格和换行符进行压缩为一行字符串) 作者:xiawp 日期:2020年5月27日 14:24:48 思路:通过split拆分‘/n’,挨个执行trim,重新join组合 python 中 类似 “trim”的函数是:strip(. 解释 HTTP 请求 与响应通信机制,构建GET 与 POST request http 请求 消息, 解析http响应 respone, requet 请求 参数, 请求 头,消息体,准备http响应参数 response参数等。 query string设置。HTTP头部 header 格式 content-type 的设置。 通过 POST 请求 上传文件, 请求 与响应 json 格式 , Python reqquests 最佳教程 python 实现对 json 进行压缩处理, 网络带宽有限, python 如何对大的 json 内容 进行压缩,减少网络带宽。 可以先对 Json 字符串进行压缩,然后进行base64编码 这里可以理解为将 python 中的各种数据结构转化为 json 字符串的过程。涉及api:dump、dumps反序列化:将输入的 json 字符串,转化为 python 对象的过程。涉及api:load、loads以反序列化为例,如果需要从文件中读取数据,则使用load,直接传入文件描述符。简而言之,就是需要从文件中读写数据时,使用load、dump,否则使用loads、dumps如果是自定义的对象,需要先将对象转化为字典类型,再使用 json 库相关的api。 所有的编程语言都能够识别的数据格式叫做 json ,是字符串 能够通过 json 序列化成字符串有如下类型: (int float bool str list tuple dict None) json 用法 (1) dumps和loads是一对,可以序列化成字符串 dic = {"name":"高云峰","age":81,"classroom":" python 31","family":["老爸","老妈","老伴"]} ensure_ascii=False 显示中文 sort_keys=True 对字 通常用 gzip 压缩过的云端数据需要做解压处理,以下代码主要用 python 3实现对获取到的云端 gzip 压缩数据进行还原。# -*- coding: utf-8 -*- Spyder Editor This is a temporary script file. #! /usr/bin/env python 3.6 import requests import gzip def... # gz文件地址 url='https://shilupan-basic-user-pro.oss-cn-shanghai.aliyuncs.com/carrier/moxie/origin/39984791325599432283.txt.gz?Expires=1527497273&OSSAccessKey... def gzdecode(data) : compressedstream = StringIO.StringIO(data) gzip er = gzip . Gzip File(f 无论使用何种编程语言, json 格式的数据已被广泛应用,不论是数据的传输还是存储,在很多应用场景下,你可能想进一步地压缩 JSON 字符串的长度,以提升传输效率,如果你使用的是nosql数据库,你可能想进一步的压缩 json 字符串的长度来节省你的存储空间,接下来,我将介绍一下目前最常用的 json 数据压缩技术(C JSON 和HPack)的实现(文章最后有彩蛋哦)。一、C JSON C JSON 的压缩算法, 主要是...