哈喽,各位老铁好啊!
小编整理了一篇接口测试的金典面试题以及答案分享给大家,相信很多老铁都用得着。
1、什么是(软件)接口测试?
接口测试:是测试系统组件间接口的一种测试方法
接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系
接口测试的意义:在较早期开展,在软件开发的同时实现并行测试,减少页面层测试的深入问题,降低开发成本,缩短整个项目的测试周期;脱离页面的限制,更全面的进行测试,发现更底层的问题。
2、为什么要做接口测试?
越底层越早期发现bug,它的修复成本是越低的。
测试时能够跨越前端UI的限制,做更充分的测试,检查系统的安全性、稳定性。
接口相对UI自动化也比较稳定,也相对容易实现自动化持续集成,且可以减少回归测试人力成本,缩短测试周期,支持后端快速发版需求。
3、解释API测试和单元测试之间的区别
API(Application Programming Interface,应用程序编程接口),指一个软件组件与外界进行的交互的接口。它是一组功能和过程,可用于创建访问应用程序或操作系统的功能或数据的应用程序。
API测试:属于黑盒测试;一般测试人员执行;单元测试完成再执行API测试;API测试可以检查系统的全部功能,以便最终用户可以完美地使用它。
单元测试:属于白盒测试;一般归开发人员执行;在每个模块准备就绪,则进行单元测试;执行单元测试以检查每个隔离单元是否按预期执行。
4、UI测试和API测试之间的关键区别?
UI(用户界面)是指测试图形界面,如用户如何与应用程序交互,测试应用程序元素,如字体,图像,布局等。UI测试基本上侧重于应用程序的外观和感觉。 API可以实现两个独立的软件系统之间的通信。实现API的软件系统包含可由另一软件系统执行的功能或子例程。
5、接口自动化测试的流程?
半自动化: 了解接口---用例设计---选择工具、实现用例---问题分析
自动化: 需求分析-->用例设计-->自动化工具或框架选择-->脚本开发-->测试执行-->结果分析-->维护--->持续集成。
6、接口测试的常用工具有哪些?
JMeter、Postman、SoapUI
Python+unittest/pytest+Requests、java+junit/testng+httpclient
7、接口文档一般有哪些内容?
接口文档一般包括用户使用接口时必备信息:
接口说明、调用url、使用的方式、使用举例
请求参数列表、参数类型、请求参数说明
返回参数说明、错误码说明。
8、没有接口文档怎么办
抓包分析,或者源代码、日志,或者根据数据库设计,根据业务,沟通--梳理接口文档,
不规范---找到必备信息---自己简要整理成文档---确认。
9、接口测试一般测试哪些内容
一般要考虑到功能、性能、安全性、稳定性几个不同的方面。
10、接口功能测试用例的编写要点?
首先是接口的基本功能测试:正常场景和异常场景,
请求参数:
参数基本校验:是否有默认值,类型要求、是否必填,合法性要求、边界值
各参数之间是否有逻辑关系
业务逻辑测试:正向,反向,
响应内容:
对结果码的覆盖
响应数据校验:格式和内容
11、对API执行哪些常见测试?
通常根据请求响应验证返回值是否基于请求。
当API更新数据时,我们应验证系统是否在验证结果。
我们将验证API是触发其他事件还是请求其他API。
当没有返回值时,我们将验证API的行为。
12、在API测试期间,面临哪些不同类型的挑战?
参数选择、参数组合、调用顺序、输出验证和确认
鉴权、身份认证、协议
13、接口调用的步骤?
用户:发送接口请求,然后接收响应内容;
Client发送请求<-------->Server处理并返回响应
14、API测试会发现哪些Bug?
功能缺失或重复;没有友好处理错误情况;可靠性;安全性;性能;错误处理不一致;多线程问题;
15、接口测试的过程中,上下游接口有数据依赖如何处理?
可以用一个全局变量来处理依赖的数据
16、依赖于第三方数据的接口如何进行测试?
一般利用一些MOCK的工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖。
17、接口测试中依赖登录状态的接口如何测试?
依赖登录状态的接口的本质上是在每次发送请求时需要带上Sessionid或者Cookie才能发送成功,在构建请求时添加必要的Sessionid或者Cookie即可。
18、当一个接口出现异常时候,你是如何分析异常的?
抓包分析,用fiddler、F12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了查看后端日志
19、有那些类型的接口?
如内部接口和外部接口;单一接口,组合接口
根据协议划分:http接口,soap接口,
http接口: get, post, put, delete;
Web service接口: soap,rmi, rpc
20、什么是Web Service?
Web Service是一个SOA(面向服务的编程)的架构,它是不依赖于语言和平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互;
Web Service = WSDL+SOAP+UDDI
本章节关于“面试宝典|接口测试金典面试题(一)”的内容就分享到这里,下一章继续更新面试宝典|接口测试金典面试题(二)的内容。觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。