大家好,今天给大家分享一下之前整理的关于接口知识的汇总,对于测试人员来说,深入了解接口知识能带来诸多显著的好处。
一、为什么要了解接口知识?
接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识,才能真正理解系统的架构和运行机制,从而更好地把握系统的整体质量。接口的稳定性直接影响着整个系统的性能和用户体验,测试人员作为质量的守护者,必须对接口有深入的认知,才能为系统的高质量交付保驾护航。
二、测试人员了解接口知识 可以带来哪些好处?
1、了解接口知识有助于更高效地发现和定位问题。当测试过程中遇到错误或异常时,凭借对接口的熟悉,能够迅速判断是前端还是后端的问题,从而精准地开展排查工作,大大缩短解决问题的时间。
2、它能让测试工作更具全面性和深度。能够设计出更完善、更有针对性的测试用例,覆盖接口的各种可能情况,包括正常场景、异常场景以及复杂的参数组合等,确保系统在接口层面的稳定可靠。
3、了解接口知识便于更好地与开发团队沟通协作。可以使用专业的术语和开发人员进行有效的交流,准确理解开发的意图和实现逻辑,提出有价值的建议和反馈。
三、什么是服务端接口?
服务端接口是服务器端提供给其他系统或客户端与之交互的特定访问点和规则集合。
具体来说,它具有以下特点:
服务端接口定义了客户端可以请求的具体操作和功能。这些操作可能包括数据的查询、添加、修改、删除等。它明确了请求的方式,如使用特定的 HTTP 方法(GET、POST、PUT、DELETE 等)。接口还规定了输入参数的要求,比如参数的类型、格式、必填项等。同时,也定义了返回数据的结构和内容,包括正常情况下的数据响应以及可能出现的错误信息和状态码。
通过服务端接口,客户端能够与服务器进行有效的通信和数据交互,以实现各种业务功能和数据处理任务。服务端接口是构建分布式系统和实现不同组件之间协作的重要桥梁。
四、接口的组成部分有哪些?
接口名称:用于标识该接口的独特名称。
请求方法:如 GET、POST、PUT、DELETE 等,规定了客户端与服务器交互的方式。
请求路径:明确具体的访问路径。
请求参数:包括参数名称、类型、是否必填等信息,用于传递数据给服务器。
响应格式:如 JSON、XML 等,定义了服务器返回数据的结构形式。
响应状态码:表明请求处理的结果状态,如 200 表示成功,404 表示未找到资源等。
错误处理说明:描述在出现各种错误情况时的提示信息和处理方式。
五、接口的请求方式都有哪些?
1、GET:用于从服务器获取指定资源,通常用于查询操作,数据会显示在 URL 中。
2、POST:向服务器提交数据,通常用于创建或更新资源,数据通常放在请求体中。
3、PUT:用于更新服务器上的资源,通常是全量更新。
4、DELETE:用于删除服务器上的指定资源。
5、PATCH:用于对资源进行部分更新。
6、HEAD:与 GET 类似,但只返回响应头信息,不返回响应体。
六、接口响应的网络状态码有哪些?
1xx:信息提示
● 100:继续。
2xx:成功
● 200:请求成功。
● 201:已创建(资源创建成功)。
● 202:已接受(请求已被接受,但可能尚未处理)。
● 204:无内容(请求成功,但没有返回内容)。
3xx:重定向
● 301:永久移动(资源已永久转移到新位置)。
● 302:临时移动(资源临时转移到新位置)。
● 304:未修改(资源未发生变化,使用缓存即可)。
4xx:客户端错误
● 400:错误请求(请求存在语法错误或不合理)。
● 401:未授权(需要认证才能访问)。
● 403:禁止访问(有授权但禁止访问该资源)。
● 404:未找到(请求的资源不存在)。
● 405:方法不允许(请求方法不被允许)。
● 408:请求超时。
5xx:服务器错误
● 500:内部服务器错误。
● 502:错误网关。
● 503:服务不可用(服务器暂时不可用)。
● 504:网关超时。
七、http与https的区别是什么?
1、安全性:
HTTPS 是在 HTTP 的基础上通过 SSL 或 TLS 协议进行加密传输,安全性更高,可以防止数据在传输过程中被窃取或篡改;而 HTTP 是明文传输,安全性较低。
2、端口:
HTTP 默认使用 80 端口;HTTPS 默认使用 443 端口。
3、证书:
HTTPS 需要服务器配置数字证书来进行加密通信。
4、对搜索引擎排名的影响:
一些情况下,使用 HTTPS 可能对搜索引擎排名有一定积极影响。
5、性能开销:
由于需要进行加密和解密,HTTPS 相对 HTTP 会有一定的性能开销,但通常可以通过优化来缓解。
八、如果接口由http修改为https,需要增加哪些测试点?
1、证书验证:检查服务器证书的有效性、合法性,包括证书的颁发机构、有效期等。
2、加密通信测试:确保数据在传输过程中确实是加密的,无法被轻易解密和窃取。
3、连接建立测试:验证 HTTPS 连接的建立是否正常,是否存在连接失败或异常情况。
4、性能影响评估:对比更改前后的性能,查看是否有明显的延迟增加等问题。
5、兼容性测试:与不同的客户端(如各种浏览器、应用程序)进行兼容性测试,确保都能正常工作。
6、安全漏洞扫描:利用安全工具进行扫描,检查是否存在新引入的安全漏洞。
7、与其他系统交互:如果接口与其他系统有交互,要确保这种更改不会影响到交互的稳定性和正确性。
8、异常情况处理:测试在证书过期、吊销等异常情况下,系统的处理是否恰当。
9、重定向测试:检查从 HTTP 到 HTTPS 的重定向是否正确、及时。
10、恢复到 HTTP 测试:如果有需要,测试从 HTTPS 切换回 HTTP 的情况是否正常。
九、如何编写接口测试用例?
1、 明确接口信息:
深入理解接口的功能、参数、返回值等。
2、正常场景:
按照接口预期的正常使用方式设计用例,如传入合法的参数,验证返回正确的结果。
3、参数异常:
传入空参数、无效参数、类型错误的参数等,检查接口的错误处理。
4、边界值:
测试参数的边界情况,如最小值、最大值、边界值附近的值等。
5、多参数组合:
考虑不同参数的各种组合情况,验证接口的正确性。
6、数据量:
针对可能存在数据量限制的情况,测试大、小数据量的处理。
7、安全性:
尝试一些可能存在安全风险的操作,如越权访问等。
8、性能相关:
设计一些能测试接口性能的用例,如高并发请求。
9、与其他接口关联:
如果有相关联的接口,考虑它们之间的交互情况。
10、状态切换:
针对有状态的接口,测试不同状态之间的切换。
11、文档一致性:
确保用例与接口文档的描述相符。
12、详细描述:
对每个用例清晰地描述输入、预期输出和测试步骤。
十、如何判断一个BUG是前端还是服务端?
1、从现象分析:
如果界面显示异常、布局错乱、交互卡顿等,可能是前端问题;如果数据不正确、缺失或业务逻辑处理有误,可能是服务端问题。
2、检查请求和响应:
使用浏览器开发者工具等查看请求是否正确发出,参数是否准确传递,如果请求没问题但响应数据异常,很可能是服务端问题;如果请求本身就有问题,比如格式错误等,那可能是前端问题。
3、对比预期值:
明确正常情况下应该得到的数据或结果,与实际情况对比,看偏差出现在前端处理还是服务端处理阶段。
4、日志分析:
查看服务端的运行日志,看是否有错误信息提示服务端存在问题;前端也可能有一些日志可辅助判断。
5、在不同环境测试:
如果在其他类似环境中前端表现正常,而只有特定环境有问题,可能指向服务端;反之则可能是前端问题。
6、与其他功能对比:
看类似功能在前端的表现,如果其他正常,那出现问题的可能是这个功能相关的服务端逻辑。