题外话
挺久没更新了,最近终于挤时间弄出来了后面要分享的文章大纲及开篇,前面分享的文章大部分是从UI自动化测试和开发的角度,后续将开始接口自动化测试相关专题,会从基础到提升逐步展开。整个接口自动化测试的文章框架大概是这样的:
1、接口自动化测试(一):关于接口
2、接口自动化测试(二):关于HTTP协议
3、接口自动化测试(三):关于URL
4、接口自动化测试(四):Helloworld入门
5、接口自动化测试(五):Http框架搭建
6、接口自动化测试(六):数据验证专项
7、接口自动化测试(七):测试用例管理
8、接口自动化测试(八):日志与报告
9、接口自动化测试(九):任务调度
10、接口自动化测试(十):平台化
可是前面分享的UI自动化测试方案那块的教训告诉我,我这一整块分享出来,估计是给很多培训机构做嫁衣了,人家照搬你的内容做培训,搞得我还是copy他们的一样,所以接口自动化测试这块的分享,我打算前面大半基础部分共享出来,后面优化及平台化部分暂时不共享,采用入群集中练习的方式,毕竟平台化那块代码实践较多,以练习的方式更好开展(具体要不要设置门槛及如何实施,到对应章节的时候再公布)。
关于接口
“接口”应该是大家平日工作中听到的一个高频词,开发童鞋经常挂在嘴边:“老铁,来来来……今天程序改了个接口,帮我回归下”,又或者有时候需要制造数据不想通过UI界面来操作,开发童鞋又来给你支招了:“在浏览器调下我这个接口,就产生数据了”……这里的接口到底表示的是什么含义呢?今天的主题就是围绕着什么是接口来展开。
1、接口的定义
我们这里说的接口,只考虑软件领域,那么就是应用程序接口,借用维基百科的解释:
应用程序接口 (A**pplication Programming Interface 简称:API)为:“‘电脑操作系统(Operating system)’或‘程序库提供给应用程序调用使用的代码”。其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉及应用程序在实际实现过程中的具体操作。
2、对接口的理解
看上面的定义,好像还是不能很直观的理解,所以我想将它具体化,用下面这个例子来解释它:
例1: 猿A毕业后日复一日的写代码,突然有一天发现有些地方的代码经常在重复写,于是他就想将重复的那一部分代码提取出来封装一下,写一个工具类(XXXUtils.java),可是随着对项目的加深,和项目其他成员的互动,发现大家都要用这个工具类,于是猿A就想到了写一个Library,将这个工具类发布到公司的maven平台上……
例2: 猿A开发的应用A需要猿B的应用B提供的用户信息来判断用户的行为,于是猿A找到猿B说,我的项目需要你们那边给我提供用户信息数据来判断用户后续行为,你们给我提供个接口吧……
例3:一日,猿A遇到了这样的需求:需要在应用中集成天气预报功能,于是他百度到了中国天气网有提供这种免费的API:http://mobile.weather.com.cn/data/sk/101010100.html(后面的数字101010100是北京的地区码,所以你想知道某个城市的天气,只需要使用对应的地区码去请求即可),在浏览器中输入这个url就可以获取北京的天气预报信息:
{"sk_info":{"date":"20131012","cityName":"北京","areaID":"101010100","temp":"21℃","tempF":"69.8℉","wd":"东风","ws":"3级","sd":"39%","time":"15:10","sm":"暂无实况"}}
注:上述的天气API已不更新了,这里只作为例子使用。
上面这三个实例分别是从微观到宏观、从私有到开放层面对接口(API)的应用,实例1是从代码层面的接口调用,实例2是应用层面或系统层面的接口调用,实例3是从网络层面的接口调用。接口又分对内对外,对内的接口一般在应用、系统或项目内部之间使用,对外的接口我们又称之为开放式API,大多是以URL地址的方式供大家请求,返回对应的数据。
总结
如果看上面给的这些例子和图,你还没理解什么是接口,那么我就给你一句通俗易懂的话:接口其实就是一个可以传值和取值的数据传输通道。应用内代码级别的方法调用、应用或系统间的远程过程调用(RPC)、网络数据传输等等这些都是对接口的直接或间接应用……如果这样说还是没有理解,那么我想大家都会基本的SQL查询吧,输入一个SQL查询语句就可以返回对应的数据集,这其实也是接口的应用。
原文来自下方公众号,转载请联系作者,并务必保留出处。
想第一时间看到更多原创技术好文和资料,请关注公众号:测试开发栈