面试题:你们公司的接口测试流程是怎样的?
接口测试我们是在XX项目做的,主要有XX接口,XX接口,XX接口等。
1、首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。
2、然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:
首先新建一个线程组。
然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口);
再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)
然后创建断言和查看结果树。
最后调试并执行用例,最后编写接口测试报告
其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等。
面试题:请简述一下cookie、session以及token的区别?
cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie
面试题:接口测试如何设计测试用例?(必问)
接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!
接口测试设计测试用例的思路如下:
接口业务逻辑测试?(正例)
接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值;
是否正确的测试,也就是测试对外提供的接口服务是否正常工作。
模块接口测试?(反例)
模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。
模块接口测试的主要包括以下几个方:
鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
其他参数异常。
必填项检查:
参数的长度、类型、格式异常:
常规参数:(数字、字符串、日期)
参数长度:6-18位。或身份证、电话的长度。
参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。
日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。
错误码异常覆盖。
接口测试其他的关注点
接口有翻页时,页码与页数的异常值测试
数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致
接口返回的图片地址能否打开,图片尺寸是否符合需求;
当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求;
所有列表页接口必须考虑排序值;
所有功能都要考虑兼容旧版本;
面试题:接口测试执行中比对数据库吗?
肯定啊,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查!
面试题:响应状态码有哪些?
1xx:指示信息–表示请求已接受,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
面试题:在接口测试过程中发现的bug多不多?能举几个例子吗?
这个问题其实回到起来很简单,只要做过接口测试的,总能发现几个BUG吧,把你平常发现的bug说2-3个就可以了。
面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历都是写的假的(你要不写估计面试机会都没有,没办法,为了生存,能理解)
比如,提现输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。(假设服务端没做提现金额数据判断) 余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了。
面试题:接口测试中有哪些要注意的测试点?
接口中返回了图片地址,要手工去进行图片的测试(大小、内容);
接口完成查询功能的时候,数据返回的排序显示;
接口测试的时候,关注参数的默认值、必填项;
面试题:接口执行测试后返回结果做对比,一般比对哪部分内容?
之前必须要对比的就是返回状态码,其次再去对比返回其它关键内容
面试题:之前用过抓包工具没有?如何使用的?
之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取。
打开fiddler之后,默认浏览器配置了127.0.0.1 8888端口的代理,在fiddler设置好过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包。
面试题:在项目中如何用jmeter进行接口测试?
把线程组数量设置为1,循环次数设置为1;
配置好全局变量URL通过配置元件—用户自定义的变量添加;
增加配置元件http请求默认值,放置在用户定义的变量之后;
添加事务控制器管理和组织测试用例;
在事务控制中添加http请求添加测试用例中的接口请求信息;
添加对应的断言元件进行断言;
面试题:jmeter中如何设置断言?
右击请求—断言—响应断言—响应断言界面输入要检查比对的项,设置好断言后,执行接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如果接口返回的数据是json数据,也可以添加json断言
面试题:jmeter中如何实现关联?
先从上一个接口中通过正则表达式提取器或jsonpath解析器截取下一个接口需要的参数值保存到变量,然后在写一个接口中通过${变量名}去获取
面试题:jmeter参数化的方式有哪几种可以实现?
配置元件—用户定义的变量元件可以设置全局变量;
函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化;
可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可;
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
不要让过去的失败扼住你的前进之路,因为每一次努力都是机会的温床。用信心和勇气书写自己的奋斗篇章,跨越困境,追逐梦想。
不要畏惧挑战,因为逆境中培养出的力量是无法估量的。莫贪图安逸,放手去追逐心中的梦想,用汗水浇灌希望。相信自己的实力与坚持,勇往直前,创造属于自己的辉煌人生,让生命绽放绚丽光芒。
在坎坷的道路上,不要退缩,要坚持奋斗。即使遇到挫折和磨难,也要保持信心与勇气。相信自己的能力与潜力,勇往直前,铸就属于自己的辉煌人生,创造不朽的传奇,绽放人生的华章。