接口测试之requests

requests

使用 pip 命令安装 requests库

法1:
使用快捷键win+R输入命令 cmd 打开电脑黑屏终端,在黑屏终端输入命令
pip install requests

法2:
在pycharm中打开终端,输入命令 pip install requests
在这里插入图片描述

request 请求

相关测试数据网址 https://www.juhe.cn/
在这里插入图片描述
API文档中有相关参数说明和json示例
在这里插入图片描述
请求的时候,需要将AppKey带上
在这里插入图片描述

get请求

# 导包
import requests

# 给接口地址定义变量名称
url = "http://v.juhe.cn/weather/index"
para = {"cityname":"北京","key":"221ec2c9d854d2859310ea808cb760fd"}

# 发送请求
r = requests.get(url,params=para)

# 查看请求状态(状态码)
print(r.status_code)

# 获取json数据
print(r.json())
res = r.json()
# 获取json数据里的某个值 key-value形式
print(res["reason"])

输出结果

200

{'resultcode': '200', 'reason': '查询成功', 'result': {'sk': {'temp': '10', 'wind_direction': '北风', 'wind_strength': '2级', 'humidity': '90%', 'time': '22:46'}, 'today': {'temperature': '7℃~14℃', 'weather': '多云转中雨', 'weather_id': {'fa': '01', 'fb': '08'}, 'wind': '西北风4-5级', 'week': '星期六', 'city': '北京', 'date_y': '2019年11月09日', 'dressing_index': '较冷', 'dressing_advice': '建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。', 'uv_index': '最弱', 'comfort_index': '', 'wash_index': '不宜', 'travel_index': '较适宜', 'exercise_index': '较适宜', 'drying_index': ''}, 'future': {'day_20191109': {'temperature': '7℃~14℃', 'weather': '多云转中雨', 'weather_id': {'fa': '01', 'fb': '08'}, 'wind': '西北风4-5级', 'week': '星期六', 'date': '20191109'}, 'day_20191110': {'temperature': '6℃~17℃', 'weather': '多云转晴', 'weather_id': {'fa': '01', 'fb': '00'}, 'wind': '持续无风向微风', 'week': '星期日', 'date': '20191110'}, 'day_20191111': {'temperature': '4℃~16℃', 'weather': '晴转多云', 'weather_id': {'fa': '00', 'fb': '01'}, 'wind': '北风微风', 'week': '星期一', 'date': '20191111'}, 'day_20191112': {'temperature': '4℃~15℃', 'weather': '多云', 'weather_id': {'fa': '01', 'fb': '01'}, 'wind': '西北风3-5级', 'week': '星期二', 'date': '20191112'}, 'day_20191113': {'temperature': '-4℃~6℃', 'weather': '晴', 'weather_id': {'fa': '00', 'fb': '00'}, 'wind': '北风微风', 'week': '星期三', 'date': '20191113'}, 'day_20191114': {'temperature': '4℃~15℃', 'weather': '多云', 'weather_id': {'fa': '01', 'fb': '01'}, 'wind': '西北风3-5级', 'week': '星期四', 'date': '20191114'}, 'day_20191115': {'temperature': '4℃~16℃', 'weather': '晴转多云', 'weather_id': {'fa': '00', 'fb': '01'}, 'wind': '北风微风', 'week': '星期五', 'date': '20191115'}}}, 'error_code': 0}

查询成功

错误请求
譬如输入错误的APPKey

# 导包
import requests

# 给接口地址定义变量名称
url = "http://v.juhe.cn/weather/index"

para = {"cityname":"北京","key":"221ec2c9d854d20ea808cb760f"}
r = requests.get(url,params=para)

res = r.json()
print(res)
print(res["error_code"])

输入结果

{'resultcode': '101', 'reason': '错误的请求KEY', 'result': None, 'error_code': 10001}

10001

post请求

在这里插入图片描述

import requests
url ="http://v.juhe.cn/weather/geo"

para = {"lon":"116.39277","lat":"39.933748","key":"221ec2c9d854d2859310ea808cb760fd"}
# 发送post请求
r = requests.post(url,data=para)
# 获取json数据
res = r.json()
print(res)
print(res["reason"])
print(res["error_code"])

输入结果

{'resultcode': '200', 'reason': 'successed!', 'result': {'sk': {'temp': '16', 'wind_direction': '西北风', 'wind_strength': '3级', 'humidity': '27%', 'time': '16:04'}, 'today': {'temperature': '5℃~17℃', 'weather': '多云转晴', 'weather_id': {'fa': '01', 'fb': '00'}, 'wind': '西北风4-5级', 'week': '星期日', 'city': '北京', 'date_y': '2019年11月10日', 'dressing_index': '较冷', 'dressing_advice': '建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。', 'uv_index': '弱', 'comfort_index': '', 'wash_index': '不宜', 'travel_index': '较不宜', 'exercise_index': '较不宜', 'drying_index': ''}, 'future': {'day_20191110': {'temperature': '5℃~17℃', 'weather': '多云转晴', 'weather_id': {'fa': '01', 'fb': '00'}, 'wind': '西北风4-5级', 'week': '星期日', 'date': '20191110'}, 'day_20191111': {'temperature': '4℃~16℃', 'weather': '晴转多云', 'weather_id': {'fa': '00', 'fb': '01'}, 'wind': '北风微风', 'week': '星期一', 'date': '20191111'}, 'day_20191112': {'temperature': '6℃~16℃', 'weather': '多云', 'weather_id': {'fa': '01', 'fb': '01'}, 'wind': '北风微风', 'week': '星期二', 'date': '20191112'}, 'day_20191113': {'temperature': '-4℃~8℃', 'weather': '晴', 'weather_id': {'fa': '00', 'fb': '00'}, 'wind': '西北风4-5级', 'week': '星期三', 'date': '20191113'}, 'day_20191114': {'temperature': '-3℃~7℃', 'weather': '晴', 'weather_id': {'fa': '00', 'fb': '00'}, 'wind': '南风微风', 'week': '星期四', 'date': '20191114'}, 'day_20191115': {'temperature': '-4℃~8℃', 'weather': '晴', 'weather_id': {'fa': '00', 'fb': '00'}, 'wind': '西北风4-5级', 'week': '星期五', 'date': '20191115'}, 'day_20191116': {'temperature': '-4℃~8℃', 'weather': '晴', 'weather_id': {'fa': '00', 'fb': '00'}, 'wind': '西北风4-5级', 'week': '星期六', 'date': '20191116'}}}, 'error_code': 0}

successed!

0

参数关联接口

有时候,发送一个post请求,需要带上session,所以需要先获取这个session

# 导包
import requests
import re

#接口地址
url1 = "http://192.168.103.106:1080/webtours/nav.pl?in=home"
s = requests.session()# 为了保持和下一个接口建立相同的连接通道
res = s.get(url1)
# print(res.text)
usersession = re.findall(r'name=userSession value=(.+?)>',res.text)
print(usersession)

# 接口地址
url2 ="http://192.168.103.106:1080/webtours/login.pl"
para ={"userSession":usersession[0],"username":"jojo","password":"bean","login.x":"54","login.y":"11","login":"Login","JSFormSubmit":"off"}
# 发送post请求
r = s.post(url2,data=para)
print(r.text)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值