软件测试面试题目—接口测试面试题,答案来了

本次接口测试面试真题涵盖如下五大部分内容:

第一、基本理论知识

第二、HTTP协议

第三、JMeter接口测试

第四、Requests模块

第五、接口测试自动化框架

第一部分、基本理论知识

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

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

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

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

2、为什么要做接口测试

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

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

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

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

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

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

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

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

UI(用户界面)是指测试图形界面,如用户如何与应用程序交互,测试应用程序元素,如字体,图像,布局等。UI测试基本上侧重于应用程序的外观和感觉。

API可以实现两个独立的软件系统之间的通信。实现API的软件系统包含可由另一软件系统执行的功能或子例程。

5、接口自动化测试的流程

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

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

6、接口测试的常用工具有哪些

JMeter、Postman、SoapUI

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

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

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

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

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

8、没有接口文档怎么办

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

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

9、接口测试一般测试哪些内容

一般要考虑到功能、性能、安全性、稳定性几个不同的方面。

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

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

请求参数:

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

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

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

响应内容:

对结果码的覆盖

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

11、对API执行哪些常见测试

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

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

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

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

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

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

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

13、接口调用的步骤

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

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

14、API测试会发现哪些Bug

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

15、接口测试的过程中,上下游接口有数据依赖如何处理

可以用一个全局变量来处理依赖的数据

16、依赖于第三方数据的接口如何进行测试

一般利用一些MOCK的工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖。

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

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

查看后端日志

19、有那些类型的接口

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

Webservice接口:soap,rmi,rpc

20、什么是WebService

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

WebService=WSDL+SOAP+UDDI

21、什么是SOAP接口

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

22、什么是REST/RESTFUL接口

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

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

第二部分、HTTP协议

23、什么是HTTP协议

HyperTextTransferProtocol超文本传输协议,是因特网上应用最广泛的应用层协议,传输层基于TCP协议。

24、HTTP协议特点

1.支持客户/服务器模式;

2.简单快速,向服务器请求服务时,只传送请求方法和路径,因而通信速度很快;

3.灵活,HTTP允许传输任意类型的数据对象;

4.无状态,对于事务处理没有记忆能力,每个请求都是独立的;

5.无连接,在1.1版本后默认保持连接;

25、Http请求的组成部分是什么

请求报文包括三部分:

(1).请求行:包含请求方法,URI,HTTP版本协议

(2).请求首部字段,请求header

(3).请求内容实体,请求body

响应报文包含三部分:

(1).状态行:包含HTTP版本,状态码,状态码原因短语

(2).响应首部字段,响应header

(3).响应内容实体,响应body

26、Http协议工作的原理

整个处理流程步骤:

(0)地址栏输入url地址后回车

(1)域名解析,获取ip地址

(2)建立TCP连接,三次握手

(3)浏览器端发起Http请求

(4)Server接收,处理,返回Http响应,

(5)浏览器端接收响应,得到HTML代码

(6)浏览器解析HTML代码,渲染呈现给用户

(7)浏览器端发起Http请求

(8)Server接收,处理,返回Http响应,

(9)浏览器端接收响应,得到HTML代码

(10)浏览器解析HTML代码,渲染呈现给用户

(11)断开TCP连接,四次挥手

27、HTTP协议的请求方式有哪些

1.GET:GET用于从指定资源请求数据。

2.POST:POST用于将数据发送到服务器以创建或更新资源。

3.PUT:PUT用请求有效负载替换目标资源的当前表示。

4.DELETE:DELETE删除指定的资源。

5.OPTION:选项用于描述目标资源的通信选项,让客户端查看服务器的性能。

6.HEAD:HEAD请求与GET请求相同的响应,但没有响应主体,用于获取报头。

28、Http结果码

1xx--提示,2xx--正常,3xx--重定向,4xx--客户端错误,5xx--服务端错误

1.100:Continue,收到了请求的初始部分,请客户端继续

2.200:OK,请求被正常处理

3.301:MovedPermanently,永久性重定向

4.302:Found,临时重定向

5.304:NotModified,发送附带条件的请求时,表示文件未变化

6.400:BadRequest,请求报文语法有误,服务器无法识别

8.403:Forbidden,禁止,请求被服务器拒绝

9.404:NotFound,服务器无法找到对应资源

10.500:InternalServerError,服务器内部错误

29、Http协议首部字段

1、通用首部字段(请求报文与响应报文都会使用的首部字段)

Connection:连接的管理

Cache-Control:缓存的控制

2、请求首部字段

Host:请求资源所在服务器

Accept:可处理的媒体类型

Accept-Charset:可接收的字符集

Accept-Encoding:可接受的压缩方式

Accept-Language:可接受的自然语言

Authrization:认证信息

Referer:当前请求路径的获取渠道

User-Agent:客户端信息

3、响应首部字段

Set-Cookies:客户端应该保存的cookies

Location:令客户端重新定向到的URI

Server:HTTP服务器的安装信息

4、实体首部字段

Content-Type:实体主类的类型

Content-Encoding:实体主体适用的压缩方式

Content-Length:实体主体的的字节数

30、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中的参数不会被保留

31、Http与Https相比的不足

1、通信使用明文不加密,内容可能被窃听,也就是被抓包分析

2、不验证通信方身份,可能遭到伪装

3、无法验证报文完整性,可能被篡改

HTTPS=SSL+HTTP

2HTTP是不安全的,而HTTPS是安全的

3HTTP标准端口是80,而HTTPS的标准端口是443

4在OSI网络模型中,HTTP工作于应用层,而HTTPS的安全传输机制工作在传输层

5HTTP无法加密,而HTTPS对传输的数据进行加密

6HTTP无需证书,而HTTPS需要CA机构wosign的颁发的SSL证书

33、HTTP接口的请求参数类型有哪些

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

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

34、常见的POST提交数据方式

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

Content-type:

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

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

application/json,text/xml:

35、如何对请求数据加密

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

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

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

36、HTTP协议无状态怎么解决Http协议无状态

2、无状态协议解决办法:通过Cookie或Session。

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

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

37、Cookies机制和session机制的区别

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

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

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

Cookie实现方式:

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

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

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

第三部分、JMeter接口测试

38、为什么选择用JMeter进行接口测试

JMeter刚开始觉得难用,但是习惯了发现挺好用的,它功能很强大,满足基本功能测试和压力测试的需求。

39、什么是断言断言的类型有哪些

自动化测试中通过断言做结果判断,用于检查测试中的数据与预期是否一致。一致则结果为pass,否则为fail状态。

JMeter中一些常用的断言有:响应断言、Json断言

40、正则表达式中包括和匹配区别

包括:目标字符串包括正则表达式的内容

匹配:目标字符串包括与正则表达式的内容完全一致

41、Json断言如何使用

首先响应内容应该是json格式;

然后添加json断言,通过json路径表达式,匹配到需要的内容,再把它与预期结果的比对

42、什么是参数化

是自动化过程中,将脚本中的输入数据使用参数来代替,在脚本运行时指定参数的取值

简化操作,实现测试代码和测试数据的分离

jmeter实现方式有---用户参数UserParameters,函数csv_reader,配置元件csvdatasetconfig。

44、什么是关联

多个请求/响应间的数据可能会有相互依赖的关系。

B需要A的数据-----Server返回的,动态变化,必须使用

关联:将服务器返回的数据包中满足条件的数据保存到一个参数中的过程。

45、正则表达式提取器的用途是什么

主要用于关联的场景,一般从响应中获取我们需要的数据,存储到指定变量中,以备后续使

用。

46、Json提取器怎么使用

对于json格式的响应数据,做数据提取时,可以用json路径表达式选取数据,并保存到变量中。

47、如何通过接口上传一个文件

通过接口上传文件,首先content_type值为multipart/form-data

需要确定文件的名称和路径,文件的类型,参数名称三个数据

48、需要重定向如何处理

JMeter会自动处理重定向,重新发送一个请求到指定url,我们一般勾选跟随重定向,以查看重定向的过程

49、接口数据需要加密怎么处理

JMeter早期版本有加密功能,目前移除掉了,要加密我们得写代码实现了。

Beanshell,groove

第四部分、Requests接口测试

50、为什么用requests做接口测试

使用工具和写代码各自优劣。

2.requests的Session类自动进行cookie的处理。创建session对象,通过session.post(),session.get()发送连续多个请求。

52、如果返回json格式的数据怎么处理

通过response.json()方法,把json字符串转换为字典对象;

通过json模块的loads()方法,进行反序列化操作;

53、怎么判断响应是否正确

unittest框架,使用TestCase类的assertxx断言方法进行结果判断,把预期结果和实际结果进行比对即可。

THE END
1.软件功能测试工具有哪些(软件性能测试工具有哪些)标题:软件功能测试软件有哪些 软件测试管理工具有:1、PingCode;2、Winrunner;3、LoadRunner?;4、QTP;5、TestDirecto;6、SilkTest;7、Selenium;8、TPT。 1、PingCode PingCode 具有专门的测试管理模块,支持用例创建、用例库、用例评审、测试计划、自动生成测试报告,测试用例还能关联版本、需求、缺陷等。 http://steccn.51sole.com/companynewsdetail_256054332.htm
2.你被哪款“硬控”?6款主流测试管理工具大PK!在软件开发过程中,有效的测试管理是保证产品质量的关键步骤。但由于针对的项目、领域、目标用户,功能也并不一致,所以选择一款适合的测试管理平台并不轻松。 今天我们就来聊一聊目前测试管理工具现状、如何选择合适的测试管理工具以及给大家推荐6款主流的测试管理工具。 http://www.51testing.com/mobile/view.php?itemid=7803687
3.软件质量保障的利器功能测试工具概述什么是功能测试工具? 功能测试工具是一类专门用于确保软件产品或系统按设计意图正确运行的技术手段。这些工具通常集成在开发环境中,帮助工程师和质量保证团队进行自动化或半自动化的测试工作。它们能够模拟用户操作,执行预设的脚本来验证软件是否符合既定的需求规格。 功https://www.su8f52ccm.cn/zhi-neng-yi-biao-zi-xun/809412.html
4.跨平台兼容性测试难题解决方案最佳功能测试工具大比拼在软件开发的世界里,功能测试是确保产品质量的关键环节。随着移动设备、web应用和企业软件等各种类型的应用程序数量激增,跨平台兼容性测试变得尤为重要。为了应对这一挑战,我们需要一系列强大的功能测试工具来确保我们的产品能够在不同的操作系统、浏览器和硬件上无缝运行。本文将探讨如何选择最适合您需求的功能测试工具,https://www.vjvqxysd.cn/bai-jia-dian/521388.html
5.测评工具我用过哪些神器来提高工作效率我用过哪些神器来提高工作效率?首先是数据分析软件,它们能够快速处理海量数据,为决策提供精准的支持。然后是自动化测试工具,这些工具能够在无人值守的情况下,对软件进行严格的测试,确保质量问题得到及时发现和解决。 另外,我还使用了协作平台,这些平台让团队成员之间可以轻松沟通与协作,无论他们身处何方,都能保持项目进https://www.wbhgwbnd.com/xin-pin/834045.html
6.10个常用的软件测试工具,你不容错过在现代软件开发中,软件测试是不可或缺的一部分。为了确保软件产品的质量和稳定性,软件测试工具成为了测试团队的得力助手。 有许多优秀的软件测试工具可以帮助测试人员在各种测试活动中提高效率和准确性。 本文将介绍10个常用的软件测试工具,包括其功能特点、使用场景以及举例说明,希望能为软件测试从业人员提供有价值的参考https://blog.csdn.net/YLF123456789000/article/details/140360301
7.(必备)软件测试工作总结3、自动化虽然能够发现问题,但主要是对继承的功能进行测试,保证以前的老功能。(这个跟项目有关,GUI自动化测试比较复杂,如果是嵌入式设备或芯片的自动化测试,对自动化测试的理解可能会不一样) 二、开发小工具 我在自动化学习期间,表现出来的专业技能和良好的学习能力,得到了同事和主管的认可。鉴于此,在4月中旬的时https://www.yjbys.com/zongjie/gerenzongjie/2114562.html
8.软件测试工程师面试经验总结8篇(全文)软件测试工程师面试经验总结(精选8篇) 软件测试工程师面试经验总结 第1篇 首先说明我算上找实习的时候的面试总共就经历了不到5次,没有多少经验,就在网上和书上摘录了些我认为比较重要的,分享给大家,希望各位都能找到一份适合自己的好工作。1.笔试题 https://www.99xueshu.com/w/filebf0fxmy7.html
9.软件测试工作总结及反思(精选21篇)因为测试经理的角色往往也是半个需求人员的角色。第三,尽量在头三年的时间里,亲自参与功能测试、性能测试、自动化测试工作,为后面测试管理的招聘工作、测试计划、人员分配、任务安排打下一个良好的技术基础,说白了,测试管理工作也是一个技术管理岗位,没有一定的技术功底,很难开展后续的管理工作。https://www.ruiwen.com/word/ruanjianceshigongzuozongjiejifs.html
10.软件测试人员必备的十大测试工具最常用的软件测试工具有哪些软件测试工具有哪些?市面上的软件测试工具虽然有很多,但功能和实用性上都存在差异。本文中Maigoo小编盘点了十大软件测试工具,名列其中的有LoadRunner、AppScan、Apache JMeter,以及Postman、REST Assured、RunnerGo、Selenium、Appium、OWASP ZAP等。这些最常用的软件测试工具你都听说过吗?一起来了解下吧! 排排榜 关注https://www.maigoo.com/top/442184.html
11.小米系列深度刷机救砖通用教程(上)5.下载刷机包及所需工具(回复后下载) 请务必在本帖下发表回复,并通过此处下载对应的刷机包和工具,不要使用其他来历不明的软件避免出现问题,这样做也能把帖子顶起来,从而帮助更多还在焦急中的米粉们,谢谢配合。如果确实无法回复本帖,请及时私信联系小编哦! http://www.miui.com/thread-4324312-1-1.html
12.免费的常用测试工具软件有哪些?软件技巧下面给大家推荐几款好用的免费的常用测试工具软件,有需要的小伙伴们来了解一下。 1.CPU-Z 中文版下载 2.03 CPU-Z是一款功能强大的CPU检测软件,支持多种处理器类型和核心频率的检测。除了提供详细的CPU信息外,还能够探测主板和内存的相关参数,并具备超频可能性探测等功能。该软件具有快速启动和高精度的特点,在选购https://xiazai.zol.com.cn/jiqiao/77558.html
13.软件测试工程师常用的测试工具有哪些?使得许多小伙伴选择参加软件测试工程师课程培训进入软件测试行业,掌握一门先进的技术,就像握住了一把开启未来的钥匙,所以如果想要达到优秀软件测试工程师的水平,还是需要学习大量的专业知识的,今天八维职业学校和大家一起来看看软件测试工程师常用的测试工具有哪些,希望对想要学习和了解软件测试工程师这个行业的同学有所帮助https://www.bwie.com/jsgh/213.html
14.软件测试工具常用的都有哪些软件测试工具常用的有: 1.PingCode Testhub; 2.LoadRunner; 3. QTP;4. Selenium。测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的产品,而https://worktile.com/blog/know-1501/
15.全栈性能测试修炼宝典JMeter实战在技术上,它不只是全面、深入地讲解了性能测试和性能优化,而且还讲解了安全测试;在工具上,不只是讲解了JMeter,还讲解了受欢迎的开源工具Apache ab;在内容上,不只是讲解了软件测试,还为测试人员的职业规划和发展指明了方向,从某种程度上讲,这比技术更有价值;在实操性上,它绝不是“纸上谈兵”,解决了很多书让读者https://www.epubit.com/bookDetails?id=N24402
16.汽车软件单元测试集成测试系统测试的区别详解基于目前的汽车电气架构主要是分布式的电器架构,汽车的功能分解到了各个相应的功能模块,因此嵌入式汽车软件的复杂度,相比于IT软件,并没有那么大,但质量要求相对非常高。为了解决软件开发过程中的各种问题,先后引入了瀑布模型、V模型、敏捷等。 这里以V模型引入汽车嵌入式软件开发中的单元测试、集成测试和系统测试。 https://www.eet-china.com/mp/a343242.html
17.中学生心理压力状况调查报告(通用10篇)1.2.1 测试工具 (1) 自编基本信息问卷:包括性别、年龄、婚姻、学历、职业、病史及其家庭经济状况等一般人口统计学资料。 (2) 中文版知觉心理压力量表 (ChinesePerceived Stress Scale, CPSS) [4]:该量表共14个自评项目, 每个项目采用1-7级评分法。第4、5、6、7、9、10、13项目进行反向评分, 评分之和为失控https://www.360wenmi.com/f/filewe6zk5d3.html
18.2024年20款实用的软件测试工具推荐(免费/付费)软件测试是软件开发生命周期中的一个关键过程,用于在将应用程序发布给最终用户之前确保其质量。 测试可以手动或自动完成,可以通过测试提高可靠性、安全性和性能,节省时间和金钱,提高客户满意度。 一:软件测试工具的分类 软件测试工具按照这种分类,软件测试工具有10种类型: https://www.extrabux.cn/chs/guide/8246827