首页 > 其他分享 >软件测试_接口测试面试题

软件测试_接口测试面试题

时间:2024-08-01 17:25:37浏览次数:13  
标签:面试题 请求 系统 接口 用例 参数 测试 软件测试

接口测试是软件测试中的重要环节,它主要验证系统不同模块之间的通信和数据交互是否正常。在软件开发过程中,各个模块之间的接口是实现功能的关键要素,因此对接口进行全面而准确的测试是确保系统稳定性和可靠性的关键步骤。

接口测试的核心目标是确保系统在不同模块之间的数据传输和交互的正确性。通过对接口的输入和输出进行验证,我们可以确保系统在实际运行中能够正常工作,并且符合预期的需求。在接口测试中,我们需要关注接口的功能、性能、安全性和可靠性等方面,以保证系统的高质量和稳定性。

在进行接口测试时,我们需要根据系统的设计和需求文档,设计合适的测试用例,对接口的各种情况进行全面的覆盖。同时,我们还需要使用各种工具和技术来模拟不同的测试场景,以确保系统在各种情况下都能正常运行。通过接口测试,我们可以发现并解决系统中的潜在问题,提高系统的可靠性和稳定性。

总之,接口测试是保证系统正常运行的重要环节,它能够帮助我们发现并解决系统中的问题,确保系统的高质量和稳定性。通过全面而准确的接口测试,我们可以提高系统的可靠性和可用性,满足用户的需求,并为软件开发和维护工作提供有效的支持。
 

01. 怎么设计接口测试用例?

通常,设计接口测试用例需要考虑以下几个方面:

①是否满足前提条件

有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token

逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例

②是否携带默认值参数

正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条用例

③业务规则、功能需求

这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和逆向用例

④参数是否必填

逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例

⑤参数之间是否存在关联

有些参数彼此之间存在相互制约的关系

⑥参数数据类型限制

逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例

⑦参数数据类型自身的数据范围值限制

正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例

02. 你做接口测试,测什么?

可用性测试: 根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:

接口功能是否正确实现:返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;参数值边界值、等价类测试;

错误和异常处理测试:输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;输入错误的参数,接口能正确处理,并按预期响应;多输入、少输入参数,接口能正确处理,且按预期响应;错误传输数据格式(如json格式写成form格式)测试;安全性测试,主要指传输数据的安全性:

敏感数据(如密码、秘钥)等是否加密传输:返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;接口是否对传入的数据做安全校验,如身份ID加token类似校验;接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);

性能测试:如接口的响应时间、并发处理能力、压测处理情况;并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);接口响应时长在用户可忍受的范围内;对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

03. 平常用什么工具测接口的?

常用http协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等

04. 没有接口文档,如果做接口测试?

用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具Fiddler、Charles等)

05. 在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?

用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那用全局变量来传token参数

06. 依赖于第三方数据的接口如何进行测试?

mock:接着面试官会问你,如果mock的,然后你就顺着坑继续挖,搭建mock服务

07. 接口测试中,依赖登录状态的接口如何测试?

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

08. 如何模拟弱网做测试?

Fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。

09. 你平常做接口测试的过程中发现过哪些bug?

常规错误,接口没实现,没按约定返回结果,边界值处理出错等。

输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;

输入错误的参数、多输入、少输入参数,接口可能出现的错误;

安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请求拦截等;

性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

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

先抓包,用fiddler(charles)工具抓包,或者浏览器上F12调试工具;APP上的话,那就用Fiddler做代理,通过手机设置代理去看请求和返回报文;

查看后端日志,如Linux系统通过xhell连上服务器,查看接口日志,查看是否有报错信息(命令:tail -f 日志文件);

11. 如何分析一个bug是前端还是后端的?

平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug。

这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对;

请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。

12. 你们做接口测试自动化吗?

答:现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有许多,如Jmeter、Robot Framework、pytest等

接口测试是软件测试中一个至关重要的环节。通过验证系统各个模块之间的通信和数据交互是否正常,接口测试确保了系统的稳定性和可靠性。在接口测试中,我们需要关注功能、性能、安全性和可靠性等方面,以保证系统的高质量。通过设计合适的测试用例和使用适当的工具和技术,我们可以发现并解决系统中的潜在问题,提高系统的可靠性和稳定性。接口测试不仅能够满足用户的需求,还为软件开发和维护提供了有效的支持。因此,我们应该高度重视接口测试的工作,并不断优化和完善它,以确保系统能够正常运行,并满足用户的期望。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

标签:面试题,请求,系统,接口,用例,参数,测试,软件测试
From: https://blog.csdn.net/2401_83387413/article/details/140833451

相关文章

  • 软件测试面试时问你的项目经验,你知道该怎么说吗?
    很简单,我来给你们一个公式自我介绍,名字学历荣誉。1简述项目背景,你身处这个项目是做什么的。不要太细,试着引导一下面试官让他提问。这样,请问您对此有什么疑问吗?2简述你在项目中的角色,做那方面的工作。具体的工作陈述。有个度,自己把握好,什么不该说,这个要管好嘴。比如,项......
  • 5分钟掌握软件测试必会mysql数据库知识(数据类型和数据约束
    mysql常用数据类型mysql的常用数据类型,主要有四种,需要我们重点掌握。1整型int整型分成两类,一类是有符号的,就是负数,一类是无符号的,就是正整数。很多时候我们需要的就是无符号的。比如年龄。2小数decimal小数的设置需要我们特别去了解一下。例如:decimal(4,2)这是表示......
  • 阿里测试开发面试题1份
    机试编程题一、正则表达式,.表示匹配除了换行符之外的任意单个字符,而*表示匹配前一个字符零次或多次。基于给出的例子,使用正则表达式来检查字符串k是否包含s。1,s=aa,k=a匹配:k全部匹配s为true否则为falsea,不全部包含aa,打印falses=aa,k=aaaaaa,全部包含aa,打印true。2,s=......
  • Robot Framework 入门指南:高效学习接口自动化测试
    开源自动化测试利器:Robot FrameworkRobot Framework 是一个用于实现自动化测试和机器人流程自动化(RPA)的开放源代码框架。它由一个名为RobotFrameworkFoundation的组织得到推广,得到了多家领军企业在软件开发中的广泛应用。框架以其开放性和灵活性为特点,能够无缝整合各种......
  • 软件测试求贤季,最终拿到5个Offer的一些经验分享(附面试题)
    作为一个测试工程师,自动化测试已经是必须要掌握的技能了。学习自动化测试有两个难点,除了其本身拥有一定的技术门槛之外,实战经验才是学习自动化测试的最大难点。部分初中级测试工程师往往在掌握了基本的编程与自动化测试框架API后,会认为自己已经掌握了自动化测试,便开始投入到......
  • 软件测试必备技能
    在软件测试领域,以下是一些必备的技能和能力,可以帮助你成为一名优秀的软件测试工程师:1.测试基础知识:熟悉软件测试的基本概念、原则和流程,包括不同类型的测试(如单元测试、集成测试、系统测试)、测试方法(如黑盒测试、白盒测试)、测试策略和测试计划等。2.测试设计技能:能够......
  • 目前软件测试前景怎么样?有哪些机遇和挑战?
    随着信息技术的快速发展,软件已经成为了我们生活中不可或缺的一部分。而软件的质量和稳定性也直接关系到用户的使用体验和企业的竞争力。因此,软件测试作为软件质量保证的重要环节,其前景也备受关注。首先,从行业角度来看,软件测试行业前景广阔。随着软件产业的快速发展,软件测试的......
  • 软件测试之解构单元测试
    软件单元测试是对软件中的最小可测试单元进行检查和验证的过程。这些单元可以是函数、方法、类实例,或者是任何具有明确功能、规格定义和接口定义的程序代码模块。单元测试是软件开发过程中的最低级别的测试活动,它确保软件的独立单元在与程序的其他部分相隔离的情况下能够正确工......
  • 让人眼前一亮的软件测试简历,收不到面试邀请算我输
    不知道大家的简历是不是都写成下面这样· 根据需求文档进行需求分析· 熟悉业务流程,明确测试点· 根据测试点设计测试用例· 参与评审测试用例· 提交和回归跟踪缺陷,确认修复完成之后关闭Bug· 通过使用Fiddler进行抓包分析并定位前后端Bu......
  • 今日头条测试开发的编程面试题---生成随机数
    题目:程序中使用的数字只能是0和1,生成0-1000的随机数算法描述:如果生成的十进制数大于1000,则算法重新开始生成新的随机数,直到得到一个在0到1000范围内的数为止。生成二进制数:算法开始时,会创建一个空的字符串 binary_string 用于存储二进制数。在一个循环中,算法会随机生......