接口测试基础

2016-04-06 08:50:22

在百度百科中,接口定义是:

接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方法。人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。

显然,这说的太抽象了,没明白是什么意思,我的理解是接口类似于我们的黑盒功能测试,即内部具体结构你不知道,但你需要知道我输入什么,之后的输出什么才是对的、什么才是错的。我们关注的是输入什么,预期结果ok 不 ok。

接口类型主要有两种:HTTP和webservice。

HTTP接口基于http协议,应用十分广泛,可以通过post和get得到我们想要的内容(get方式:输入一个url网址,从服务器上获取数据;post方式:例如在登陆表单里填入用户名、密码,把数据提交给服务器);处理数据效率较高;当我们要调用一个本服务内容、不涉及到跨域问题的时候,使用HttpService的方式。

对于WebService,可能大家有些陌生,举个例子介绍下:

      假若,有两个公司,每个公司都有自己的一个项目,一个公司使用 . Net 开发,一个使用 Java 开发。本来这两个公司是相互独立的、井水不犯河水,但是有一天,这两个公司给合并了,合并后的老总发现,如果把两个项目结合起来将会大大的赚一笔,为此,如何做?因为要把两个项目结合在一起,那么这两个项目之间总应该通通信吧!可这两个项目又是基于不同的平台,怎么通信呢?如果一个公司使用的服务器是 Windows Server 2008, 一个公司使用的是 Linux 服务器呢?对的,使用webservice!

WebServices 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的软件,能够利用这一平台实现分布式计算的目的。WebServices的思想是:使得应用程序也具有 Web 分布式编程模型的松散耦合性

webservice是使用soap协议得到我们想要的内容(它不分get和post,只是基于soap协议包装出来的);webservice传递的数据只能是序列化的数据,典型的就是xml数据;它能处理较复杂的数据类型;如果我们需要在后台调用一个其它应用的服务,可以用webSerivice的方式来调用。

WebService在文章 http://blog.csdn.net/zhuizhuziwo/article/details/8153327 里讲解的很清楚。

 

尽管这两种方式涉及很多知识,例如数据的包装、传递、协议规定等等,但我们还是那句话:不需要知道里面的具体实现,但要知道接口的输入和输出、请求和响应。

下面介绍下http协议的请求报文和响应报文

get方式:

打开火狐--百度搜索“‘接口测试’”--打开“接口测试实战-虫师-博客园”,右键firebug查看元素

 

可以看到是get形式的请求,4790294.html 是请求的网址,响应状态码200,还有

Accept:客户端可识别的内容类型列表,

Accept-Encoding:客户端浏览器可以支持的web服务器返回内容压缩编码类型

User-Agent:产生请求的浏览器类型,

Accept-Language:客户端浏览器用来展示返回信息所优先选择的语言,

Host:请求的web服务器域名地址,

cookie:把保存在该请求域名下的所有cookie值一起发送给web服务器,

Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面,等等

相应的,在响应头信息里有

Content-Length:web服务器返回消息正文的长度,

Content-Type:返回数据的类型和字符编码格式,

Date: 显示当前的时间等等。

响应体返回的实际是html的文件,经过前端的解析和渲染后,变成我们看到的有样式的页面了。

post方式:

登陆163邮箱,用户名12345,密码12345 

选择post选项卡,看到post给服务器的参数,即提交的用户名、密码。这里的url是登录前的页面(登录后可以跳转到原访问页面),登陆失败的话会跳到163主界面。

 

还有一点,connection,它表示是否需要持久连接。如果web服务器端看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点。当页面包含多个元素时(例如 Applet,图片),Keep-Alive功能避免了建立或者重新建立连接,显著地减少下载所需要的时间。

在规定的Keep-Alive时间内,连接是不会断开的,例如设置 Keep-Alive: 300。

原文地址:https://www.cnblogs.com/kanhaiba/p/5357774.html