700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python接口测试--发送get/post请求

python接口测试--发送get/post请求

时间:2019-05-04 02:31:33

相关推荐

python接口测试--发送get/post请求

环境准备

主要是学习requests模块。使用pip进行安装

pip install pytest

pip的时候如果出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))…………

pip的时候各种关卡限制了它的网速,导致网速过慢或者安装失败。

解决办法:pip install pytest -i /simple

发送get请求

导入requests请求使用get方法直接访问url查看返回结果

import requests# 手机号信息查询接口url = '/cc/json/mobile_tel_segment.htm?tel=手机号're = requests.get(url)print(re.text)'''运行结果:__GetZoneResult_ = {mts:'xxxx',province:'重庆',catName:'中国电信',telString:'xxxxx',areaVid:'29404',ispVid:'xxxxxxx',carrier:'重庆电信'}'''

ssl问题

当fiddler工具开启需要调试时,发送https请求,会出现以下错误:

原因是:https相比http来说安全级别高,需要验证SSL证书

解决:发动request请求时,加上verify=False参数

但是即使加上这个参数还是会有“InsecureRequestWarning”警告(不会影响运行结果,可以不管)

如果有强迫症,可以导入urllib3包,忽略该警告

get请求带参数

import requests# 手机号信息查询接口url = '/cc/json/mobile_tel_segment.htm'# 参数param = {'tel':'手机号'}re = requests.get(url, params=param, verify=False)print(re.text)

发送post请求

可以练习的接口,参考聚合数据

比如:标准电码查询接口,这是接口文档信息

import requests# 手机号信息查询接口test_url = '/telecode/to_telecodes.php'body = {'key':'e76b4e49765feaae490e3d6423e9414c','chars':'你好'}re = requests.post(url=test_url,data=body)print(re.json())'''{'reason': 'success', 'result': {'telecodes': '0132 1170'}, 'error_code': 0}'''

post请求可以放在url里面也可以放在body里

body中常见的请求参数类型有四种:

application/json,json=application/x-www-form-urlencoded,data=multipart/form-data(这一种是表单格式的),data=content-Type,data=

比如登录接口的接口文档,application/json:

import requestshost = 'http://xx.xx.xx.xx:9000'login_url = host + '/api/v1/login/'body = {"username":"test","password":"123456"}header = {'Content-Type':'application/json'}# Content-Type: application/json。body用jsonre = requests.post(url=login_url, json=body, headers=header)print(re.json())

application/x-www-form-urlencoded

import requestsurl = 'http://xx.xx.xx.xx:9000/api/v4/login'body = {'username': 'test','password': '123456'}# Content-Type: application/x-www-form-urlencoded body用datare = requests.post(url, data=body)print(re.json())

fiddler抓包查看请求参数类型

注意:如果body部分包含中文,那么需要加上encode(‘utf-8’)r = requests.post(url=url, data=body.encode('utf-8'))

json解析

上面的例子中response返回的是json格式,所以通过.json()转为字典格式。

response返回的数据有三种格式:

.content #字节输出byte(当返回的数据出现乱码时,可以用.content).text #str输出.json() #json格式数据,转为字典格式输出

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。