一 、 什么是接口测试
1)如果想知道接口测试怎么做,首先要明白接口测试是什么?
一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 !
2)接口测试是怎么来测试接口的呢?
接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求,简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”
二、接口测试的好处
1 )发现的bug越低,修复成本越低。
2 )前端随意改,接口测试,后端不用改,前后端两个人开发。
3 )检查系统的安全性和稳定性。前端参数不可信,比如购物网站。前端价格不能传入-1元,但可以通过接口传入-1元。
4 )在系统复杂性不断增加的今天,传统的测试方法成本急剧上升,测试效率大大降低
5 )界面测试相对容易实现自动化和持续集成。与用户界面自动化测试相比,它相对稳定,可以降低人工回归测试的人工成本和时间,缩短测试周期,支持后台快速发布需求到结束。接口的持续集成是低成本高收益的根源。
6 )现在很多系统的前后端架构都是分离的。从安全角度:
仅仅依靠前端进行限制已经不能满足系统的安全要求。后端也需要控制。在这种情况下,需要从接口级别进行验证。
还需要验证前后端传输、日志打印等信息是否经过加密传输,尤其是涉及到用户的私人信息,如身份证、银行卡等。
软件接口测试相关介绍到此结束。软件测试中的每一个细节都是软件质量的关键。因此,需要有足够的专业检测人员。一航软件测试拥有独立的第三方实验室,供专业软件测试工程师使用。全程为您保驾护航。如有任何疑问,可拨打一航软件评测官方电话进行相关咨询,我们将给予最详细的解答。
三、接口测试的原理
讲到这个接口测试的原理的话,我们先要搞清楚,我们去访问客户端跟服务端它之间交互的一个原理是什么?
首先给大家举一个例子,比如我在自己的电脑上,输入www.zhihu .com
在知乎里面我去输入一个(软件测试),这个是我要搜索的一个内容。点击搜索一下,我就得到了相关Python的一些搜索的结果,那么我在执行这么一个过程的时候,那么它做了一个什么样的操作呢?
我们的客户端和服务端,到底有一个什么样的交互跟数据的传递呢?我们用画图的方式来解释一下。(图糙理不糙)
我们在知乎搜索里面是不是输入了一个软件测试,我们把这个输入的Python内容是不是传给了服务端了。
1.通过网络把我在PC电脑端的内容传输到知乎的服务器上面。
2.发送了请求,服务端内部要对我发送的请求进行处理。
3.然后服务端要把检索到的内容传输到我们的PC电脑端(客户端)
4.我们看到的内容都是返回回来的结果,通过浏览器的渲染,展示在你的电脑浏览器上面
那么我们的接口就是把我们上面的操作模拟人工操作一遍。
本来我们发送请求是不是我们人为主动输入,但是我们现在做接口测试就是用工具模拟我们输入请求的一个过程,我们用工具模拟这个请求之后,也会把请求发送到服务端,服务端处理之后,是不是也会把结果返回给客户端。
但是在这里的话呢,因为我们的请求是由我们的工具模拟出来的,那么他返回的这个结果也会由这个工具截取到,那么最终他会显示在哪里呢?他是显示在接口测试的工具里面,而不是显示在你的客户端(PC电脑端)由浏览器展示出来的,所以说你的请求跟你的结果都是由你的接口测试工具模拟出来的。
对于是用工具模拟人工操作这样子的一个过程,这就是接口测试的原理。
四、接口测试测试工具
接口测试需要模拟客户端发送请求获取响应,所以我们就需要一个能够发送请求获取响应的工具,也就是联网工具:
通过工具来进行接口测试
最知名的就是postman,当然还有restclient之类的 。当然也可以用jmeter,jmeter也可以用来做接口性能测试,当然我们也可以通过编写脚本(代码)进行接口测试。
一般我们使用python语言中最流行的联网库requests !
五、如何做好接口测试
接口测试要遵循一些要点:
测试接口的功能实现. 检查不同参数的数据请求时,接口返回的数据与预期结果也就是接口文档的规范的一致性.
测试接口的健壮性(容错性), 比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的能否正常处理.
测试接口参数的边界值. 比如说传递的数据超出了接口规范的规定的范围,或者数据足够大或者为负数时能否正常处理
测试接口的性能, 接口处理和响应数据的时间,并发性等等, 当然这牵扯到代码实现的优化,需要与开发人员沟通
测试接口的安全性.比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面。
六、接口测试流程
1、分析接口文档和需求文档
分析接口文档或者需求文档一般会去找测试点,那么接口测试的测试点我们一般从几种方向去找
· 功能性测试点 · 性能测试点 · 安全性测试点
2、编写接口测试计划
测试计划就是功能测试计划基本一样就是知名的5w1h了
- why——为什么要进行接口测试; 2) what—测试接口包括哪些; 3) when—测试接口不同阶段的起止时间; 4) where—相应接口文档,接口缺陷的存放位置,测试环境等; 5) who—项目有关人员组成,哪些接口分配给哪些人; 6) how—使用哪些测试工具以及测试方法进行测试。
3、编写接口测试用例
测试用例就是根据具体的哪个接口来编写,一般会分为单接口和多接口两种场景来编写测试用例
- 单接口场景的测试
正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:
所有必填参数
全部参数(必填参数+选填参数)
参数组合(必填参数+某些选填参数)
反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
异常的参数:不传参数,少传参数,多传参数,传递错误的参数
异常的业务数据:结合业务功能考虑输出的各种异常返回情况
- 多接口场景的测试
业务场景功能测试(站在用户角度考虑常用的使用场景)
多业务场景功能测试主要是测试接口之间数据依赖
4、接口测试执行
根据设计的测试用例就可以执行测试用例当然执行的方式有几种
1) 使用postman之类的工具,一个一个进行测试,这种方式我们叫做手工测试
2) 使用jmeter之类的有自动化功能方式进行测试,这种叫做工具自动化测试
3 )我们可以自己编写测试脚本,使用测试脚本自动加载测试,这种就是自动化测试了
5 )生成接口测试报告。
测试完成了以后就可以生成测试报告了
接口测试流程