多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试-解决数据依赖

更新时间:2021-10-25 02:43:17 作者:admin 浏览:254

接口自动化测试-解决数据依赖

  接口自动化测试中,有些场景接口间存在着数据依赖的问题,比如说提交订单前需要用户先登录等等,下面就用两个小案例说说数据依赖的问题。

  两个接口,一个接口(project_add)用来创建测试项目,一个接口(env_add)用来创建测试环境,env_add接口需依赖project_add接口返回的project_id字段数据。

  一、Postman解决数据依赖的问题

  1.project_add接口,Tests中写js代码,将需依赖的字段添加到环境变量中

  2.在env_add接口的Pre-request Script 中写js代码,把第一个接口拿到的参数赋值

  3.再将project_id配置到Body中prj_id字段中

  这样数据依赖的问题就搞定了

接口自动化测试-解决数据依赖

  二、用python代码实现接口数据依赖

  用代码解决数据依赖的方法有多种,下面用反射来解决数据依赖的问题。

  反射它可以把字符串映射到实例的变量或者实例的方法然后,可以去执行调用、修改等操作。

  它有四个重要的方法:

  1.getattr 获取指定字符串名称的对象属性

  2.setattr 为对象设置一个对象

  3.hasattr 判断对象是否有对应的对象(字符串)

  4.delattr 删除指定属性

  class RelyData(object):

  project_id = None

  print(RelyData.project_id)

  setattr(RelyData, "project_id", "111")

  print(getattr(RelyData, "project_id"))

  定义了一个RelyData()类,里面设置了一个类属性,project_id=None,然后再用setattr函数为对象RelyData里面project_id属性设置了新值,最后再用getattr函数取出里面的值,这是个属性值替换的过程。

  class Test(unittest.TestCase):

  def setUp(self):

  pass

  def test_1(self):

  """添加项目接口"""

  url = "http://127.0.0.1:8000/base/project_add/"

  headers = {'Content-Type': 'application/x-www-form-urlencoded'}

  datas = {"prj_name": "baidu search", "description": "百度搜索"}

  response = requests.post(url, data=datas, headers=headers)

  print("response: ", response.json())

  result = response.json()

  # 给RelyData里面的project_id=None的类属性设置新的属性

  setattr(RelyData, "project_id", result.get("project_id"))

  def test_2(self):

  """添加环境接口,需依赖添加项目接口返回的project_id字段数据"""

  url = "http://127.0.0.1:8000/base/env_add/"

  headers = {'Content-Type': 'application/x-www-form-urlencoded'}

  datas = {

  "env_name": "百度测试环境",

  "url": "www.baidu.com",

  # getattr(RelyData,'project_id'),取出里面的属性值

  "prj_id": getattr(RelyData, "project_id"),

  "description": "SIT测试环境"

  }

  response = requests.post(url, data=datas, headers=headers)

  print("response: ", response.json())

  if __name__ == '__main__':

  unittest.main()

  以上是关于接口自动化测试中怎么解决数据依赖的介绍,由多测师亲自撰写。https://www.aichudan.com/

联系电话

17727591462

返回顶部