你问我答,这样的学习方式你喜欢吗
Posted 软件测试自动化测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你问我答,这样的学习方式你喜欢吗相关的知识,希望对你有一定的参考价值。
前言
1、接口是什么
在各大招聘网站上,你可能看到要求测试人员做过接口测试;一般而言,对于软件测试人员 ,最常用的接口测试,指的是http/https接口。
2、为什么做接口测试:
请看下图:
接口测试的是前后端的数据交互,粒子性好
具体优点如下:
* 接口测试,相对功能测试来说,收益更高
* 接口测试更容易自动化
* 接口测试的工作量远少于功能测试
* 接口测试问题定位的更准确
接下来手把手教你学会软件测试面试常见的问题
接口测试
1、列举-些最常用的HTTP方法?
GET: 从服务器检索数据
POST:将数据添加到服务器中的现有文件或资源
PUT:它允许您替换服务器中的现有文件或资源
DELETE:它允许您从服务器中删除数据
PATCH:用于对资源进行部分修改
选项:用于描述目标资源的通信选项
HEAD:它要求响应与GET请求相同,但没有响应正文
2、UI测试与接口测试有何不同?
UI (用户界面)测试是测试应用程序的图形界面部分。
它的主要重点是测试应用程序的外观和感觉。
接口测试支持两个不同软件系统之间的通信。
它的主要重点是应用程序.的业务层。
3、接口测试面临的主要挑战是什么?
当的参数及其组合
正确分类参数
顺序
验证输出
由于缺少GUI,提供输入值较困难
4、接口测试中究竟需要验证哪些内容?
数据准确性
HTTP或其他协议状态代码
响应时间
API返回任何错误时的错误代码
授权检查
非功能测试,如性能测试,安全测试
5、接口测试有哪些优势?
更快及更高的测试覆盖率。
API测试有助于我们降低测试成本。
通过API测试,我们可以在GUI测试之前找到小错误。
在GUI测试期间,这些小错误将变得更大。
因此,在API测试中发现这些错误将对公司具有成本效益。
API测试与语言无关。
API测试在测试核心功能方面非常有用。
我们可以在没有用户界面的情况~下测试API。
在GUI测试中,我们需要等到应用程序可用于测试核心功能。
API测试有助于我们降低风险。
6、接口常见测试有哪些?
我们在API.上执行的一些常见测试如下。
验证不同输入条件的返回。
验证不同数据结构
验证API是否触发其他事件或请求其他API
在没有返回值时验证API的行为
7、接口测试中,依赖登录状态的接口如何测试?
依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie
8、依赖第三方数据的接口如何进行测试?
可以使用SoapUlI等工具直接调用第三方数据接口的.webservice,通过返回值来查看第三方数据的接口是否调用正常也可以利用一些MOCK的工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖
9、在手工接口测试或者自动化接口测试过程中,上下游接口有数据依赖如何处理?
在工具中可以使用全局变量等方式将需要的数据进行传送
10、如何分析是前段还是后端的问题
(1)检查接口,前端和后台之间是通过接口文件相互联系
的,需要查看接口文件
(2)检查请求的数据是什么,反馈的数据又是什么
(3)根据接口文件,检查数据是否正确。如果发送的数据
是正确的,但是后台反馈的数据是不符合需求的,那就是
后台的问题;如果前端没有请求接口或请求的时候发送数
据与需求不符,那这个时候就是前端的问题了。
(先抓包看请求报文,对着接口文档,看请求报文有没问
题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那
就是后端开发的问题)
11、怎么设计接口测试用例
通常,设计接口测试用例需要考虑以下几个方面:
(1)是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token
逆向用例:针对是否满足前置条件(假设为n个条件), 设计0~ n条用例
(2)是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条用例
(3)业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和逆向用例
(4)参数是否必填
逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例
(5)参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
(6)参数数据类型限制
逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例
(7)参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例
12、请问你们公司是如何做接口测试的?
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。 .
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判.定..)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用肛具或者自写代码来验证。
⑧发现问题跟功能测试- -样, 该报bug报bug, 该跟踪状态的跟踪状态。
13、什么是DNS?
DNS是域名系统(Domain Name System), DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。
14、请求接口中常见的返回状态码
1xx--信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
2xx--成功(表明服务器成功地接受了客户端请求)
3xx -重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx--客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
5xx --服务器错误(服务器由于遇到错误而不能完成该请求)常见的返回码有:
●200 OK- [GET]: 服务器成功返回用户请求的数据
●201 CREATED - [POST/PUT/PATCH]: 用户新建或修改数据成功
●202 Aceepted- [*]: 示-个请求已经进入后台排队(异步任务)
●204 NO CONTENT - [DELETE]: 用户删除数据成功
●400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
●401 Unauthorized -[*]: 表示用户没有权限(令牌、用户名、密码错误)
●403 Forbidden-[*] :表示用户得到授权(与401错误相对),但是访问被禁止
●404 NOT FOUND -[*]: 用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的
●406 Not Acceptable - [GET]: 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
●500 INTERNAL SERVER ERROR- [*]:服务器发生错误,用户将无法判断发出的请求是否成功
15、常见的POST提交数据方式
主要有四种方式: application/x-www-form-urlencoded、 multipart/form-data、 application/json.
text/xml等
结语
如果你身边有正在面试的朋友或者刚毕业的大学的朋友,建议转发这篇文章给他们看看,走少走些弯路,别等到大学读完了连去当实习生别人都不要你。
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。。
以上是关于你问我答,这样的学习方式你喜欢吗的主要内容,如果未能解决你的问题,请参考以下文章
Android App实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)