接口测试面试题及参考答案(汇总),真香

ops/2024/9/25 16:52:18/

1、你们公司的接口测试流程是怎样的

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

Step1.首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。

Step2.然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:

  • 首先新建一个线程组。
  • 然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口)
  • 再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)
  • 然后创建断言和查看结果树。

Step3.最后调试并执行用例,最后编写接口测试报告

Step4.其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等。

2、请简述一下cookie,session以及token的区别

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

3、接口测试如何设计测试用例

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

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

step1.接口业务逻辑测试?(正例)

接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

step2.模块接口测试?(反例)

  • 模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。

  • 模块接口测试的主要包括以下几个方面:

    1)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。

    2)其他参数异常。

必填项检查

参数的长度、类型、格式异常:

a.常规参数:(数字、字符串、日期)

b.参数长度:6-18位。或身份证、电话的长度。

c.参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。

d.日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。

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、接口测试中有哪些要注意的测试点

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

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

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

10、接口测试后返回结果做对比,一般比对哪些内容

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

11、为什么开展接口测试

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

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

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

postman或jmeter(5.1)

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

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

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

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

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

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

编写好用例

在postman先建好url环境变量

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

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

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

导出通过Newman去运行

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

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

17、接口测试中关联是什么含义,postman怎么设置关联

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

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

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

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

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

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

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

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

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

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

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

23、jmeter中如何设置断言

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

24、jmeter中如何实现关联

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

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

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

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

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

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

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

 总结:

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

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

软件测试面试文档

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

 

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


http://www.ppmy.cn/ops/115861.html

相关文章

Flexus X实例全方位指南:智能迁移、跨云搬迁加速与虚机热变配能力的最佳实践

目录 前言 一、云迁移关键挑战 1、企业实例选型关键挑战 2、云算力关键挑战之一 3、云算力关键挑战之二 二、本地IT及其他云搬迁到Flexus X实例上的独有优势 1、Flexus X实例超强性能&#xff0c;遥遥领先同规格友商实例 &#xff08;1&#xff09;底层多重调优&#x…

分布式数据库管理系统是什么?附应用场景

在当今这个数据驱动的时代&#xff0c;组织面临着数据量爆炸式增长的挑战。随着业务的扩展和用户数量的增加&#xff0c;尤其是在处理大规模数据和高并发请求时&#xff0c;传统的集中式数据库系统逐渐显露出其局限性。如何应对这些数据挑战&#xff0c;分布式数据库管理系统&a…

Android平台Unity3D下如何同时播放多路RTMP|RTSP流?

技术背景 好多开发者&#xff0c;提到希望在Unity的Android头显终端&#xff0c;播放2路以上RTMP或RTSP流&#xff0c;在设备性能一般的情况下&#xff0c;对Unity下的RTMP|RTSP播放器提出了更高的要求。实际上&#xff0c;我们在前几年发布Unity下直播播放模块的时候&#xf…

css边框修饰

一、设置线条样式 通过 border-style 属性设置&#xff0c;可选择的一些属性如下&#xff1a; dotted&#xff1a;点线 dashed&#xff1a;虚线 solid&#xff1a;实线 double&#xff1a;双实线 效果如下&#xff1a; 二、设置边框线宽度 ① 通过 border-width 整体设置…

如何设置显卡驱动以实现深度学习推理的最佳性能

快速解决深度学习推理过程cuda或tensorRT推理速度变慢的办法&#xff0c;记录一下方便自己以后查看。 一、显卡性能设置&#xff1a; 低延时模式——超高、最大帧速度——1000每秒帧数、电源管理模式——最高性能优先 二、管理员权限&#xff08;命令提示符以管理员身份运行…

数据结构(Day15)

一、学习内容 结构体位域 #include <myhead.h>typedef struct {int a:2;short b:1;char c:1; }m1;typedef struct {char a:3;short b:7;int c:10; }m2; int main(int argc, const char *argv[]) {printf("%ld\n",sizeof(m1));printf("%ld\n",sizeof(…

shell脚本定时任务通知到钉钉

shell脚本定时任务通知到钉钉 1、背景 ​ 前两天看了一下定时任务&#xff0c;垃圾清理、日志相关、系统巡检这些&#xff0c;有的服务器运行就有问题&#xff0c;或者不运行&#xff0c;正好最近在做运维标准重制运维手册&#xff0c;顺便把自动化这块优化一下&#xff0c;所…

Flink1.18.1 Standalone模式集群搭建

Flink1.18.1 Standalone模式集群搭建 Flink1.18.1 Standalone模式集群搭建1. 环境准备1.1 Flink下载地址1.2 集群角色分配 2. Flink 集群安装步骤2.1 下载并解压 Flink2.2 解压安装包2.3 配置环境变量2.4 配置 SSH 免密登录 3. 配置 Flink 集群3.1 修改 flink-conf.yaml 配置文…