接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢?主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目,这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问!
HTTP,HTTPS协议
什么是DNS
DNS是域名系统,DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。
HTTP协议
HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接的应用层协议。由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。
怎么抓取HTTPS协议
说出请求接口中常见的返回状态码
xx--信息提示
xx--成功
xx--重定向
xx--客户端错误
xx--服务器错误
常见的返回码有:
00OK-[GET]:服务器成功返回用户请求的数据
01CREATED-[POST/PUT/PATCH]:用户新建或修改数据成功
02Aceepted-[*]:表示一个请求已经进入后台排队
04NOCONTENT-[DELETE]:用户删除数据成功
00INVALIDREQUEST-[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
01Unauthorized-[*]:表示用户没有权限
03Forbidden-[*]:表示用户得到授权,但是访问被禁止
04NOTFOUND-[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的
06NotAcceptable-[GET]:用户请求的格式不可得。
10Gone-[GET]:用户请求的资源被永久删除,且不会再得到的。
22Unprocesableentity-[POST/PUT/PATCH]当创建一个对象时,发生一个验证错误。
00INTERNALSERVERERROR-[*]:服务器发生错误,用户将无法判断发出的请求是否成功。
HTTP协议请求方式
HTTP协议常用的请求方式有如下几种:
HTTP和HTTPS协议区别
安全性安全性低——明文传输、易受攻击,无法确认双方身份,也无法确保数据的完整性安全性高——使用ssl加密传输协议,信息是密文,可以认证双方的身份,防止信息被截取篡改默认TCP端口80端口443端口灵活度或技术门槛简单快速,使用很灵活技术门槛:多数个人或私人网站难以支撑速度协议简单,HTTP服务器的程序规模小,因而通信速度很快加重服务端的负担,需要资源来支撑,降低用户的访问速度费用没有额外的费用CA机构颁发的证书都是需要年费的
HTTP和HTTPS实现机有什么不同
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是44
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
POST和GET的区别
POST和GET都是向服务器提交数据,并且都会从服务器获取数据。
区别:
传送方式:get通过地址栏传输,post通过报文传输
传送长度:get参数有长度限制,而post无限制
GET产生一个TCP数据包,POST产生两个TCP数据包
get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留
在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式
HTTP请求报文与响应报文格式
请求报文:一个HTTP请求报文由请求行、请求头、空行(BlankLin和请求体4个部分组成。
响应报文:HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。
什么是HTTP协议无状态协议?怎么解决HTTP协议无状态协议
是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送HTTP请求之后,服务器根据请求,会给我们发送数据过来,发送完,不会记录任何信息。
解决方案:通过cookie和session来保持状态。
常见的POST提交数据方式
请求body;请求url+请求body:
application/x-www-form-urlencoded:表单提交--键值对,form
multipart/form-data:文件上传---文件,MIME
HTTP协议学了哪几个版本
http协议目前有4个版本(0.9,0,1,0),其中0、1版本在互联网上被广泛使用,0版本目前应用很少,是下一代的http协议。
存储位置不同:Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;
存储容量不同:单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;
存取方式不同:Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;
隐私策略/安全性不同:Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;
有效期不同:Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,CookieJSESSIONID的过期时间默认为-只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;
服务器压力不同:Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;
浏览器支持不同:如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;
Cookie和Session应用的场景:Cookie一般用于记住用户的登录状态,如记录用户的习惯,购物车;而Session用于登录验证。
HTTPS在哪一层,会话层在第几层
https在应用层。
会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。
浏览器输入url按回车背后经历了哪些?
在浏览器中输入URL并回车后,主要发生以下步骤:
解析URL,获取要访问的域名
DNS域名解析,根据访问的域名获得目标服务器的IP地址
浏览器与服务端三次握手建立TCP连接
连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文
断开TCP链接
浏览器解析响应报文,渲染页面
TCP,UDP协议
TCP/UDP协议的区别,TCP如何保证正确,微信基于什么协议,QQ基于什么协议,为什么?你熟悉OSI协议吗?原理是什么
接口用例设计
怎么设计接口测试用例?HTTPS测试点从HTTP变化到HTTPS协议,测试点购物车模块,加入购物车接口测试点分析http://...?orderId=,**,接口设计用例设计接口测试用例时,涉及的是电商系统,其中包括很多修改,如商品.商家、店铺等等,针对这些数据的修改,会涉及到很多参数。如商品的名称,商品的尺码,商品的顔色等等。那在设计实现'修改'接口时,如何确定要传什么参数?是只需要传我要修改的参数,还是全部参数都要传?上传文件测试点根据以下界面设计测试用例
一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成功
接口测试
为什么要做接口测试你平常做接口测试的过程中发现过哪些BUG平常你是怎么测试接口的平常用什么工具测接口的没有接口文档,如果做接口测试接口测试的流程常用什么接口测试工具,说一个你在工作中具体怎么做接口测试的实例不可逆的操作,如何处理,比如删除一个订单这种接口如何测试接口产生的垃圾数据如何清理测试的数据你放在哪你们数字签名怎么实现的当一个接口出现异常时候,你是如何分析异常的你们怎么做的参数化如何进行数据清洗如何进行数据检验response怎么验证,参数特别多做接口测试如何分析是前端还是后端的问题在测试接口中怎么知道请求成功还是失败如何模拟弱网测试异步接口怎么测试接口的加密测试中对称加密与非对称加密有什么区别?如何开展测试?请详解请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?目前接口文档是由word格式管理,因迭代快,产生很多文裆,分不清哪些是不用的接口,哪些是正在用的接口,哪些是更新后的接口,文裆杂乱.另外因是word格式管理,不方便询问,如何管理?每次查看接口文档需要下载多个word,不能避免下载操作查看,效率不高,如何提高工作效率?
接口依赖
很多接口都需要登录怎么处理?依赖于登录的接口如何处理-token和session的管理在手工接口测试或自动化接口测试的过程中,上下游接口有数据依赖如何处理?依赖于第三方数据的接口如何进行测试接口测试中依赖登录状态的接口如何测试如果两个请求有严格的先后顺序,需要测试调转顺序的情况下个接口请求参数依赖上个接口的返回数据
HTTP接口测试和WebService接口测试区别是什么?WebService接口是如何测试的
接口框架
接口测试框架怎么搭建的?你有没有做过框架稳定性优化相关的工作?持续集成怎么做的?
Mock怎么使用你们Mock是怎么做的
rpc接口怎么测试什么是RPC接口,用Http设计一个RPC接口你有没有自己实现过rpc框架
性能
JMeter怎么存储变量,让下一个接口使用如何进行接口压测JMeter执行10次JMeter获取上一个request的结果JMeter完成一个用例做接口测试当请求参数多时tps下降明显,此接口根据参数从redis中获取数据,每个参数与redfs交互一次,当一组参数是tps5133,五组参数是tps1l69,多次交互影响了处理性能,请详细描述如何改进增进效果的方案
高能部分
TCP报头格式UDP报头格式TCP/UDP区别HTTP状态码HTTP协议OSI协议、TCP/IP协议以及每层对应的协议Session机制、Cookie机制TCP三次握手、四次挥手。打开网页到页面显示之间的过程。http和https区别,https在请求时额外的过程,https是如何保证数据安全的IP地址子网划分POST和GET区别DNS解析过程TCP如何保证数据的可靠传输的地址解析协议ARP交换机和路由器的区别HTTP0、thriftAPI接口与SDI接口的区别dubbo如何一条链接并发多个调用。Dubbo的原理,序列化相关问题你怎么理解http协议说说http协议的工作流程http有哪些请求提交方式http中的200,302,403,404,500,503都代表什么状态什么是web缓存?有什么优点你怎么理解cookie和session,有哪些不同点什么是https,说说https的工作原理什么是http代理服务器,有什么用什么是分布式系统分布式系统你会考虑哪些方面讲讲CAP理念怎么理解强一致性、单调一致性和最终一致性分布式系统设计你会考虑哪些策略讲一讲TCP协议的三次握手和四次挥手流程讲一讲TCP协议的三次握手和四次挥手流程为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接为什么TCPTIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态什么是DoS、DDoS、DRDoS攻击?如何防御为什么说TCP/IP协议是不可靠的OSI有哪七层模型?TCP/IP是哪四层模型
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点