python自动化--接口请求及封装
基于http协议,最常用的是GET和POST两种方法。
接口文档需要包含哪些信息:
接口名称
接口功能
接口地址
支持格式 json/xml
请求方式
请求示例
请求参数(是否必填、数据类型、传递参数格式)
返回参数说明
以典型的(一两个)参数做为判断是否请求通过(重点是看响应的信息判断)
一、GET
- import requests
- import json
- url = "http://v.juhe.cn/laohuangli/d"
- para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
- header ={}
- r = requests.get(url,params=para,headers= header,)
- #verify=True适用于服务端的ssl证书验证,verify=False为关闭ssl验证
- print( print( print( json_r = print(json_r)
二、POST
post请求有两种请求格式:
1、key-value的格式'Content-Type':'application/x-www-form-urlencoded'
2、标准json的格式:'Content-Type':'application/json'
#key-value
- import requests
- import json
- url = "http://v.juhe.cn/laohuangli/d"
- para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
- header ={}
- r = requests.post(url,data=para,headers= header)
- print('get请求获取的响应结果json类型',r.text)
- print("get请求获取响应状态码",r.status_code)
- print("get请求获取响应头",r.headers['Content-Type'])
- #响应的json数据转换为可被python识别的数据类型
- json_r = r.json()
- print(json_r)
#json
- import requests
- import json
- url = "http://v.juhe.cn/laohuangli/d"
- para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
- header ={}
- #python数据类型转换为json类型(json.dumps())
- para = json.dumps(para)
- r = requests.post(url,data=para,headers= header)
- print('get请求获取的响应结果json类型',r.text)
- print("get请求获取响应状态码",r.status_code)
- print("get请求获取响应头",r.headers['Content-Type'])
- #响应的json数据转换为可被python识别的数据类型
- json_r = r.json()
- print(json_r)
三、把所有的请求封装在函数中
- def get(url,para,headers):
- try:
- r = requests.get(url,params=para,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json类型转化成python数据类型",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- def post(url,para,headers):
- try:
- r = requests.post(url,data=para,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json类型转化成python数据类型",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- def post_json(url,para,headers):
- try:
- data = para
- data = json.dumps(data) #python数据类型转化为json数据类型
- r = requests.post(url,data=data,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json转换为python数据类型:",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- url = "http://v.juhe.cn/laohuangli/d"
- para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
- headers ={}
- get(url,para,headers)
- post(url,para,headers)
- post_json(url,para,headers)
四、把所有请求封装在一个对象里
- class Webrequests:
- def get(self,url,para,headers):
- try:
- r = requests.get(url,params=para,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json类型转化成python数据类型",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- def post(self,url,para,headers):
- try:
- r = requests.post(url,data=para,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json类型转化成python数据类型",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- def post_json(self,url,para,headers):
- try:
- data = para
- data = json.dumps(data) #python数据类型转化为json数据类型
- r = requests.post(url,data=data,headers=headers)
- print("获取返回的状态码",r.status_code)
- json_r = r.json()
- print("json类型转化成python数据类型",json_r)
- except BaseException as e:
- print("请求失败!",str(e))
- url = "http://v.juhe.cn/laohuangli/d"
- para = {"key":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","date":"2017-3-22"}
- headers ={}
- q = Webrequests()
- q.get(url,para,headers)
- q.post(url,para,headers)
- q.post_json(url,para,headers)
python自动化--接口请求及封装的更多相关文章
- 接口测试-Java代码实现接口请求并封装
前言:在接口测试和Java开发中对接口请求方法进行封装都非常有必要,无论是在我们接口测试的时候还是在开发自测,以及调用某些第三方接口时,都能为我们调用和调试接口提供便捷: Java实现对http请求的 ...
- appium+python自动化24-滑动方法封装(swipe)
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...
- python监控接口请求
#!/usr/bin/env python #coding=utf8 import time,os,sched,urllib,httplib import smtplib import string ...
- appium+python自动化24-滑动方法封装(swipe)【转载】
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...
- Appium+python自动化
名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appi ...
- vue-ajax/axios请求函数封装: axios+promise
项目文件目录/src/api ajax.js /** * ajax 请求函数模块 * 返回值为promise对象 */ import axios from 'axios' export default ...
- python接口自动化根据请求接口类型进行封装
根据不同的请求类型(GET/POST)进行接口请求封装 import requests import json class RunMain: def __init__(self, url, metho ...
- python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...
- python+pytest接口自动化(4)-requests发送get请求
python中用于请求http接口的有自带的urllib和第三方库requests,但 urllib 写法稍微有点繁琐,所以在进行接口自动化测试过程中,一般使用更为简洁且功能强大的 requests ...
随机推荐
- golang 查询数据库操作
SQL.Open only creates the DB object, but dies not open any connections to the database. If you want ...
- day4-hdfs的核心工作原理\写数据流程 \读数据流程
namenode元数据管理要点 1.什么是元数据? hdfs的目录结构及每一个文件的块信息(块的id,块的副本数量,块的存放位置<datanode>) 2.元数据由谁负责管理? namen ...
- iOS8使用TouchID
iOS8新增了LocalAuthentication框架,用于TouchID的授权使用.亲測,眼下须要用户的设备支持指纹识别并已设置锁屏,并且实际測试过程中反馈比較慢.不能直接跟第三方账号passwo ...
- Go语言核心之美 3.2-slice切片
Slice(切片)是长度可变的元素序列(与之相应,上一节中的数组是不可变的),每一个元素都有同样的类型.slice类型写作[]T.T是元素类型.slice和数组写法非常像,差别在于slice没有指定长 ...
- java.io.IOException: read failed, socket might closed or timeout, read ret: -1
近期项目中连接蓝牙之后接收蓝牙设备发出的指令功能,在连接设备之后,创建RfcommSocket连接时候报java.io.IOException: read failed, socket might c ...
- 2013级C++第12周(春)项目——成员的訪问属性、多重继承
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 程序阅读 1.阅读程序.分析类中成员 ...
- 使用逆向工程生成mybatis的Mapper文件
之前有写过一篇博客: 使用MyBatis Generator自动生成MyBatis的代码链接:http://www.cnblogs.com/klslb/p/6908535.html 这个太麻烦了,而且 ...
- 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...
- Nginx入门详解文档
1 文章内容 掌握nginx+tomcat反向代理的使用方法. 掌握nginx作为负载均衡器的使用方法. 掌握nginx实现web缓存方法. 2 nginx介绍 2.1 什么是nginx Nginx是 ...
- 单独编译framework【转】
本文转载自:http://blog.csdn.net/u011168565/article/details/53782325 参考文章: http://bbs.csdn.net/topics/3701 ...