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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python自动发邮件脚本
Mar 31 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python中类的初始化特殊方法
Dec 01 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python图像处理入门(一)
Apr 04 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
python调用webservice接口的实现
Jul 12 Python
jupyter notebook清除输出方式
Apr 10 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
详解python字符串驻留技术
May 21 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
php动态函数调用方法
2015/05/21 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
js Function类型
2011/12/04 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
运动会广播稿200米
2014/01/27 职场文书
测试工程师职业规划书
2014/02/06 职场文书
员工趣味活动方案
2014/08/27 职场文书
2014年店长工作总结
2014/11/17 职场文书
2014年信访工作总结
2014/11/17 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
家长会主持词开场白
2015/05/29 职场文书
纪律委员竞选稿
2015/11/19 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
Java实现简单小画板
2022/06/10 Java/Android