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

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

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 项目设计测试用例、搭建接口自动化测试框架、实现接口自动化测试框架的持续集成等。


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

目录
相关文章
|
6月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
5月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
10月前
|
数据采集 前端开发 JavaScript
深挖navigator.webdriver浏览器自动化检测的底层分析
本文详细讲解了如何通过技术手段破解浏览器 `navigator.webdriver` 检测,结合爬虫代理、多线程等策略,在豆瓣图书页面批量采集数据。具体包括:隐藏 Selenium 特征、配置代理突破 IP 限制、设置伪装用户、利用多线程提升效率。文章面向初学者,提供分步教程与示例代码,同时设有「陷阱警告」帮助规避常见问题。目标是从底层实现反检测,高效采集图书评分、简介、作者等信息,适合具备 Python 和 Selenium 基础的读者实践学习。
400 12
深挖navigator.webdriver浏览器自动化检测的底层分析
|
10月前
|
监控 安全 Linux
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
430 2
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
|
9月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
208 10
|
11月前
|
数据采集 JSON 前端开发
GraphQL接口采集:自动化发现和提取隐藏数据字段
本文围绕GraphQL接口采集展开,详解如何通过`requests`+`Session`自动化提取隐藏数据字段,结合爬虫代理、Cookie与User-Agent设置实现精准抓取。内容涵盖错误示例(传统HTML解析弊端)、正确姿势(GraphQL请求构造)、原因解释(效率优势)、陷阱提示(反爬机制)及模板推荐(可复用代码)。掌握全文技巧,助你高效采集Yelp商家信息,避免常见误区,快速上手中高级爬虫开发。
212 3
GraphQL接口采集:自动化发现和提取隐藏数据字段
|
9月前
|
测试技术 Python
Python接口自动化测试中Mock服务的实施。
总结一下,Mock服务在接口自动化测试中的应用,可以让我们拥有更高的灵活度。而Python的 `unittest.mock`库为我们提供强大的支持。只要我们正确使用Mock服务,那么在任何情况下,无论是接口是否可用,都可以进行准确有效的测试。这样,就大大提高了自动化测试的稳定性和可靠性。
359 0
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
1159 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
407 35
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
557 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析

热门文章

最新文章