Python 接口测试

本贴最后更新于 2050 天前,其中的信息可能已经物是人非

请求接口地址和获取字段值

前言

笔者上一篇 blog 主要简单介绍了用 jmeter 做接口测试,本篇 blog 主要简单介绍用 Python 做接口测试,想要看懂代码内容,需要具备 Python 基础知识,具体可以参考笔者的 blog Python 基础知识

接口地址:

http://t.weather.sojson.com/api/weather/city/101030100

1、请求上面的网址,打印请求结果

2、解析请求结果。

1)取出请求里的 cityInfo 中的 city 字段值

2)取出请求里的每天的风向,也就是 fx 字段


import requests,json
r = requests.get('http://t.weather.sojson.com/api/weather/city/101030100')
# print(r.content.decode('utf-8')) # 打印请求结果
# eval函数主要作用就是将字符串str当成有效的表达式来求值并返回计算结果
# eval函数就是实现list、dict(字典类)、tuple(元祖类)与str之间的转化
# a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"  --->a是一个字符串
# 打印a的类型:print(type(a))-----》结果:<class 'str'>
# 把字符串a转换成dict(字典类)
# b = eval(a)
# print(type(b))
# print(b)
#执行结果:
#<class 'list'>
#[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]

res = eval(r.content.decode('utf-8'))
# 字典取值
,取出请求里的cityInfo中的city字段值
print(res['cityInfo']['city'])
# 获取单个fx的值,此处的forecast是一个列表,列表中有5个表项
# 每个表项是一个字典,如果字典中想要取某个value值,直接输入key名即可
# 下面的例子是想取出forecast列表中第一个表项中fx对应的值
print(res['data']['forecast'][0]['fx'])

# 下面的例子是想取出所有fx对应的值,使用到for循环
# 思路是先使用len()函数获取列表长度,然后再使用for循环
forcast = res['data']['forecast']
i = len(forcast)
for i in range(i):
    print(res['data']['forecast'][i]['fx'])


接口响应内容


import requests,json
r = requests.get('http://t.weather.sojson.com/api/weather/city/101030100')
print(r.content.decode('utf-8')) # 打印请求结果

运行结果

62.png

取出请求里的 cityInfo 中的 city 字段值


import requests,json

r = requests.get('http://t.weather.sojson.com/api/weather/city/101030100')
res = eval(r.content.decode('utf-8'))
# 字典取值
print(res['cityInfo']['city'])

运行结果

63.png

取出 forecast 列表中第一个表项中 fx 对应的值


import requests,json
r = requests.get('http://t.weather.sojson.com/api/weather/city/101030100')
res = eval(r.content.decode('utf-8'))
print(res['data']['forecast'][0]['fx'])

运行结果

64.png

取出所有 fx 对应的值,使用到 for 循环


import requests,json
r = requests.get('http://t.weather.sojson.com/api/weather/city/101030100')
res = eval(r.content.decode('utf-8'))

# 思路是先使用len()函数获取列表长度,然后再使用for循环
forcast = res['data']['forecast']
i = len(forcast)
for i in range(i):
    print(res['data']['forecast'][i]['fx'])

运行结果

65.png

以上,over

原创申明:以上内容是笔者个人的经验总结,仅供参考,如需转载,请注明出处

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...