1 接口
1.1 API接口
定义:接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。你只要按照要求进行接口调用即可。 外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口。
1.2 GUI
GUI 是Graphic User Interface,是图形用户接口,主要提供可视化界面方面的接口
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的 计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。如Windows是以GUI(图形界面)方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。而DOS就 不具备GUI,所以他只能输入命令。DOS 的这种界面叫CLI (Command line User Interface ) 命令行 模式的人机接口。
GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用,人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。
1.3 接口的表现形式
客户端要先操作服务端资源,首先要找到服务端提供的接口,然后才能向服务端发送资源请求,服务端接口就是一个地址(URL):http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1
1.采用的协议(http:):一般来讲网址中第一个“:”前面的就是该网址所采用的协议。这里的HTTP就是个协议 。HTTPS是HTTP的安全版本,HTTPS在HTTP的基础对传输的数据进行了加密和签名,以保证数据传输的安全性。我们平常打开两页的时候会看到网址前面都有一个HTTP或HTTPS,这就是告诉你,你在向服务器发送此请求的过程中要遵循的协议是HTTP或HTTPS (也就是规则)。
2.服务器地址(//www.qubaobei.com)):以双斜杠“//”开头,后面跟的就是这个服务器的地址,专业术语叫域名。
3.请求资源路径(/ios/cf/dish_list.php) :表示你要请求的资源在该服务器下/ios/cf/dish_list.php的路径下。
4.参数(?stage_id=1&limit=20&page=1):参数可以找到具体内容,和路径之间使用“?”隔开,参数之间使用“&”隔开。参数是以键值对的形式表现出来的。
把此URLhttp://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1称为食品模块个接口, 也称为接口地址。
2.接口传递数据的方式
1.get方法
Get方式是从服务器上获取数据;在做数据查询时,建议用Get方式;如:公共服务部五大服务接口、查询接 口,搜索接口、博客访客系统接口等。
2.post方法
Post方式是向服务器传送数据 ;在做数据添加、修改或删除时,建议用Post方式 ;如:微博图片上传图片 接口、Picself API接口等。
3.put方法
put这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数 据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由 服务器自己决定。
4.delete方法
Delete:删除某一个资源。基本上这个也很少见。
3.接口传递数据的差异性
GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
GET书签可收藏,POST为书签不可收藏 。
GET能被缓存,POST不能缓存 。
GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中 GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大 长度是 2048 个字符)。POST无限制 。
与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝 不要使用 GET !
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。
4 接口测试
1.概念
测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
2. 接口测试本质和目的
实质就是检验数据的传输和接受是否正常,传输的是接口地址中的参数,接受的是文本字符串/文件,然后对比内容是否和预期的一样。
目的:测试接口的正确性和稳定性。
3.接口测试的原理
接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
4.接口测试流程
需求讨论—>需求评审—>场景设计—>用例设计—>数据准备—>执行—>测试报告
5.接口测试内容
1.功能逻辑
通过查数据库或缓存等验证数据是否处理正确。通过其他辅助途径进行验证
2.异常测试
接口测试中主要测试接口正常逻辑,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。
3.路径测试
当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。
4.结构检查
检查返回值的结构是否正确,如是json类型还是xml类型的数据
字段名称是否正确等
XML和JSON都使用结构化方法来标记数据
5.其他异常场景
研发的项目,有些项目是底层使用的系统,根据项目特点,可能会存在特殊的异常场景。例如: 支付的异步操作,支付消息重试等
6.常用接口测试工具
1.典型商业工具:
1.LoadRunner(LR):一款商业性能测试工具,用来做接口测试,很好很强大 ,但是配置比较麻烦。
2.SoapUI:开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。 了解就可以了,基本已经不用了。
2.典型开源工具
Jmeter :一款开源的接口测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试
Postman:Postman 是一款restful api的测试工具,既有google浏览器插件,也有软件
3.扩展插件
postman:谷歌浏览器的扩展工具,主要用来做接口测试,谷歌商店中选中安装,界面同poster差别不大,界面简洁