手把手带你设计接口自动化测试用例(一):提取接口信息并分析

简介: 手把手带你设计接口自动化测试用例(一):提取接口信息并分析

1、测试行业市场现状


随着市场需求的变化,大部分企业在招聘测试人员时,都会提出接口自动化测试的相关要求,为什么会这样呢?


目前,软件构架基本上都是前后端分离的,软件的主要功能由服务端提供。从整个软件测试市场来看,大部分的测试人员还是以功能测试和 UI 自动化测试为主,即以前端的页面测试为主,并不涉及过多的服务端测试。但由于软件开发成本提高,开发周期和迭代周期缩短,仅仅做前端的页面测试已不能满足软件对质量的各项要求。


服务端测试的主要对象是由服务端所提供的接口,因此也被称为接口测试。接口测试的优势在于,在一个前端页面的开发还未完成时,测试就可以提前介入。测试工作介入得越早,解决 Bug 的成本越低,产品也会更加稳定,因此接口自动化测试几乎成了 UI 自动化测试人员发展的必经之路。


接口测试也分为手工接口测试及接口自动化测试。手工接口测试一般可以通过 posman 或者 jmeter 等接口工具来完成;在接口的功能趋于稳定之后,便可以实现代码级的接口自动化测试及持续集成。


从目前的市场需求来看,接口自动化测试人才在市场中所占比例较低,薪资高,市场缺口巨大。


本文内容摘自《接口自动化测试项目实战:Python 3.8+Requests+PyMySQL+pytest+Jenkins 实现》一书,书中采用项目驱动模式,并通过Python库建立起一套基础的、实用的接口自动化测试框架。内容结构如下:

image.png


2、本文基于的被测系统


本书将ZrLog 博客系统(https://www.zrlog.com/)作为被测系统。

image.png


选择ZrLog 的原因如下:

  • 部署过程相对简单,功能和业务逻辑不复杂。
  • 其接口资源包含了增、删、改、查等常用操作,服务端响应的数据也是标准的JSON格式,这一些条件均为学习接口自动化测试框架提供了便利。
  • ZrLog 有多种部署方式,包括 Docker 的方式,本书采用该方式进行部署。Docker 是一种容器技术,容器就是在隔离的环境中运行的一个进程,如果进程停止,容器就会销毁。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。所以,有了 Docker,就不用担心环境问题。


3、提取接口信息并分析


接口测试主要是测试对服务端资源的增删改查操作,所以在 ZrLog 系统中提取了 5 个与增、删、改、查有关联的接口信息,分别是登录接口、发布文章接口、修改文章接口、删除文章接口、查询文章接口。在设计接口测试用例之前,需要对这5 个接口进行初步的了解与分析,并了解接口之间的关联关系,以便为设计接口用例做准备。


1)登录接口信息的提取与分析

通过 Fiddler 工具获取到的登录接口的信息如图 1 所示。

5c79a631acef98c813b85b2d9a53d6a3.png

图 1 登录接口的信息


2)发布文章接口信息的提取与分析

通过 Fiddler 工具获取的发布文章接口的信息如图2 所示。

08164ea86c0d75e764b5571da7048dc3.png

图2 发布文章接口的信息


发布文章接口的信息分析如下。

  • 从图2 所示的信息可以看到,发布文章接口采用的是 POST 请求方法, 请求的数据类型为 JSON 格式,且携带了 cookies 信息,这说明发布文章的接口在请求的信息中引用了登录接口所设置的变量信息(为 admintoken 字段的值所设置的变量)。
  • 从请求的正文可以看到,title 的值为“付出”,这说明此次发布文章的标题就是“付出”。
  • 从响应的正文可以看到,当文章发布成功后,服务端生成了一个 id 的参数,这个参数为文章的 id 号,此次发布文章的 id 为 1。但需要注意的是,此 id 号是动态变化的,因为每发布一次新的文章,生成的 id 号都是不一样的。如果下游接口要修改或删除此文章,则需要引用此 id 号。


在接口测试用例当中,如何让下游的接口引用上游接口的 id 信息呢?需要将 id 的值提取出来,放在一个变量中,下游接口直接引用这个变量就可以获取 id 的值。


3)修改文章接口信息的提取

通过 Fiddler 工具获取的修改文章接口的信息如图3 所示。

08164ea86c0d75e764b5571da7048dc3.png

图3 修改文章接口的信息


修改文章接口的信息分析如下。

  • 从图3 所示的信息可以看到,修改文章接口采用的是 POST 请求方法,请求的数据类型为 JSON 格式,且携带了 cookies 信息,这说明修改文章的接口在请求的信息中引用了登录接口所设置的变量信息(为 admintoken 字段的值所设置的变量)。
  • 从请求的正文可以看到,此次修改的是 id 为 1 的文章,并且将文章的标题由原来的“付出”修改成“付出才能杰出”。但由于文章 id 是动态变化的,所以修改文章时需要引用发布文章接口所设置的 id 的变量。


4)删除文章接口信息的提取

通过 Fiddler 工具获取的删除文章接口的信息如图4 所示。

image.png

图4 删除文章接口的信息


删除文章接口的信息分析如下。

  • 从图4 所示的信息可以看到,删除文章接口采用的是 POST 请求方法,请求的数据类型为表单格式,且携带了 cookies 信息,这说明删除文章的接口在请求的信息中引用了登录接口所设置的变量信息(为 admintoken 字段的值所设置的变量)。
  • 从请求的正文可以看到,此次删除的是 id 为 1 的文章,但由于文章的id 是动态变化的,所以删除文章时需要引用发布文章接口中为 id 设置的变量。


5)查询文章接口信息的提取

此次查询的内容为“付出才能杰出”,通过 Fiddler 工具获取的查询文章接

口的信息如图5 所示。

image.png

图5 查询文章接口的信息


查询文章接口的信息分析如下。

  • 从图5 所示的信息可以看到,删除文章接口采用的是 GET 请求方法,所以要查询的内容直接放在接口地址里面,而不是放在请求的正文中。查询文章接口同样在请求头中携带了 cookies 信息,这说明查询文章接口在请求头中引用了登录接口所设置的变量信息(为 admin-token 字段的值所设置的变量)。
  • 从响应的正文可以看到,error 字段的值为 0,说明业务查询成功,并且total 和 records 字段的值均为 0,这说明“付出才能杰出”这篇文章已彻底删除,已查询不到任何记录。


6)接口关联总结

通过以上的接口分析,可以得出以下的结论。

  • 发布文章接口和登录接口相关联。
  • 修改文章接口既和登录接口相关联,又和发布文章接口相关联。
  • 删除文章接口既和登录接口相关联,又和发布文章接口相关联。
  • 查询文章接口和登录接口相关联。


下一篇文章将通过用例设计设置的变量来处理这种上下游接口之间的关联关系。

《接口自动化测试项目实战:Python 3.8+Requests+PyMySQL+pytest+Jenkins 实现》

本书采用项目驱动模式,并通过Python库建立起一套基础的、实用的接口自动化测试框架。本书共分为两部分:

  • 第一部分为接口自动化测试基础,包括第1~6章,先带读者部署被测系统,然后分别讲解 HTTP 请求的发送(Requests 库)、目录及文件的操作(os 库)、日志信息的记录与输出(logging 库)、数据库的操纵(PyMySQL 库)、pytest 框架的使用等,所用的库都是设计接口自动化测试框架常用的基础库。
  • 第二部分为构建接口自动化测试框架,包括第7 ~ 9 章,将应用第一部分的基础知识,带读者对 ZrLog 项目设计测试用例、搭建接口自动化测试框架、实现接口自动化测试框架的持续集成等。


本书不但展示了设计接口自动化测试框架的整个过程,还讲解了设计接口自动化测试框架所需的基础能力和思维。本书适合接口自动化测试的从业者阅读,也适合相关专业的院校及各大培训机构作为教材。

目录
相关文章
|
4月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
520 113
|
5月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
5月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
7月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
953 0
|
5月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
511 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
5月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
4月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
7月前
|
人工智能 前端开发 测试技术
如何让AI帮你做前端自动化测试?我们这样落地了
本文介绍了一个基于AI的UI自动化测试框架在专有云质量保障中的工程化实践。
2933 22
如何让AI帮你做前端自动化测试?我们这样落地了
|
7月前
|
Web App开发 开发框架 .NET
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
Pytest 与 Playwright 集成可提升自动化测试效率,支持参数化测试、多浏览器并行执行及统一报告生成。通过数据驱动、Fixture 管理和并行优化,显著增强测试覆盖率与执行速度,适用于复杂 Web 应用测试场景。