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

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

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

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

接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值

是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

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

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

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

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

2)其他参数异常。

1、必填项检查

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

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

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

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

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

3)错误码异常覆盖。

4)接口测试其他的关注点

接口有翻页时,页码与页数的异常值测试

数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致

接口返回的图片地址能否打开,图片尺寸是否符合需求

当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。

所有列表页接口必须考虑排序值

所有功能都要考虑兼容旧版本

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

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

1)传送方式:get通过地址栏传输,post通过报文传输

2)传送长度:get参数有长度限制(受限于url长度),而post无限制

3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)

4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

三、常见的POST提交数据方式

答:主要有四种方式:application/x-www-form-urlencoded、multipart/form-data、application/json、text/xml等。

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

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

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

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

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

postman或jmeter(5.1)

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

1) 编写好用例

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

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

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

http和https协议的

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

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

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

八、jmeter中如何实现关联?

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

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

接口测试我们是在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的值等。

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

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

十一、响应状态码有哪些?

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

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

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

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

十二、什么是DNS?

DNS 是域名系统 (Domain Name System),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

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

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

十四、你做接口测试,测什么?

可用性测试

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

接口功能是否正确实现;

返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;

参数值边界值、等价类测试;

错误和异常处理测试

输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;

输入错误的参数,接口能正确处理,并按预期响应;

多输入、少输入参数,接口能正确处理,且按预期响应;

错误传输数据格式(如json格式写成form格式)测试;

安全性测试,主要指传输数据的安全性:

敏感数据(如密码、秘钥)等是否加密传输;

返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;

接口是否对传入的数据做安全校验,如身份ID加token类似校验;

接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);

性能测试,如接口的响应时间、并发处理能力、压测处理情况:

并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);

接口响应时长在用户可忍受的范围内;

对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

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

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

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

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

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

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

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

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

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

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

十七、平常用什么工具测接口的?

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

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

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

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

cookie数据存放在客户的浏览器上,session数据放在服务器上

cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie

可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

二十、谈谈你对HTTP协议的了解?

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

二十一、什么是Http协议无状态协议?怎么解决HTTP协议无状态协议

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。

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

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

二十三、为什么开展接口测试?

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

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

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

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

二十五、依赖于第三方数据的接口如何进行测试?

mock

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

二十六、接口测试中,依赖登录状态的接口如何测试?

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

二十七、postman中设置环境变量有什么用?

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

二十八、如何模拟弱网做测试?

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

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

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

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

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

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

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

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

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

三十一、Newman如何执行postman脚本?

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

三十二、jmeter中如何设置断言?

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

还有超级详细的视频讲解

春招必看已上岸,软件测试常问面试题【全网最详细,让你不再踩坑】

兄弟们,你们最想要的接口测试面试题来啦!!!!相关推荐

  1. 兄弟,你也不想有人知道你访问了xxHub吧?

    前几天,我参加了一场高校研究生毕业论文开题答辩,看到了一个检测tor的题目,今天就跟大家聊聊这个. 问大家一个问题:如果你访问了某个网站,又不想让人知道怎么办? 你可能会说,把浏览器浏览历史记录清除, ...

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

    一.前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性.接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试 ...

  3. 关于接口测试--面试题

    前言 接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性.接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的, ...

  4. 还不快到碗里来?软件测试接口测试面试题(大全)

    目录:导读 前言 一.为什么要做接口测试? 二.接口测试能发现哪些问题 面试题1:你平常做接口测试的过程中发现过哪些bug? 二.接口测试怎么测 面试题2:平常你是怎么测试接口的? 三.用什么工具测 ...

  5. 2022年接口测试面试题大全

    目录 一. 说明三次握手 二. 一次完整的HTTP请求 三. 响应状态码有哪些 四. 什么是COOKIE,SESSION,TOKEN?以及具体流程? 五. HTTP和HTTPS的区别? 六. HTTP ...

  6. 接口测试面试题汇总(含答案)

    目录 1.什么是接口? 2.接口组成的要素是什么? 3.你对requests了解多少 4.如何使用requests 5.requests.get作用 6.requests.get语法形式 7.requ ...

  7. 常见的接口测试面试题

    1.按你的理解,软件接口是什么? 答: 就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数. 2.HTTP和HTTPS协议区别? 答: https协议需要到CA(Certifica ...

  8. 接口测试面试题及参考答案,就等你来看~

    你们公司的接口测试流程是? 接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等. 1.首先是从开发那里拿到API接口文档,了解接口业务.包括接口地址.请求方式,入参.出参,token鉴 ...

  9. 接口测试面试题<一>

    1.HTTP和HTTPS协议区别? 答:https协议需要到CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用: http是超文本传输协议,信 ...

最新文章

  1. php开发的程序怎么用加密狗加密,C# 简单的程序绑定、加密(类似加密狗)
  2. 【Shell】fix 1032报错信息的脚本
  3. Smali源代码分析教程(转)
  4. python使用内置方法和修饰器方法获取类名、函数名
  5. lombok常用注解整理
  6. JVM调优系列:(二)JVM运行时数据区域
  7. 各自然带代表植被_植被垂直带谱?水与热之间的较量。
  8. retrofit 2.0 android 教程,初识Retrofit2.0
  9. Ui学习笔记---EasyUI的使用方法,EasyLoader组件使用
  10. Caffe傻瓜系列(1):数据层及参数
  11. codeforces 27 E. Number With The Given Amount Of Divisors(数论+dfs)
  12. xps文件的查看及转换
  13. 计算机基础知识点总结
  14. mingw编译CMake后的OpenCV文件时出现:mingw32-make : 无法将“mingw32-make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  15. 基于被动微波遥感和MODIS产品的天山雪水当量降尺度研究_赵文宇学习笔记
  16. python中pyecharts 柱状图 折线图混用_pyecharts折线图和柱状图
  17. 简单的Android 红外线遥控
  18. 华为鸿蒙替换,替换安卓!华为鸿蒙OS旗舰来了
  19. Oracle 层级数据计算方式start with connect by
  20. 手机怎么把证件照缩小到100k以下?手机照片如何压缩变小?

热门文章

  1. 检查json 或 yaml 文件格式
  2. 微信小程序——WXS 模块
  3. 最新手机号码验证正则表达式
  4. Remmina访问树莓派
  5. 面试问题(java cas有什么优点和问题)
  6. 做项目没人脉怎么办,如何扩展人脉
  7. 【论文阅读】2023 MTS-Mixers
  8. 【阅读笔记】《拖延心理学》(简・博克)
  9. python 导入离线地图_Python绘制数据地图可以应用与各种场景,只需要更改数据就行。...
  10. 初中基础学java_初中生也能学JAVA吗?