python+requests如何实现接口自动化
admin
2023-07-03 02:03:17
0次

  利用python和第三方库requests进行接口自动化测试(python+requests)

  第三方库requests简单介绍

  Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。更重要的一点是它支持 Python3 。

  大概步骤

  Request是第三方库,需要手动安装:CMD安装即可----命令:pip install requests

  在pycharm先导入requests第三方库,代码—import requests

  发送请求—http.get请求:requests.get(‘https://api.github.com/events’)

  发送请求—http.post请求:requests.post(‘http://httpbin.org/post’, data = {‘key’:‘value’})

  构建URL参数等

  结合Python进行返回参数进行验证

  运行即可(请求失败可抓包查看发送参数是否有误)

  详细介绍

  以下主要介绍两种常用http请求:get和post,以及delete

  下图为本次编写代码测试的用例

  具体代码:

  第一步:安装完后直接导入requests使用

  #导入requests

  import requests

  第二步:利用Python+requests编写代码构建请求

  #登录接口--post请求

  这里需要注意,除了返回接口内容,还需要返回cookies,因为后面的操作需要用到登录身份标识

  def Login(user,passw):

  payload = {

  'username': test,

  'password': 123456

  }

  # data参数 就是构造消息体的

  response = requests.post("http://localhost/XXXX",

  data=payload)

  # 获取结果,返回给调用者

  retDict = response.json()

  # 在控制台打印出结果

  print(retDict)

  #返回结果,调用时需要用到

  return retDict, response.cookies

  #添加课程接口--post请求

  这里需要注意,请求参数需要加上cookies,因为后面的操作需要用到登录身份标识

  def add_course(action,name,desc,dis,sessionid):

  re={'action':action,

  'data':'''

  {

  "name": "%s",

  "desc": "%s",

  "display_idx": "%s"

  }

  '''% (name,desc,dis)

  }

  rs=requests.post("http://localhost/XXXX",data=re,cookies={'sessionid': sessionid})

  re=rs.json()

  print(re)

  return re

  #列出课程接口--get请求

  def list_course(sessionid):

  parm={

  'action' :'list_course',

  'pagenum':1,

  'pagesize':20

  }

  # he = {"Content-Type": "application/json"}

  rs=requests.get("http://localhost/XXXX",params=parm,cookies={'sessionid': sessionid})

  liechu=rs.json()

  print(liechu)

  return liechu

  #删除课程接口--delete请求

  def delete_course(courseid,sessionid):

  payload = {

  'action': 'delete_course',

  'id': f'{courseid}'

  }

  response = requests.delete("http://localhost/XXXX/",

  data=payload,

  cookies={'sessionid': sessionid})

  r = response.json()

  pprint.pprint(r)

  return r无锡妇科医院 http://www.bhnfk.com

  第三步:利用Python对requests返回的参数进行验证

  #因为这块代码是新建了另一个Python文件编写。所以这里需要先导入上面的Python文件才可以调用里面的函数

  from jiakouzudonghua import aba

  #导入随机数函数

  import random

  # 利用写好的登录接口进行登录

  # loginRet保存登录接口返回是否登录成功的参数,cookies保存登录成功返回的cookie

  loginRet,cookies = aba.Login('auto','sdfsdfsdf')

  #使用if判断是否登录成功,可直接使用assert验证

  if loginRet["retcode"] == 0:

  print('登录成功')

  else:

  print('登录失败')

  # 记录下sessionid

  sessionid =cookies['sessionid']

  #这里课程使用了随机数,最大程度确保每次运行不会创建到同名课程

  classname=('课程'+str(random.randint(0,99999999999)))

  # 第一次先列出课程,为后面比较做准备

  coureListBefore = list_course(sessionid)['retlist']

  # 添加一门课程,且使用assert进行验证,对则不会反悔信息,错则返回错误信息

  retDict = add_course('classname','php语言','2',sessionid)

  assert retDict['retcode'] == 0

  #也可用if进行验证

  # if retDict['retcode'] == 0:

  # print('添加课程成功')

  # else:

  # raise Exception('添加课程失败')

  # 第二次再列出课程

  coureListAfter = list_course(sessionid)['retlist']

  #使用len计算添加课程前和添加课程后的课程数量,然后相减等于1则证明成功,也可直接取返回的课程数量total进行验证

  createCount = len(coureListAfter) - len(coureListBefore)

  assert createCount == 1

  # 取出,多出来的一门课程对象

  newcourse = None

  for one in coureListAfter:

  if one not in coureListBefore:

  newcourse = one

  break

  # 检查是否是刚刚添加的课程

  assert newcourse!=None

  assert newcourse['name']=='classname'

  assert newcourse['desc']=='php语言'

  assert newcourse['display_idx']==2

  # 清除环境操作,删除刚刚添加的课程

  delete_course(newcourse['id'],sessionid)

  print('\n========= test case pass =============')

  得出控制台运行结果。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...