python实现测试工具(一)——命令行发送get请求


Posted in Python onOctober 19, 2020

本系列教程我们将使用python实现一些简单的测试工具,为了尽可能的简单,我们的工具以命令行工具为主。

本系列教程使用的python版本是3.6.3。

背景

这一节我们实现简单的命令行发送get请求的工具,使用方式如下:

python get.py www.v2ex.com/api/nodes/show.json\?name\=python
接口地址: http://www.v2ex.com/api/nodes/show.json?name=python

状态码: 200

Headers:
Date : Tue, 10 Jul 2018 07:06:12 GMT
Content-Type : application/json;charset=UTF-8
Transfer-Encoding : chunked
Connection : keep-alive
Vary : Accept-Encoding
X-Rate-Limit-Remaining : 119
Expires : Tue, 10 Jul 2018 08:03:49 GMT
Server : Galaxy/3.9.8.1
Etag : W/"76a33d25372411dc6fa4190a5cf9679caa0edc2a"
X-Rate-Limit-Reset : 1531209600
Cache-Control : max-age=3600
X-Rate-Limit-Limit : 120
Google : XY
Content-Encoding : gzip
Strict-Transport-Security : max-age=31536000
{
  "id" : 90,
  "name" : "python",
  "url" : "https://www.v2ex.com/go/python",
  "title" : "Python",
  "title_alternative" : "Python",
  "topics" : 9530,
  "stars" : 6601,

    "header" : "这里讨论各种 Python 语言编程话题,也包括 Django,Tornado 等框架的讨论。这里是一个能够帮助你解决实际问题的地方。",


    "footer" : null,

  "created" : 1278683336,
  "avatar_mini" : "//cdn.v2ex.com/navatar/8613/985e/90_mini.png?m=1531131631",
  "avatar_normal" : "//cdn.v2ex.com/navatar/8613/985e/90_normal.png?m=1531131631",
  "avatar_large" : "//cdn.v2ex.com/navatar/8613/985e/90_large.png?m=1531131631"
}

主要使用场景是快速访问http的api接口,查看状态码,响应头以及响应内容。

代码实现

简单起见,我们会用到requests库。

import requests
from sys import argv

USAGE = '''
USAGE:
python get.py https://api.github.com
'''

if len(argv) != 2:
 print(USAGE)
 exit()

script_name, url = argv

if url[:4] != 'http':
 url = 'http://' + url

r = requests.get(url)

print(f"接口地址: {url}\n")
print(f"状态码: {r.status_code}\n")
print(f"Headers:")
for key, value in r.headers.items():
 print(f"{key} : {value}")

print(r.text)

动手时间

  • 抄一遍代码,看自己能不能运行起来
  • 给这段代码每一行都加上注释,理解代码做了些什么
  • 如果需要在发送get请求的时候默认加上Content-Type: application/json的headers,这段代码该如何修改

源码地址

https://github.com/easonhan007/simple_test_tools

以上就是python实现测试工具(一)——命令行发送get请求的详细内容,更多关于python 命令行发送get请求的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python爬虫使用cookie登录详解
Dec 27 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
django+mysql的使用示例
Nov 23 Python
对python函数签名的方法详解
Jan 22 Python
对Django url的几种使用方式详解
Aug 06 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
django中media媒体路径设置的步骤
Nov 15 Python
通过自学python能找到工作吗
Jun 21 Python
python3访问字典里的值实例方法
Nov 18 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
基于Python制作一副扑克牌过程详解
Oct 19 #Python
Python实现壁纸下载与轮换
Oct 19 #Python
Python调用REST API接口的几种方式汇总
Oct 19 #Python
Python爬虫抓取论坛关键字过程解析
Oct 19 #Python
python MD5加密的示例
Oct 19 #Python
python Yaml、Json、Dict之间的转化
Oct 19 #Python
Python pip 常用命令汇总
Oct 19 #Python
You might like
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
详解PHP归并排序的实现
2016/10/18 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
splice slice区别
2006/10/09 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python实现的数据结构与算法之队列详解
2015/04/22 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Python接口开发实现步骤详解
2020/04/26 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
饭店工作计划书
2014/01/10 职场文书
秋季运动会活动方案
2014/02/05 职场文书
师德师风个人反思
2014/04/28 职场文书
秋冬农业生产标语
2014/10/09 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
小学德育工作总结2015
2015/05/12 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS