软件测试之接口测试常见面试题

一、什么是(软件)接口测试?

接口测试:是测试系统组件间接口的一种测试方法

接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系

接口测试的意义:在较早期开展,在软件开发的同时实现并行测试,减少页面层测试的深入问题,降低开发成本,缩短整个项目的测试周期;脱离页面的限制,更全面的进行测试,发现更底层的问题。

二、为什么要做接口测试?

1)越底层越早期发现bug,它的修复成本是越低的。

2)测试时能够跨越前端UI的限制,做更充分的测试,检查系统的安全性、稳定性。

3)接口相对UI自动化也比较稳定,也相对容易实现自动化持续集成,且可以减少回归测试人力成本,缩短测试周期,支持后端快速发版需求。

三、解释API测试和单元测试之间的区别

API(Application Programming Interface,应用程序编程接口),指一个软件组件与外界进行的交互的接口。它是一组功能和过程,可用于创建访问应用程序或操作系统的功能或数据的应用程序。

API测试:属于黑盒测试;一般测试人员执行;单元测试完成再执行API测试;API测试可以检查系统的全部功能,以便最终用户可以完美地使用它。

单元测试:属于白盒测试;一般归开发人员执行;在每个模块准备就绪,则进行单元测试;执行单元测试以检查每个隔离单元是否按预期执行。

四、UI测试和API测试之间的关键区别?

UI(用户界面)是指测试图形界面,如用户如何与应用程序交互,测试应用程序元素,如字体,图像,布局等。UI测试基本上侧重于应用程序的外观和感觉。 API可以实现两个独立的软件系统之间的通信。实现API的软件系统包含可由另一软件系统执行的功能或子例程。

五、接口自动化测试的流程?

半自动化: 了解接口---用例设计---选择工具、实现用例---问题分析

自动化: 需求分析-->用例设计-->自动化工具或框架选择-->脚本开发-->测试执行-->结果分析-->维护--->持续集成。

六、接口文档一般有哪些内容?

接口文档一般包括用户使用接口时必备信息:

接口说明、调用url、使用的方式、使用举例

请求参数列表、参数类型、请求参数说明

返回参数说明、错误码说明。

七、没有接口文档怎么办

抓包分析,或者源代码、日志,或者根据数据库设计,根据业务,沟通--梳理接口文档,

不规范---找到必备信息---自己简要整理成文档---确认。

八、接口功能测试用例的编写要点?

首先是接口的基本功能测试:正常场景和异常场景,

请求参数:

参数基本校验:是否有默认值,类型要求、是否必填,合法性要求、边界值

各参数之间是否有逻辑关系

业务逻辑测试:正向,反向,

响应内容:

对结果码的覆盖

响应数据校验:格式和内容

九、对API执行哪些常见测试?

1)通常根据请求响应验证返回值是否基于请求。

2)当API更新数据时,我们应验证系统是否在验证结果。

3)我们将验证API是触发其他事件还是请求其他API。

4)当没有返回值时,我们将验证API的行为。

十、在API测试期间,面临哪些不同类型的挑战?

1)参数选择、参数组合、调用顺序、输出验证和确认

2)鉴权、身份认证、协议

十一、接口调用的步骤?

用户:发送接口请求,然后接收响应内容;

Client发送请求<-------->Server处理并返回响应

十二、API测试会发现哪些Bug?

功能缺失或重复;没有友好处理错误情况;可靠性;安全性;性能;错误处理不一致;多线程问题;

十三、接口测试中依赖登录状态的接口如何测试?

依赖登录状态的接口的本质上是在每次发送请求时需要带上Sessionid或者Cookie才能发送成功,在构建请求时添加必要的Sessionid或者Cookie即可。

十四、当一个接口出现异常时候,你是如何分析异常的?

抓包分析,用fiddler、F12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了

查看后端日志

十五、有那些类型的接口?

如内部接口和外部接口;单一接口,组合接口

根据协议划分:http接口,soap接口,

http接口: get, post, put, delete;

Web service接口: soap,rmi, rpc

十六、什么是Web Service?

Web Service是一个SOA(面向服务的编程)的架构,它是不依赖于语言和平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互;

Web Service = WSDL+SOAP+UDDI

十七、什么是SOAP接口

SOAP简单对象访问协议,是一种基于 XML 的协议。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议HTTP,简单邮件传输协议SMTP。

十八、什么是REST/RESTFUL接口?

在REST API中,通过HTTP协议进行交互。

REST - 表述性状态转移,它不是协议和标准而是表示一种风格, 将Http协议的设计初衷作了诠释。它正快速成为API创建的标准。

十九、GET请求和POST请求区别是什么?

1)GET一般从服务器上获取资源,POST一般往服务器发送数据(不是绝对的)

2)GETGET方式主要是对数据库进行查询,GET是幂等和安全的,而POST主要用于让数据库增加数据或者删除,修改数据,所以会有一定的安全性问题;

3)GET请求数据是通过URL传送,POST请求数据通常在请求BODY中;

4)GET,因为受URL长度限制,数据量有限;POST可以传输大量数据,可用于文件上传

5)GET是不安全的,因为URL是可见的;POST较安全

6)GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留

二十、HTTP接口的请求参数类型有哪些?

  1. 查询字符串参数(Query String Parameters参数)一般用于GET请求,会以url string的形式进行传递。

  2. 请求体参数(Request Body)一般用于POST请求,可以使用Content-Type来指定不同参数类型。

二十一、常见的 POST 提交数据方式

请求body;请求url+请求body:

Content-type:

application/x-www-form-urlencoded: 表单提交--键值对, form

multipart/form-data:文件上传---文件 ,MIME

application/json,text/xml:

二十二、、如何对请求数据加密?

为什么要加密,常规加密方式

  1. Jmeter--找它的对应组件或函数;如果没有写代码,

  2. Requests--写代码,利用python自带的或第三方的模块

二十三、HTTP协议无状态?怎么解决Http协议无状态?

1)无状态指对于事务处理没有记忆能力,每个http请求都是完全独立的。 2、无状态协议解决办法: 通过Cookie或Session。

A. client发送登录请求,server判断登录成功,生成cookie并返回响应

B. Client保存cookie,并在接下来的请求时,带上cookie

C. Server接收到请求,对请求中的cookie做验证

二十四、Cookies机制和session机制的区别

cookies数据保存在客户端,session数据保存在服务器端;

cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗;

session较安全,但占用服务器资源;

Cookie实现方式:

  1. 登录成功,server返回cookie---响应的header的set-cookie字段

2)下次请求,请求header中通过cookie字段带上需要的cookie

session实现方式---cookie,Url回写

1)登录成功,server创建session并返回sessionid

2)下次请求时,请求报文中带上sessionid

相关推荐
Lee川10 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川14 小时前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i16 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有16 小时前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有16 小时前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫17 小时前
Looper.loop() 循环机制
面试
AAA梅狸猫17 小时前
Handler基本概念
面试
Wect18 小时前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼18 小时前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼18 小时前
Next.js 企业级落地
前端·javascript·面试