热门标签 | 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;


推荐阅读
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
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社区 版权所有