接口测试基础知识

一、接口的分类

1、从平台划分:分为内部接口和外部接口。

2、从类型/协议来说:分为http接口和soap(webservice)接口。

☛ HTTP接口:通过GET或POST来获取数据,在数据处理上效率比较高。

☛ Webservice接口:通过soap协议来获取数据,比起HTTP来说能处理更加复杂的数据类型。

但从实质上来说soap请求也是HTTP类型的请求,只不过是把HTTP类型加封了一层Webservice协议,所以就变成了soap类型请求。(接口类型有很多种,只重点掌握HTTP类型请求,了解soap类型请求)

☛ HTTP接口中GET或POST请求方式区别:【此资料来源于网络】

1、GET和POST与数据如何传递没有关系??

GET和POST是由HTTP协议定义的。那么使用哪个方式与应用层的数据如何传输是没有相互关系的。从而,HTTP就没有要求,POST一定要放到请求体里面,GET就一定要放到URL里面。

在HTML标准中,是有着类似的定义。但这只是HTML标准对HTTP协议的用法的约定。也就是规范上说,无区别。

那么,这个说法是从何而来的呢?是因为有各种浏览器等软件的实现,就变成了我们现在熟知的现象,GET要用URL传参,POST用body传参。

 2、HTTP协议对GET和POST有没有对长度的限制??

HTTP协议明确地指出了,HTTP请求头和请求体都没有长度的要求。

而对于URL长度上的限制,有两方面的原因造成:

1)浏览器。

据说IE对URL长度会限制在2048个字符内。但是就我所知,firefox是支持10W以上的长度。

2)服务器。

服务器处理超长的URL本身就是一种负担,更何况遭受恶意攻击呢?

因此,多数服务器出于安全、稳定等多方面的考虑,会给URL长度加限制。但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。 

3、安全不安全和GET、POST有没有关系??

这个问题,首先你得确认面向对象。
举个例子:

1)你现在要让我爸爸妈妈去看看这个URL,你觉得安全吗?

2)你现在要让一个刚入门的初级功能测试工程师去测试这个链接,你觉得安全吗?

3)你现在要让安全测试工程师去看看get请求,你觉得安全吗?

所以,针对不同的人群,安全的定义就会不一样。

 “如果你愿意一层一层一层的剥开我的心 ,你会发现你会讶异 ,你是我最压抑 ,最深处的秘密 ”

把Get和Post剥开后,他们的本质上就是TCP链接,并无差别。

只是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

那么真相到底是什么呢?  

Get产生一个TCP数据包;Post产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

对于POST,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据);

 

二、接口数据传递的格式

一般数据的传递方式:xml和json两种。【面试可能问到两种格式的组成】

1、XML格式:每一对tag(标签)会包裹一对数据,传递到接口。

以注册接口为例:

1 <status>1</status>
2 <code>10001</code>
3 <data>null</data>
4 <msg>注册成功</msg>

2、JSON格式:用花括号括起来,键值对组装成数据,并传递到接口。

以注册接口为例:

1 {“regname”:“jac”,“pwd”:“1234”,“mobilephone”:“15088693973”}

两种格式的详细介绍可查询网址:www.w3school.com.cn

三、接口测试的原理

通过模拟客户端向服务器发送请求,服务器接收请求后对相应的请求做处理并向客户端返回响应结果,客户端接收结果的一个过程。【简言之:模拟客户端请求的发送以及结果的接收】

客户端收发请求的模拟可以是工具如:Jmeter来完成,也可以是自己编写脚本来模拟。

四、接口测试工具介绍

Firefox(火狐)插件 ----httprequester

Chrome(谷歌)插件 ---------Postman 推荐使用,做了解

安装:直接下载postman客户端或者是去给chrome浏览器安装插件均可。

下载地址:https://www.getpostman.com/

soapui -----推荐使用

Jmeter -----重点掌握

原文地址:https://www.cnblogs.com/zdx20/p/12582952.html