接口测试 — 5.接口测试框架的设计

(一)接口测试框架的思想

自动化测试框架不是一个模式,而是一种思想和方法的集合,通俗的讲就是一个架构。

为了更好的了解自动化测试框架,应该对以下几种自动化测试框架思想有一定的认知:

  • 模块化思想

  • 库思想

  • 数据驱动思想

  • 关键字驱动思想

以上仅仅是代表了一种自动化测试的思想,并不能定义为框架。

如果你想学习接口测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

Postman接口测试使用教程和接口自动化测试项目实战你要的都有_哔哩哔哩_bilibiliPostman接口测试使用教程和接口自动化测试项目实战你要的都有共计32条视频,包括:1.精通Postman之课程大纲和效果展示、2.精通Postman之接口测试简介和分类、3.精通Postman之接口测试流程和用例设计等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11K4y1J7sh/?spm_id_from=333.337.search-card.all.click

上面讲到框架=思想+方法,于是演化了以下五种框架:

1、模块化测试脚本框架

需要创建小而独立的可以描述的模块、片断以及待测应用程序的脚本。

这些树状结构的小脚本组合起来,就能组成能用于特定的测试用例的脚本。

2、测试库框架

与模块化测试脚本框架很类似,并且具有同样的优点。

不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本。

框架需要创建描述模块、片断以及待测应用程序的功能库文件。

3、关键字驱动或表驱动的测试框架

框架需要开发数据表和关键字。

这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很类似。

在一个关键字驱动测试中,把待测应用程序的功能和每个测试的执行步骤一起写到一个表中。

测试框架可以通过很少的代码来产生大量的测试用例。

同样的代码在用数据表来产生各个测试用例的同时被复用。

4、数据驱动测试框架

在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。

在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值。

整个程序中,测试脚本来读取数值文件,记载测试状态和信息。这类似于表驱动测试,在表驱动测试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。

然而数据驱动测试不同于表驱动测试,尽管导航数据并不包含在表结构中。

在数据驱动测试中,数据文件中只包含测试数据。

5、混合测试自动化框架

最普遍的执行框架是上面介绍的所有技术的一个结合,取其长处,弥补其不足。

混合测试框架是由大部分框架随着时间并经过若干项目演化而来的。

参考:http://blog.itpub.net/69941024/viewspace-2651873/

(二)接口测试框架结构解析

  • common目录:一些公共方法存放目录。

    • 封装请求

      send_method.py #封装接口请求方式

    • 封装获取返回值

      getKeyword_forResult.py #通过关键字获取接口返回值

    • 读取数据方法

  • interface目录:存放接口的目录。

    每一个接口或者一类接口来写一个interface(也就是一个接口对应一个.py文件)

    • 对该接口的请求:用于单接口测试

    • 根据业务获取接口返回值:用于关联接口测试

  • script目录:存放测试用例的目录。

    也可以命令为testCase目录。

    接口测试用例包括:

    • 单接口测试用例

    • 关联接口测试用例

  • Config目录:存放配置文件。配置一些常量,例如数据库的相关信息,接口的相关信息等。

  • Data目录:存放公共部分数据,比如测试数据,excel文件等等。

  • Log目录:存放logging日志信息。

  • Reports目录:存放接口测试报告目录。

  • runMain.py文件:主程序入文件口,用于执行case。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 20:08:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 20:08:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 20:08:04       87 阅读
  4. Python语言-面向对象

    2023-12-17 20:08:04       96 阅读

热门阅读

  1. vue基础

    2023-12-17 20:08:04       59 阅读
  2. RHCE 9版本考试资料

    2023-12-17 20:08:04       40 阅读
  3. 如何传承中国文化

    2023-12-17 20:08:04       62 阅读
  4. 面试经典150题(21-26)

    2023-12-17 20:08:04       65 阅读
  5. K8s中Service Account和RBAC

    2023-12-17 20:08:04       50 阅读
  6. Linux Find

    2023-12-17 20:08:04       54 阅读
  7. Spring Boot 自动装配的原理

    2023-12-17 20:08:04       57 阅读
  8. Angular13无法在浏览器debug

    2023-12-17 20:08:04       53 阅读
  9. UI卡顿问题

    2023-12-17 20:08:04       60 阅读
  10. centos7安装和卸载MySQL8.0

    2023-12-17 20:08:04       59 阅读
  11. linux ioctl

    2023-12-17 20:08:04       41 阅读
  12. Logcat日志记录的使用

    2023-12-17 20:08:04       58 阅读