2024非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输!

一、前言


接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口测试可不是下图的USB接口哈,接口是看不见的,但是可以访问!

二、2024非常全的接口测试面试题及参考答案


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)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
    2)其他参数异常。
        1、必填项检查
        2、参数的长度、类型、格式异常:
                常规参数:(数字、字符串、日期)
                参数长度:6-18位。或身份证、电话的长度。
                参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。
                日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。
    3)错误码异常覆盖。
    4)接口测试其他的关注点
        接口有翻页时,页码与页数的异常值测试
        数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致
        接口返回的图片地址能否打开,图片尺寸是否符合需求
        当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。
        所有列表页接口必须考虑排序值
        所有功能都要考虑兼容旧版本

4、接口测试执行中比对数据库吗?

肯定啊,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查!

5、谈谈你对HTTP协议的了解?

超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成,之前我们公司的接口是采用https协议的。

https http+ssl协议 端口443 面向安全的超文本传输协议

6、get和post请求有什么区别?

get和post请求都是客户端向服务器提交的一种请求方式

get是明文传输参数、倾向于请求服务器资源。比如打开网站

post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等

7、响应状态码有哪些?

1xx:指示信息--表示请求已接受,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

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

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

9、接口测试中有哪些要注意的测试点?

11.1)接口中返回了图片地址,要手工去进行图片的测试(大小、内容)

11.2)接口完成查询功能的时候,数据返回的排序显示

11.3)接口测试的时候,关注参数的默认值、必填项

10、接口执行测试后返回结果做对比,一般比对哪部分内容?

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

11、为什么开展接口测试?

13.1)接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题,其修复问题的成本越低

13.2)接口测试非常快速、UI自动化执行一个测试用例10S左右、接口测试用例执行的话,需要的时间是毫秒级的

12、之前在接口测试过程中,使用的工具是什么?

postman或jmeter(5.1)

13、之前用过抓包工具没有?如何使用的?

之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取

打开fiddler之后,默认浏览器配置了127.0.0.1  8888端口的代理,在fiddler设置好过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包

14、json数据是什么,你平时如何解析json数据?

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

15、postman你在工作中使用流程是什么样的?

1) 编写好用例

2) 在postman先建好url环境变量

3) 根据接口用例所属的模块新建集合管理

4) 在集合中不同模块下录入测试用例

5) 录入测试用例的时候根据预期结果在tests页签中增加断言

6) 导出通过Newman去运行

16、postman中设置环境变量有什么用?

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

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

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行

在postman中设置关联的步骤如下:

1) 先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来

2) 使用设置全局变量的代码把取出来的值保存到全局变量

3) 在下一个接口中,使用{{全局变量}}代替要替换的静态值

18、postman支持什么类型的协议测试?

http和https协议的

19、postman参数化有哪几种方式?

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

20、Newman如何执行postman脚本?

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

21、jmeter之前用的是什么版本?如何安装的?

jmeter用的是5.1.1版本,安装如下:

先在电脑上安装jdk1.8或以上的版本,然后从官网下载最新的安装包,解压后,进行环境变量的配置,配置好后即安装完成

22、在项目中如何用jmeter进行接口测试?

1) 把线程组数量设置为1,循环次数设置为1

2) 配置好全局变量URL通过配置元件---用户自定义的变量添加

3) 增加配置元件http请求默认值,放置在用户定义的变量之后

4) 添加事务控制器管理和组织测试用例

5) 在事务控制中添加http请求添加测试用例中的接口请求信息

6) 添加对应的断言元件进行断言

23、jmeter中如何设置断言?

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

24、jmeter中如何实现关联?

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

25、jmeter添加http请求默认值元件有什么作用?

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

26、jmeter参数化的方式有哪几种可以实现?

1) 配置元件---用户定义的变量元件可以设置全局变量

2) 函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化

3) 可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可

 

总结:

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

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

软件测试面试文档

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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式 之 —— 单例模式

目录 什么是单例模式&#xff1f; 定义 单例模式的主要特点 单例模式的几种设计模式 1.懒汉式&#xff1a;线程不安全 2.懒汉式&#xff1a;线程安全 3.饿汉式 4.双重校验锁 单例模式的优缺点 优点&#xff1a; 缺点&#xff1a; 适用场景&#xff1a; 什么是单例模…

微前端概念

微前端作用 大型应用程序的拆分独立的前端子应用降低程序复杂性&#xff0c;提高开发效率 微前端能力 js隔离css隔离元素隔离生命周期预加载数据通信应用跳转多层嵌套… 微前端实现方案 IframeSingle-spaQiankunMicro-app Iframe <iframe src"https://www.examp…

684.美的集团六三二项目流程变革框架整体规划方案132页PPT

读者朋友大家好&#xff0c;最近有会员朋友咨询晓雯&#xff0c;关于集团公司流程变革框架整体规划的问题&#xff0c;晓雯查找到一份《美的集团632项目流程变革框架整体规划方案》&#xff0c;下面是部分内容分享&#xff0c;欢迎大家下载学习。 知识星球APP搜索【战略咨询文…

基于CentOS Stream 9平台安装JDK17.0.12

官方&#xff1a; https://www.oracle.com/java/technologies/downloads/#java17 1. 下载&#xff1a; https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2. 存放目录 mkdir /usr/local/javacd /usr/local/java3. 解压 tar -zxvf jdk-17_linux-x64_…

JQuery异步请求与Flask后端通信、this和event指针汇总

目录 一.JQuery与Flask通信的三种方法 1.1$.ajax() 1.2$.get() 1.3$.post() 二.forEach()方法 三.this指针 3.1为什么要用this指针 3.2this的指向 3.3this指针的四种绑定方式 3.3.1默认绑定 3.3.2隐式绑定 3.3.3显式绑定 3.3.4new绑定 3.3.5通过标签调用this指针…

【云原生】Kubernetes中crictl的详细用法教程与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Glyph-ByT5-v2多语言高精度文字海报

微软亚洲研究院、清华大学、北京大学、利物浦大学联合推出渲染高视觉美感文本惊艳海报&#xff0c;效果媲美DALL-E3支持10种不同语言的准确视觉文本渲染项目仓库&#xff1a;https://github.com/AIGText/Glyph-ByT5i68爱六八,链接你我他&#xff1a;https://i68.ltd

基于物联网的区块链算力网络,IGP/BGP协议

目录 基于物联网的区块链算力网络 IGP/BGP协议 IGP(内部网关协议) BGP(边界网关协议) 内部使用ISP的外部使用BGP的原因 一、网络规模和复杂性 二、路由协议的特性 三、满足业务需求 四、结论 基于物联网的区块链算力网络 通 过 多个物联网传感器将本地计算…

鸿蒙HarmonyOS开发:@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

文章目录 一、装饰器二、概述三、限制条件四、装饰器说明五、Toggle组件1、子组件2、接口3、ToggleType枚举4、事件 六、示例演示1、代码2、效果 一、装饰器 State装饰器&#xff1a;组件内状态Prop装饰器&#xff1a;父子单向同步Link装饰器&#xff1a;父子双向同步Provide装…

Windows10安装CMake图文教程

CMake是一个跨平台的开源构建工具&#xff0c;用于管理软件构建过程。CMake允许开发人员使用简单的语法来描述项目的构建过程&#xff0c;而无需直接处理特定于操作系统或编译器的细节。开发人员可以编写CMakeLists.txt文件来指定项目的源文件、依赖项和构建规则&#xff0c;然…

2024杭电多校第三场

目录 1001-深度自同构 1003-游走 1007-单峰数列 1008-比特跳跃 1011-抓拍 1012-死亡之组 1001-深度自同构 每个数的答案其实与它的各个因数有关&#xff0c;正向递推一下 #include <bits/stdc.h> using namespace std; #define int long long const int N1e65; co…

计算机毕业设计选题推荐-服装生产管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

超市客流统计,AI智能分析算法,生成精准客户画像

随着科技的进步&#xff0c;零售行业正经历着前所未有的变革。其中&#xff0c;超市作为零售业态的重要组成部分&#xff0c;面临着如何更有效地吸引顾客、提升购物体验、增加销售额等挑战。借助先进的客流统计系统和AI智能分析算法&#xff0c;超市不仅能够准确地统计客流量&a…

共建数智江城:生态沃土如何孕育技术普惠的硕果

当人们热议一线、新一线等城市综合竞争力时&#xff0c;数字经济早已成为城市之间竞争的新赛道。 作为国家首批智慧城市建设试点城市&#xff0c;武汉一直是数字经济发展的先锋。2023年&#xff0c;武汉建成数字经济产业园区30家&#xff0c;数字经济规模占地区生产总值比重达4…

一篇文章教你学会二叉树的链表实现及其oj题(附源码)

前言 前面我们通过堆实现了二叉树&#xff0c;接下来我们用链表实现二叉树。 1. 实现链式结构二叉树 1.1 结构体定义 二叉树的每个结点需要两个指针&#xff0c;分别指向其左孩子和右孩子。还有一个结点域&#xff0c;存储数据。 还是将数据类型重命名&#xff0c;便于后面…

【JavaEE】通过Linux部署Web项目到云服务器上

一.配置部署所需的环境. 1.1 什么是部署? 要想知道什么是部署, 就要先了解我们在日常开发的过程中所设计到的几种环境: 开发环境: 软件开发环境指的是开发人员在创建、测试和部署软件应用程序时所需的一系列硬件、软件、工具和流程的集合。它是为了支持软件开发过程而构建的…

文件包含漏洞--pyload

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.PHP伪协议利用 php://协议 php://filter &#xff1a;用于在读取作用和写入文件时进行过滤和转换操作。 作用1&#xff1a;利用base64编码过滤器读取源码 通常利用文件包含执行php://filte…

哈希表专题

题解之前&#xff1a; 1.有关unordered_map的count功能&#xff1a;查询key&#xff01; Leetcode 1.两数之和 解题思路&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> res;// key:具体的数值(便…

【计算机毕业设计】838装修公司CRM系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

c# - - - ASP.NET Core 网页样式丢失,样式不对

c# - - - ASP.NET Core 网页样式丢失&#xff0c;样式不对 问题 正常样式是这样的。 修改项目名后&#xff0c;样式就变成这样了。底部的内容跑到中间了。 解决 重新生成解决方案&#xff0c;然后发布网站。 原因&#xff1a; 修改项目名之前的 div 上有个这个自定义属…