前言

直接入手大家可能没什么概念,迷迷糊糊,先抛出几个问题给大家,快速帮助大家了解接口测试的基本概念。

接口测试测什么?
什么是接口测试?和单元测试的区别?
接口测试的价值和意义?
怎么测试接口?怎么写用例,怎么运行用例,测试框架?

一、接口测试测什么?

说明一下:本人之前在某绿厂工作过,这边项目的诉求是整机的接口进行测试。

简单的说一下我这边对接口测试的理解,面对用户使用的app,而app可能使用到的接口大致分成以下几类:

1:三方接口(百度地图,腾讯,阿里,三方开源的依赖库,网络接口(http)等)
2:应用对外提供的接口(自定义的ContentProvider,AIDL等)
3:应用内部明显分层的跨Moudle接口(模块化的工程)
4:安卓原生sdk
5:厂商自定义sdk

在这里插入图片描述

所以我们需要测试的安卓客户端的接口主要就是以上几种。

二、什么是接口测试?

安卓端的接口测试是对上面用户的app所使用到的接口进行功能性,稳定性,兼容性的测试介于白盒和灰盒测试的范畴。因为三方接口,sdk的接口,网络接口或者其他接口存在源码不可见的情况,这种就是灰盒测试范围,源码可见的接口采用白盒测试思维进行测试。

总的来说,接口测试属于单元测试的其中一个分支,而单元测试属于白盒测试。

三、接口测试和单元测试的区别

1.单元测试是和源工程一个项目下,因为源码必须可见才能进行单元测试,而接口如果不可见,比如三方接口,则不需要再同一个工程下,因此接口测试的测试工程有两种,一种是将测试用例放在源工程目录下,一种非源工程。

2.单元测试用例是运行在jvm上,而接口测试是需要在真机环境,也就是安卓环境下才能运行
因为接口通常都是跨模块的,jvm无法提供环境,比如context,sim卡,网络,sdcard,四大组件的运行等。
(如果有别的差异也欢迎大家补充,此处只强调重点的区别)

在这里插入图片描述
androidTest目录下就是接口测试用例(运行在android环境(真机))
test目录就是单元测试用例(运行在java环境(jvm))

四、接口测试的价值和意义

我在绿厂工作的这段时间,测试了很多种类型的接口。
谈一下自己的感悟和看法吧。

缺点一:接口测试的价值肯定是没有功能测试的产生的价值多,接口测试直接发现的bug较少。
缺点二:对测试开发人员的要求比较高,要能看懂接口的实现,和对于app的具体业务,才能写出比较好的测试用例。

优点一:接口测试可以驱动开发优化代码。当开发提供接口文档以后,我们开始编写接口测试用例,如果接口设计存在缺陷时,导致我们很难编写用例,那这种可以向开发反馈,接口是否重构。
优点二:因为接口测试用例的执行速度快,可以参与app的快速迭代,拦截新增或者修改代码导致的bug。如果开发修改代码,导致之前的接口测试用例失败,这种bug也是能发现的。
优点三:兼容各个机型,由于测试的是apk,可以跟随不同版本进行测试
优点四:可以帮助开发快速定位bug的原因

说白了,接口测试主要是预防接口被修改导致出问题,一个是功能性验证,保证数据在跨平台或者模块时传入的准确性。

总结

本文简要的说明了一下什么是安卓端的接口测试,接口测试的测试范围,价值和意义,以及和单元测试的区别,下期介绍一下接口测试如何搭建测试环境,何如编写接口测试用例,如何运行,以及测试框架和原理,有任何疑问,可以联系博主,欢迎大家提问。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐