接口测试 我这样看
Posted Spiritual space on the net cul
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试 我这样看相关的知识,希望对你有一定的参考价值。
测试工作中你是否常常有这样的疑虑:
1.什么是接口,接口到底长啥样?
2.什么时候进行接口测试?
3.接口文档是什么样的?
4.接口测试的正确姿势是什么样的?
什么时候展开接口测试?
1.项目处于开发阶段,前后端联调接口是否请求成功
2.有接口文档,开发已完成联调,功能测试展开之前
3.专项测试:如测流量大小、查看图片压缩大小、测试接口请求响应时间
4.版本上线前,进入整体回归测试,查看接口是否有异常
5.版本功能文档后,接口自动化
什么是接口?
接口测试:按照接口文档的要求,验证接口程序是否满足对外部程序提供数据的使用需求。
接口是可以交换数据和信息的,我们常说的接口是指对外部提供数据交换的程序,以此来实现不同系统模块和不同系统之间的数据交换。
接口测试的分类
1.模块接口测试(可划分到白盒测试中):如订单模块下单时,需要去用户资金模块查询余额等
2.Web接口测试,有可分为以下两类
2.1.系统对外部系统提供的接口:如第三方登录
2.2.内部子系统的服务之间的接口(服务器接口):是测试浏览器与服务器的接口
我们知道web开发一般分前端和后端,前端开发人员用html/CSS/javascript等技术。后端开发人用php/JAVA/Python/Ruby等各种语言。
用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过HTTP协议的GET与POST请求来实现前后端的数据传递。
常见的协议:
计算机内部传输都是二进制数,那么数据传输过程中,获取多少数据,传到哪里,同时通过协议来定义的,协议就相当于制定内部传输规则
-
tcp/ip 协议
-
http/https、websocket、json、xml
-
webservice(soap/wsdl)、restservice、xmpp、自定义协议
-
hession、dubbo
网络传输:
-
文本:http、https、webservice、json
-
二进制:thrift、protobuf、hession
接口测试的意义
1、保证系统的稳定性:
一个系统的服务端越接近底层,对系统的影响就越大,甚至有可能牵一发而动全身,服务端的一个缺陷可能会引起客户端的几个甚至十几个缺陷,更可怕的是服务端的缺陷有可能引起系统的崩溃,这对整个系统来说,损失将是不可估量的,因此服务端接口的质量将直接影响到系统的正确和稳定。
然而,在实际的开发过程中,开发人员并没有充足的时间编写单元测试,并且他们往往对自己编写的代码有足够的信心,不愿意将时间“浪费”在编写单元测试身上。这个时候接口测试就肩负着重要的作用。
2、将bug控制在项目前期:
就笔者所做的微信活动而言,后端系统比较成熟,对于前端开发来说,每个活动都有很大不同。这就导致后端接口开发只需要一天就可完成,而前端开发的工作量至少需要两、三天。而在这个空当期就可以充分的对接口进行测试,从而尽早的发现系统bug;减少功能测试的工作量,缩短产品的发布周期。
3、检查服务器的异常处理能力:
我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面时行测试,就很难发现一些安全的问题。不以前功能为入口的接口测试就会发挥出它的作用。
接口测试的用例设计流程
1.明确出发点
2.选择好测试的对象
3.确认完整的测试对象的功能
可从以下情况考虑:
针对查询的接口要与数据库进行数据核对,检查数据的准确性
工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
接口测试用例设计思路
主要为三个方面
1、输入参数
输入参数的校验:必填校验,长度校验,参数的有效性校验(如身份证,手机号码的等),参数的组合校验(不同的参数组合可能会存在不同的业务场景)
2、接口业务逻辑
设计方法是分支覆盖---路径覆盖----场景覆盖,主要还是需要结合实际的业务场景,根本不会发生的业务场景就是无效的测试用例。
为避免遗漏可以将业务流程图先画出来,依据流程图分别涉及不同的分支不同的场景,考虑:接口超时,接口异常,接口请求成功或失败,成功后怎么处理,失败后怎么继续执行等等
3、输出
输出结果包括正常的输出,异常的输出,常用的方法是错误推断法,列举出程序中可能存在的错误或者异常,根据他们选择测试用例
接口测试文档
包括URL,调用方式,传入参数,返回值,状态码等
每一个状态码要有一条用例
测试步骤:
从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。
如果当前项目没有接口文档,则可以使用fiddler对APP或者web进行抓包确认。
然后就是使用JMeter创建线程组,添加http请求,增加请求参数请求URL等,通过修改参数信息等等操作,查看请求的响应数据。
PS:
1、什么是接口测试?
2、接口的分类
3、接口测试工具
4、接口测试用例设计思路
注:本文有部分内容来源于笔者:搁浅
以上是关于接口测试 我这样看的主要内容,如果未能解决你的问题,请参考以下文章