写一个博客来记录学习python的过程
今天是学习接口自动化的第一天
我们需要两个python内置模块 reques,json 直接使用import方法引用即可
基础函数:
requests.get get请求方式
requests.post post请求方式
status_code 返回的状态码
.json()方法 将返回的json格式转换成列表
open 使用python打开文件的方法
csv.reader(file) 用于从文件读取指定的字节数,如果未给定或为负则读取所有。
eval() 函数用来执行一个字符串表达式,并返回表达式的值。例如 a = 5 print(evai('a'))将打印出int 5
这段代码是一个简单的接口请求,用的是聚合数据的免费api来测试
import requests
import json
reponse = requests.get(url='http://v.juhe.cn/toutiao/index', #我们这里先使用一个聚合数据简单的接口入门,reques.get表示请求方式 params={'key':'1130d27aed63c793633f6fb55e27a5ed','type':'json'}, #parms=接口的请求体,仅适用于get请求,post因为有body参数,需要用date headers={}) #请求头信息,可以为空 # print(reponse.json()) if reponse.status_code == 200: #status_code 方法,用来判断返回的返回的状态码 result = reponse.json() #json()方法可以直接把返回的文件转换成字典 print(type(result),result) #打印出类型看看是什么格式 if result['reason'] == '成功的返回': #截取返回的字典中的第一个参数,判断是不是正确,正确则打印信息 print('数据返回正常') else: print('数据返回错误') else: print('status error')
接下来是使用python读取参数化文件,我们新建一个csv文件,里面包含接口名,请求方式,接口path,参数,预期结果等
base_url = 'http://49.233.108.117:3000/api/v1' file = open(r'D:\刘英杰\python_33期\a.csv', encoding='utf-8') #一般打开文件前加上r,后面跟上文件的路径,在同一个目录下可以直接使用 a.csv,endoding=utf-8,有时候文件的格式不对,我们进行一次强制转码 reader = csv.reader(file) #这里认识一个新的方法reader(),用于从文件读取指定的字节数,如果未给定或为负则读取所有。 apis = list(reader)[1:] #将列表中的第一个下标切片删除掉,因为第一列是接口名称,所以在我们这里没有意义 for api in apis: #将我们读取到的列表循环一下 method = api[1] #取到下标1,也就是请求方式 url = base_url + api[2] #我们定义的base_url和读到的path拼接到一起,就是一个完整的接口域名了 parms = eval(api[3]) #下标3也就是我们csv中的请求参数了 eval()函数用来执行一个字符串表达式,并返回表达式的值。 if method == 'get': r = requests.get(url=url,params=parms) if r.status_code == 200: result = r.json() print(type(result),result)