热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全521页接口测试面试题及参考答案(汇总),赶快收藏起来慢慢看~

1、你们公司的接口测试流程是怎样的?(有没有感觉熟悉,貌似在哪里听过)接口测试我们是在XX项目做的,主要有X

1、你们公司的接口测试流程是怎样的?(有没有感觉熟悉,貌似在哪里听过)

接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等。

  • 1、首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。
  • 2、然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:
    • 1、首先新建一个线程组。
    • 2、然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口)
    • 3、再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)
    • 4、然后创建断言和查看结果树。
  • 3、最后调试并执行用例,最后编写接口测试报告
  • 4、其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等。

2、请简述一下COOKIE、session以及token的区别(有没有感觉整个是万年不变的面试题)

  • (1)COOKIE数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
  • (2)COOKIE不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用COOKIE
  • (3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在COOKIE

3、接口测试如何设计测试用例?(必问,有没有感觉答的整个人都不好了?)

  • 接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!

接口测试设计测试用例的思路如下:

  • 1.接口业务逻辑测试?(正例)
    接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值
    是否正确的测试,也就是测试对外提供的接口服务是否正常工作。
  • 2.模块接口测试?(反例)
    模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。?
    模块接口测试的主要包括以下几个方面:?
    • 1&#xff09;鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
    • 2&#xff09;其他参数异常。
      • 1、必填项检查
      • 2、参数的长度、类型、格式异常&#xff1a;
        - 常规参数&#xff1a;(数字、字符串、日期)
        - 参数长度&#xff1a;6-18位。或身份证、电话的长度。
        - 参数类型&#xff1a;数字(精度)&#xff0c;字母&#xff0c;中文&#xff0c;带空格的参数&#xff0c;特殊字符。
        - 日期格式&#xff1a;日期&#xff1a;年月日&#xff0c;年月日时分秒&#xff0c;日期格式(包括/,-,:等)。
    • 3&#xff09;错误码异常覆盖。
    • 4&#xff09;接口测试其他的关注点
      • 接口有翻页时&#xff0c;页码与页数的异常值测试
      • 数据库的增删改查&#xff0c;比如一个post接口操作完成后&#xff0c;通过列表页接口看下新的数据是否和刚才的post一致
      • 接口返回的图片地址能否打开&#xff0c;图片尺寸是否符合需求
      • 当输出参数有联动性时&#xff0c;需要校验返回两参数的实际结果是否都符合需求。
      • 所有列表页接口必须考虑排序值
      • 所有功能都要考虑兼容旧版本

4、接口测试执行中比对数据库吗&#xff1f;

  • 肯定啊&#xff0c;因为接口返回值的数据来源于数据库&#xff0c;接口对数据的操作还要进行深层次的数据库检查&#xff01;

5、谈谈你对HTTP协议的了解&#xff1f;

  • 超文本传输协议&#xff0c;端口为80&#xff0c;特点&#xff08;无记忆功能、快速&#xff09;是由请求和响应两部分组成请求由请求头、请求行、请求正文组成&#xff1b;响应是由响应头、响应行、响应正文组成&#xff0c;之前我们公司的接口是采用https协议的。
  • https http&#43;ssl协议 端口443 面向安全的超文本传输协议

6、get和post请求有什么区别&#xff1f;

  • get和post请求都是客户端向服务器提交的一种请求方式
  • get是明文传输参数、倾向于请求服务器资源。比如打开网站
  • post传输数据不可见&#xff0c;安全性高&#xff0c;倾向于向服务器提交数据&#xff0c;比如注册等

7、响应状态码有哪些&#xff1f;

  • 1xx&#xff1a;指示信息–表示请求已接受&#xff0c;继续处理
  • 2xx&#xff1a;成功–表示请求已被成功接收、理解、接受
  • 3xx&#xff1a;重定向–要完成请求必须进行更进一步的操作
  • 4xx&#xff1a;客户端错误–请求有语法错误或请求无法实现
  • 5xx&#xff1a;服务器端错误–服务器未能实现合法的请求

8、在接口测试过程中发现的bug多不多&#xff1f;能举几个栗子&#xff1f;

这个问题其实回到起来很简单&#xff0c;只要做过接口测试的&#xff0c;总能发现几个BUG吧&#xff0c;把你平常发现的bug说2-3个就可以了。面试官出这个题&#xff0c;主要是想知道你是不是真的做过接口测试&#xff0c;毕竟现在很多小伙伴简历都是写的假的&#xff08;你要不写估计面试机会都没有&#xff0c;没办法&#xff0c;为了生存&#xff0c;能理解&#xff09; 比如&#xff0c;提现输入框&#xff0c;在页面上输入负数&#xff0c;肯定是无法提交过去&#xff08;前端页面会判断金额&#xff09;&#xff0c;如果我不走前端&#xff0c;直接用接口工具发请求&#xff0c;输入一个负数过去。&#xff08;假设服务端没做提现金额数据判断&#xff09; 余额&#61;当前余额&#xff08;100&#xff09;-提现金额&#xff08;-100&#xff09;&#xff0c;那么提现-100&#xff0c;余额就变成200了&#xff0c;也就是越提现&#xff0c;余额越大了。

9、接口测试中有哪些要注意的测试点&#xff1f;

  • 1)接口中返回了图片地址&#xff0c;要手工去进行图片的测试&#xff08;大小、内容&#xff09;
  • 2)接口完成查询功能的时候&#xff0c;数据返回的排序显示
  • 3)接口测试的时候&#xff0c;关注参数的默认值、必填项

10、接口执行测试后返回结果做对比&#xff0c;一般比对哪部分内容&#xff1f;

  • 之前必须要对比的就是返回状态码&#xff0c;其次再去对比返回其它关键内容

11、为什么开展接口测试&#xff1f;

  • 1)接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题&#xff0c;其修复问题的成本越低
  • 2)接口测试非常快速、UI自动化执行一个测试用例10S左右、接口测试用例执行的话&#xff0c;需要的时间是毫秒级的

12、之前在接口测试过程中&#xff0c;使用的工具是什么&#xff1f;

  • postman或jmeter(5.1)

13、之前用过抓包工具没有&#xff1f;如何使用的&#xff1f;

  • 之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取
  • 打开fiddler之后&#xff0c;默认浏览器配置了127.0.0.1 8888端口的代理&#xff0c;在fiddler设置好过滤策略后&#xff0c;打开需要进行抓包的网站进行操作&#xff0c;就可以进行抓包

14、json数据是什么&#xff0c;你平时如何解析json数据&#xff1f;

  • 一种开发常用的数据报文格式&#xff0c;由键值对和数组两种格式构成。可以通过工具bejson网站等

15、postman你在工作中使用流程是什么样的&#xff1f;

  • 编写好用例
  • 在postman先建好url环境变量
  • 根据接口用例所属的模块新建集合管理
  • 在集合中不同模块下录入测试用例
  • 录入测试用例的时候根据预期结果在tests页签中增加断言
  • 导出通过Newman去运行

16、postman中设置环境变量有什么用&#xff1f;

  • 在之前项目中&#xff0c;接口测试测试的环境有开发环境&#xff0c;测试环境等&#xff0c;为了测试的时候方便&#xff0c;就在postman设置环境变量&#xff0c;到时所有接口都引用该环境变量&#xff0c;这样就不用为了切换环境导致每次都去修改被测系统接口的主机地址&#xff1b;点击右上角环境变量管理按钮-新建环境变量&#xff0c;在脚本中使用{{变量名}}去调用

17、在接口测试中关联是什么含义&#xff1f;如何用postman设置关联&#xff1f;

关联就是把上一个接口返回值的部分截取出来&#xff0c;作为下一个接口的参数&#xff0c;能让接口串联运行
在postman中设置关联的步骤如下&#xff1a;

  1. 先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来
  2. 使用设置全局变量的代码把取出来的值保存到全局变量
  3. 在下一个接口中&#xff0c;使用{{全局变量}}代替要替换的静态值

18、postman支持什么类型的协议测试&#xff1f;

  • http和https协议的

19、postman参数化有哪几种方式&#xff1f;

  • 内建变量、pre-scripts编写js脚本、批量运行时导入csv或json格式的文件

20、Newman如何执行postman脚本&#xff1f;

  • Newman run 脚本名称 也可以添加参数生成html报表等

21、jmeter之前用的是什么版本&#xff1f;如何安装的&#xff1f;

jmeter用的是5.1.1版本&#xff0c;安装如下&#xff1a;
先在电脑上安装jdk1.8或以上的版本&#xff0c;然后从官网下载最新的安装包&#xff0c;解压后&#xff0c;进行环境变量的配置&#xff0c;配置好后即安装完成

22、在项目中如何用jmeter进行接口测试&#xff1f;

  • 1、把线程组数量设置为1&#xff0c;循环次数设置为1
  • 2、配置好全局变量URL通过配置元件—用户自定义的变量添加
  • 3、增加配置元件http请求默认值&#xff0c;放置在用户定义的变量之后
  • 4、添加事务控制器管理和组织测试用例
  • 5、在事务控制中添加http请求添加测试用例中的接口请求信息
  • 6、添加对应的断言元件进行断言

23、jmeter中如何设置断言&#xff1f;

右击请求—断言—响应断言—响应断言界面输入要检查比对的项&#xff0c;设置好断言后&#xff0c;执行接口测试如果是通过的&#xff0c;查看结果树不会有任何提示&#xff0c;如果断言失败&#xff0c;就会有红色报错。如果接口返回的数据是json数据&#xff0c;也可以添加json断言

24、jmeter中如何实现关联&#xff1f;

先从上一个接口中通过正则表达式提取器或jsonpath解析器截取下一个接口需要的参数值保存到变量&#xff0c;然后再写一个接口中通过${变量名}去获取

25、jmeter添加http请求默认值元件有什么作用&#xff1f;

添加并设置好后&#xff0c;相当于给所有的http请求取样器都设置了默认值&#xff0c;既不用填写取样器中的比如主机地址、端口、代理等&#xff0c;都可以使用http请求默认值设置的

26、jmeter参数化的方式有哪几种可以实现&#xff1f;

  • 1、配置元件—用户定义的变量元件可以设置全局变量
  • 2、函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化
  • 3、可以使用csv文件作为参数化&#xff0c;通过配置元件中的csv data set config元件进行设置即可

最后:【可能给予你助力的教程】

在这里插入图片描述
这些资料&#xff0c;对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库&#xff0c;这个仓库也陪伴我走过了最艰难的路程&#xff0c;希望也能帮助到你&#xff01;凡事要趁早&#xff0c;特别是技术行业&#xff0c;一定要提升技术功底。

关注我的微信公众号&#xff1a;【程序员二黑】免费获取~

我的学习交流群&#xff1a;642830685 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容&#xff0c;请 “点赞” “评论” “收藏” 一键三连哦&#xff01;

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节&#xff0c;我们该如何自救

大学毕业开始销售…不甘于现状&#xff0c;转行测试的自救之路

从销冠到失业&#xff0c;最后选择软件测试&#xff0c;回头看看这段路&#xff0c;我很幸运&#xff01;


推荐阅读
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
author-avatar
伤恋ZY_162
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有