Python 接口测试

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

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

前言

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

    556 引用 • 675 回帖

相关帖子

欢迎来到这里!

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

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