接口测试面试题

1、HTTP与HTTPS区别
http是超文本传输协议,明文 传输;https是http+ssl构建的加密传输协议;http默认80端口,https默认443端口

2、常见的Post提交数据的方式有哪些?
主要有四种方式:四种方式取决于Content-Type请求头:
Content-Type:application/x-www-form-urlencoded 特点:数据报文是键值对,相当于通过表单方式去提交数据,数据的格式:a=1&b=2&c=3
Content-Type:multipart/form-data 特点:报文包含文件上传
Content-Type:application/json(text/plain, text/xml...) 特点:报文都是字符串类型
Content-Type:binary 特点:报文类型是以二进制的方式上传文件

3、常见请求头以及它们的作用?
Accept:客户端接收的数据格式
X-Requested-With:异步请求, ajax异步请求,无刷新
User-Agent:发送请求的客户端的类型
Content-Type:请求的内容的报文格式
Cookie:Cookie信息

4、get和post的区别?
get和post都可以向服务器提交数据,且都会从服务器获取数据
区别:
(1)传递参数的方式不同:get通过地址栏传参,post通过表单报文传参。post比get安全
(2)传参的长度不同:get的参数有长度限制,Post没有
(3)一般情况下,get是获取数据,比如查询;post是提交数据,比如增、删、改
(4)get只发送一个tcp数据报文(包含请求头和data),post发送两个报文(a.请求头,返回100 b.data,返回200)

5、你们公司是如何做接口测试的?(包括接口测试流程、方案以及用例设计)
(1)获取接口文档,熟悉单接口以及链路接口(接口业务流程)的业务,包括接口地址、鉴权方式、入参、出参、错误码等;
(2)编写接口测试用例并评审
正例(1-2个):单接口返回成功场景;链路接口逻辑实现(功能业务流程)
反例:
鉴权异常:空,错误,过期...
参数异常:空,类型异常,长度异常...
错误码异常:
其他异常:接口黑名单,接口调用次数限制,分页(少于0,0,中间页,最大页,超过最大嶚等)
(3)使用接口测试工具或代码的方式执行接口测试
重要考虑以下情况:
接口关联,接口参数加密,是否动态参数,接口参数是否签名,是否需要带请求头
(4)实现持续集成并输出接口测试报告,有bug提bug

6、没有接口文档,如何做接口测试?
方式一:通过Fiddler、Charles抓包工具抓取接口数据后整理成接口文档,如果有不清楚的字段,再找开发验证,然后再进行接口测试
方式二:通过JMeter的代理录制功能,把接口请求录制下来形成接口文档,然后再逐一进行接口测试

7、Cookie、Session、token有什么相同点和不同点
相同点:都是用于鉴权并且都是服务器生成的
不同点:
cookie保存在客户端的浏览器上,是不安全的,可以去分析存放在本地的cookie进行cookie欺骗
session保存在服务器的内存,默认保存30分钟,比cookie安全;缺点是当登录的用户越多,越占用服务器资源。session一般会生成一个sessionid(名称自定义),sessionid可以通过cookie传输;
token通常存储在服务器的数据库中,通过一个接口或通过登录获取,后续所有接口都必须传token才能请求成功。token也可以通过cookie传输

8、接口测试中,依赖登录状态的接口如何测试?
依赖登录的接口本质上是每次发送请求的时候需求带上cookie和session才能发送成功。在请求时需要添加cookie和sessionid。如果是用Postman测试,Postman会自动去管理;如果是通过JMeter,需要增加Cookie管理器组件。如果通过代码来实现接口测试,需要生成session对象,然后通过session对象来发送请求。

9、接口请求常见返回状态码
1XX 信息提示
2XX 成功
3XX 重定向(发送一个请求时,这个请求多次请求了服务器的多个资源)
4XX 客户端错
5XX 服务器错误

10、平常做接口测试的过程中发现过哪些bug?
常规bug:接口没实现,没有按接口文档返回结果,输入异常值(空值、特殊字符、类型异常等),接口报错,没有返回合理的错误提示
如:购买商品接口,价格参数,测试时把价格改成-3,购买成功;
如:修改商品信息接口,接口文档要求只有商家和超级管理员有权限修改,传入普通用户ID,修改成功;

11、接口测试中怎么校验结果是否正确?
状态码校验,状态码200;
业务校验:
(1)接口文档中的错误码,一般为0
(2)当响应报文比较短,比较固定的情况下,校验完全一致
(3)当响应报文比较长,比较多的情况下,校验包含最核心的业务信息
(4)当响应报文为非常复杂的多层级的XML或JSON格式,通过xpath,JSONpath,正则表达式的匹配方式获取到最关键字的业务节点,再校验
(5)查询数据库校验或者是通过其他接口校验

12、分析bug是前端问题还是后端问题?
抓包,查看请求报文,如果请求报文对比接口文档有问题,就是前端问题;
如果请求报文没有问题,那不看返回报文,返回数据不对,就是后端问题。如果返回数据正确,就是前端问题。

13、依赖于第三方数据的接口如何测试?
可以通过Postman搭建Mock服务,但是有访问次数限制,一天只能访问1000次。也可以通过java的Servlet或Python的Flask等技术来实现接口Mock服务

14、对于加密接口,签名接口如何测试?
加密接口:
常见加密方式:
对称式加密方式(私钥加密):常用Base64,不常用DES、AES
非对称加密试(双钥加密):RSA
由一个秘钥密码生成公钥和私钥,公钥加密,私钥解密;私钥加密,公钥解密;
只加密不解密:MD5、SHA1、SHA3...
自定义加密规则,混合加密;

了解加密(签名)规则 之后,在请求接口前对参数做对应的加密(签名)之后再发送请求。单一加密方式postman和JMeter有些是支持的,postman使用javascript脚本实现,JMeter使用beanshell中的Java代码实现

JMeter

分模块测试:测试片段
用户自定义变量
多组数据测试:csv文件读取数据+循环控制器

结果判定:
响应断言
JSON断言(最常用)

接口依赖处理:
JSON提取器,将前一个接口数据作为变量

命令执行,生成测试报告


image.png

jmeter -n -t [jmx fille] -l [results file] -e -o [Path to web report folder]

-n 不启动UI界面
-t 指定Jmx文件
-l 指定测试数据
-e -o 指定测试报告位置

JMeter怎么做接口测试,如何测试接口的关联
流程:根据开发提供的接口文档来编写测试用例,根据用例使用jmeter来进行测试,需要添加线程组、http请求,在Http请求中设置好地址、参数以及要添加的请求头信息,之后添加查看结果树查看响应结果,对比预期结果是否一致,同时检查数据库来检测测试是否通过。
涉及到批量测试会csv配置元件来进行批量测试
接口关联使用Jmeter的后置处理器,主要是json提取器、正则表达式提取器,比如token,会把token赋值给一个变量,在下一个接口时调用这个变量就可以了

1、性能测试流程
(1)需求调研:做需求调研和分析,产出性能测试需求表、性能测试计划表
(2)测试准备:构建测试模型,设计测试方案,压测环境、数据准备、脚本开发,产出测试用例、测试方案
(3)测试执行:记录执行过程和结果,对结果做分析,产出性能测试日志
(4)测试报告:发现的性能瓶颈,性能测试结论(是否达标)
(5)测试总结:总结和复盘

2、性能测试一般关注哪些指标
TPS:每秒事务数,越高性能越好
平均响应时间:响应时间越短性能越好
并发数
错误率

3、服务器监测看哪些指标
CPU使用率:最关键的指标,一般不超过80%的阈值,超过80%认为cpu快到瓶颈
内存使用率:内存不够会导致程序崩溃、死机等现象,一般不超过80%
网络,上行流量与下行流量,通过监控服务器网上行下行流量有没有达到上限。
磁盘:包括磁盘的读与写。重要指标为磁盘繁忙度,超过90%代表磁盘快不行了

4、JMeter如何找出接口最大并发数
设计阶梯场景,使用JMeter中的阶梯线程组,每隔一段时间增加固定量的并发用户数,然后通过监听器或者监控平台查看运行结果,并分析结果判断是否达到性能瓶颈,从而断定是否达到了最大并发用户数的区间,然后再取这个区间来缩小固定步长,从而获得最大并发用户数

5、内存溢出与内存泄露
内存溢出就是所运行的软件所占用的内存远远超出了主机内安装的内存所承受的大小
内存泄露指程序在申请内存之后无法释放。如果一直内泄露就会造成内存溢出

单独负责项目需要注意哪些事项
(1)评估项目的测试范围和测试周期
(2)做好测试策略和计划安排,尽量保证每个环节按时完成
(3)如果自己解决不了的问题,要及时向外抛出,暴露风险,寻求帮助
(4)尽量采用一些技术手段,提升测试效率
(5)对用例设置好优先级,按优先级执行
(6)及时对bug进行跟踪,推动开发及时修复bug
(7)把控好上线标准,测试报告中标明上线风险

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容