一.什么是接口
接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接,而测试眼中的接口是一种协议(对接口的功能的一种定义)。
二.接口的种类和分类
主要包含三种测试:
1. Web接口测试,
2. 应用程序接口测试,
3. 数据库测试。
外部接口,内部接口:上层服务于下层服务,同级服务。常见的接口分类http:get,post,delete,put
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
实际上意义就是UI界面到数据库之间,数据流经过的所有过程。
LAMP(Linux Apache MySQL PHP)/LNMP(Linux Nginx MySQL PHP):只有 Web 服务器,没有应用服务器。
Web 浏览器 到 Web 服务器: Web 接口测试,测试 请求和响应。
Web 服务器 到 数据库服务器:应用接口测试,测试 PHP。
Linux / Windows + Java /Asp.net(C#) + Apache/Nginx + Tomcat/IIS + MySQL/Oracle/SQL server
Web 浏览器 到 Web 服务器: Web 接口测试,测试 请求和响应。
Web 服务器 到 应用服务器:契约服务,WebService,JavaAPI,WebAPI,WCF,.net Remoting:测试 Java 或者 C# 处理业务逻辑(JavaEE/ASP.NETMVC),通俗讲测试 Service。
应用服务器 到 数据库服务器:数据处理服务,测试 Java 或者 C# 处理数据,把数据读取到数据库。
我们需要关注的是 Web 接口测试。
Web 接口测试的方法:
Python 或者 Java,C# 编程,触发请求,读取响应,分析得到的响应数据进行与源数据的对比。
用工具:apipost 、 jmeter或者postman(不推荐)
apipost 是一款国产的接口文档测试和接口文档生成工具,现在已经提供了 Windows、MacOS 和Linux 的独立安装版本。接下来用Windows的版本来进行安装和使用。
三. ApiPost 的安装
直接去官网下载安装包http://www.apipost.cn
点击立即使用就可以下载了
根据自己的电脑选择对应的版本进行下载
然后运行安装
一直点击下一步就可以了。安装好了之后打开apipost。使用邮箱号注册一个账号就可以使用了。
登录之后需要先创建一个项目。
创建好了之后就可以进行接口测试了
我们在APIs里面新建接口,然后选择请求方法,url,需要传递的参数。然后点击发送,就实现了一个简单的接口测试,现在我们一百度为例子。
新建一个接口
编辑名称为百度,请求方法为get,请求url为http://www.baidu.com
点击请求发送,响应成功。
在试着发送一个post请求。接口名称登录,请求方法post,url本地测试地址,传递的参数
请求发送,响应成功。
这就是如何使用apipost进行接口测试的过程了。
四.请求方法和响应码
get请求,post请求的区别:
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。(唯一区别就是这一点,上面3点区别都是不准确的)
http状态码:
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。
五。apipost下载地址