没有任何文档,怎么快速了解接口的信息?

赏金任务每周更新,请持续关注哦 :love_letter:

题目

  • 模拟面试场景,面试官提问以下问题,你如何回答。
  • 没有任何文档,怎么快速了解接口的信息?

参与方式

  • 本帖下方回复你的答案即可

赏金

  • 100元京东购物卡

活动时间

  • 2023年4月24日 - 2023年4月30日

本周赏金任务汇总: 🌈 赏金任务发布 2023-04-10

本问题参与赏金活动,详情点击 :rainbow: 赏金活动上线啦 丨做赏金任务挑战千元奖金 查看活动介绍

在没有接口文档的情况下,可以采用以下方法快速了解接口的信息:

  1. 使用浏览器的开发者工具,查看接口的请求和响应信息,了解接口的请求方式、参数、返回值等基本信息。
  2. 使用接口测试工具,如Postman、Insomnia等,通过模拟请求和查看响应信息,了解接口的相关信息。
  3. 查看项目代码,通过代码中的注释、方法名等信息,了解接口的作用和参数信息。
  4. 询问开发人员或项目经理,了解接口的相关信息。
  5. 查看接口调用的地方,了解接口的使用场景和参数信息。
    总之,在没有接口文档的情况下,需要通过多种途径来了解接口的信息,同时也需要自己进行一定的测试和验证,确保接口的正确性和可靠性。

快速介入接口测试

项目功能提测进入测试环境,你首先就要进行接口测试,这是因为单元测试不是由测试工 程师来完成的,而是由开发工程师编写、并由[持续集成]系统自动完成执行的。如果开发工程师没有给我们任何有价值的文档,那么要开始接口测试,你可以通过工具辅助分析问题询问解惑这三个步骤来完成。

常用解决方法

  • 工具辅助
    常见工具有fiddler,charles,Wireshark来捕获接口

  • 浏览器开发者工具辅助
    如果前端页面已经存在,借助浏览器的开发者工具,F12查看接口的请求和响应信息,从而了解接口的请求方式、参数、返回值等基本信息

  • 分析接口
    根据工具抓到的接口进行分析接口的访问地址、接口方式、入参、响应等

  • 询问研发人员
    针对不明白/有异议的地方询问开发,主要关注:
    1)每个参数的含义及来源:从而知道如何手动构造它
    2)参数的作用域:可以设计更小的参数来覆盖更多的业务逻辑
    3)返回值的含义:完成业务逻辑上下文的参数串联

总结
通过这三步的循环,你就可以完成对系统接口信息的完善和维护,最终得到一份完整的、接口测试需要的输入—接口文档;

然而,即使我们按照上述三个步骤完成了全部单个接口的分析,也并不能马上开始进行接口测试。这是因为,一个测试的业务逻辑是由多个接口的串行完成的,而多个接口的串行逻辑 是由业务逻辑规定的,因此,多个接口之间并不是随意组合的,而是按照业务逻辑、通过数据传递来完成的;

所以,要想使用接口测试完成业务逻辑,你就要制作一个流程中所有接口的接口信息表时,还要理清每一个流程的数据流程,数据流程驱动了业务流处理,这样,才能开始业务逻辑的接口测试。

回顾一下

一个理想的提测项目

在提测的过程中应该既包含前期参与的产品需求、原型设计,这些是由产品经理来提供的;也包含后端接口文档、代码单元测试脚本,这些是由开发工程师提供来的。它们都是你开展测试的必要输入内容,具体有这些作用:

  • 产品需求;完整描述系统的业务逻辑,通过这个文档,你才知道怎么来设计测试用例;
  • 原型设计;直观地告诉你系统的使用逻辑,这对测试用例的设计、对系统的前期认知都是有辅助作用的;
  • 接口文档;它详细地描述了后端接口的访问方式和参数说明,使用这个输入项才能开展接口测试用例的设计、测试脚本的准备和测试数据的构建;
  • 单元测试脚本。它是保障提测质量的必要环节,是研发工程师自测的一个有效手段,可以保障提测项目的提测质量。

如果没有文档,可以通过以下方法来快速了解接口的信息:

  1. 直接询问开发人员或相关人员,了解接口的功能和参数等信息。如果有可能,可以和开发人员或相关人员进行面对面的交流,以便于更快地了解接口的信息。

  2. 使用浏览器的开发者工具(如Chrome浏览器的开发者工具),通过网络请求的相关信息,了解接口的请求地址、请求方式、请求参数等信息。可以通过模拟请求,测试接口的响应情况,以便于进一步了解接口的功能和参数等信息。

  3. 使用第三方工具,如Postman/Apifox、Fillder等,模拟请求接口,了解接口的请求地址、请求方式、请求参数等信息,并测试接口的响应情况。

  4. 查看代码,了解接口的实现方式和参数等信息。可以通过查看代码,了解接口的逻辑和参数等信息,以便于更深入地了解接口的功能和参数等信息。

需要注意的是,以上方法都是相对快速的了解接口信息的方法,但是并不一定能够完全覆盖接口的所有信息。在实际开发中,应该尽可能地完善接口文档,以方便其他人员了解接口的相关信息。

面试官你好,在没有任何接口文档的情况下,有以下几种方法快速了解接口信息:
第一,直接找到需求的开发人员,询问他们这个需求的新增接口信息的信息,或者让他们整理一份接口文档发给测试人员
第二,自己通过抓包软件或者是F12开发者工具抓接口,查看接口的各种信息,并自己记录整理成文档,对于有不懂的参数和字段,找开发请教
第三,有代码权限的情况下,可以通过查看代码的方式来了解接口的相关信息。
回答完毕。

1.使用抓包工具查看接口信息,包括请求URL、参数、格式、返回结果等;
2.使用浏览器开发者工具,查看接口的请求和响应信息;
3.查看接口日志:查看接口调用日志,了解接口间的传递数据和调用顺序;
4.查看代码注释:可以查看这些注释,了解接口名称、参数、返回值等;
5.与开发沟通:问开发接口的详细信息,比如接口请求返回参数、数据范围等;

面试官提问:没有任何文档,怎么快速了解接口的信息?

没有接口文档的情况下理解接口信息,通过询问开发,或查看代码来了解接口。当然最重要的是利用接口本身提供的一切可见的细节,比如:URL、请求方法、参数、响应结果等,尽量去推断和判断接口的功能与作用。多种手段结合,观察分析,通常可以比较快速地理解接口的信息。需要注意的是:在了解接口的信息时,需要谨慎地评估其准确性和可靠性,并进行适当的测试和验证,以确保正确理解和使用接口。同时,也要记录所了解到得信息,包括接口的用法、参数和行为等,以备将来参考。

如果面试官提出这样的问题,可以回答如下:

  1. 可以询问参与开发该接口的工程师,让他简要说明接口的作用与要求。这是理解接口信息的最直接和有效方式。

  2. 浏览代码并查找涉及到接口的部分,包括函数、方法或类。阅读代码可以帮助我们了解接口的使用方式、输入和输出参数以及预期行为。通过分析代码中的注释和变量名,来获取有关接口的重要信息。

  3. 查看接口URL以及请求方法,可以得出接口的基本信息,比如:获取某个资源的接口可能是GET方法,创建资源的接口可能是POST方法。

  4. 查看接口请求头和参数,可以大致判断出接口的作用,比如:包含用户ID和产品ID可能是获取用户购买的某个产品的接口。关键参数可以快速理解接口功能。

  5. 接口命名方式也可以提供很多信息,比如:/users/login很可能是登录接口,/products/create或许是创建产品的接口。

  6. 发送请求调用接口,查看响应结果,是理解接口最直接的方式。可以查看返回字段,状态码,错误信息等,快速弄清接口的具体作用和返回数据格式。

  7. 如果有公共参数,比如:分页参数limit 和 offset,可以判断出该接口支持分页并可大致估计出其返回的数据量级。

  8. 还有一种是通过判断接口是否支持过滤、排序、版本号注明等。通常也会在参数中提供一定的提示,这也是判断接口功能的方式之一。

  9. 如果真的一点线索都没有,也可以选择fuzz测试(模糊测试),尝试不同的请求方法、参数、数据格式等,观察不同响应,尽量去判断接口的一致性和作用。但这通常可能会带来一定的误导,不是首选方式。

当没有任何文档时,了解接口信息的方法可以分为三个阶段:数据探索、代码分析和模拟测试。

数据探索

在这个阶段,我们主要通过发送请求并分析响应数据来了解接口信息。具体方法包括:

  1. 使用 Postman 等工具来发送各种不同的请求,包括不同的参数和数据,观察响应数据的变化,并尝试发现一些规律或者特征。
  2. 使用 Wireshark 或 Fiddler 等网络抓包工具来捕获接口请求和响应的数据,从 HTTP 请求和响应中提取出有用的信息,例如 URL、请求方法、请求头、请求体、响应头、响应体等。
  3. 对于接口响应中的复杂数据结构,可以通过 JSONView 等浏览器插件或者在线 JSON 解析工具来格式化和展示响应数据,便于分析和查看数据的层次结构和字段信息。

代码分析

在这个阶段,我们主要通过分析后端代码和前端代码来深入了解接口的逻辑实现和参数处理方式。具体方法包括:

  1. 对于后端代码,可以查看代码中的接口实现部分,尤其是参数验证、数据处理、逻辑分支等部分,分析代码逻辑,了解接口处理请求和响应的方式和流程。
  2. 对于前端代码,可以查看代码中的接口调用部分,了解前端发送请求和处理响应的方式和流程。同时,可以查看前端代码中的参数校验和处理部分,了解前端对请求参数的处理方式。

模拟测试

在这个阶段,我们主要通过模拟测试来验证对接口的理解是否正确。具体方法包括:

  1. 根据已有的信息,手动构造请求,测试接口的响应情况,尝试发现一些不同参数和数据的边界情况,例如空值、极端值、越界等。
  2. 利用 Postman 等工具来构造请求和验证响应。可以将已有的请求和响应数据保存为集合或者环境变量,以便后续的测试使用。
  3. 编写测试脚本或者集成测试工具,利用自动化测试来模拟各种请求和响应情况,并验证接口的正确性和稳定性。