python的哪个模块可以做接口测试

发布网友 发布时间:2022-04-22 02:07

我来回答

1个回答

热心网友 时间:2022-04-07 13:14

  python接口测试
  1.安装python环境
  2.下载python IDE(pyCharm)
  备注:
  requests是python的要给HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而部用urllib2呢?官方文档中是这样说的:
  python的标准库urllib2提供了大部分需要的HTTP功能,但API太逆天了,一个简单的功能需要一大堆代码。而requests比较简洁,能用更少的代码实现。
  3.下载 安装 requests第三方模块
  下面就进行接口测试
  要使用 requests 首先需要在文件中引用
  [python] view plain
  import requests
  [python] view plain
  # 解析json需要
  [python] view plain
  import json
  [python] view plain
  # url:接口地址
  [python] view plain
  # data: 接口需要的数据
  [python] view plain
  # headers:接口需要的传递的headers数据
  [python] view plain
  # files:若是接口中需要上传文件则需要用到该参数
  [python] view plain
  r = requests.post(url, data=data, headers=headers)
  [python] view plain
  r = requests.post(url, data=data, headers=headers, files=files)
  [python] view plain
  # 获取 接口返回的数据信息并解析(如果返回的是json格式的话)
  [python] view plain
  json_data = json.loads(r.text)
  [python] view plain
  我一直用这样的方法写了20个接口进行测试,突然发现好像代码有很多重复的呀,是不是可以把重复的内容进行封装一下了?
  [python] view plain
  封装如下:
  [python] view plain
  Basics_Requests.py
  [python] view plain
  import requests
  import json
  '''''
  #xx_url:接口连接url
  #data:接口data需要传递的数据(数据格式一般为Dictionary)
  #headers:接口headers需要传递的数据(数据格式一般为Dictionary)
  #variable:headers 中需要改变的参数字段(数据格式为list)
  '''
  class Basics():
  # 初始化
  def __init__(self, xx_url, data, headers, variable):
  self.xx_url = xx_url
  self.data = data
  self.headers = headers
  self.variable = variable
  def basicsparameter(self):
  # 发起post请求
  url_data = requests.post(self.xx_url, data=self.data, headers=self.headers)
  # 把得到的数据转成json格式
  data_json = json.loads(url_data.text)
  # 改变请求中的参数值
  if self.variable != '':
  for i in self.variable:
  self.headers[i] = data_json[i.lower()]
  # 把请求的 数据 和 headers 存入 list中
  dic_data = {'data_json': data_json, 'headers': self.headers}
  return dic_data
  调用封装方法:
  [python] view plain
  Test.py
  [python] view plain
  Basics_Requests
  [python] view plain
  Basics_Requests.Basics(url, row_data, headers, variable).basicsparameter()
  [python] view plain

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com