接口:什么是接口呢?接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。 程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
现在我们最常用的两种接口就是webservice接口和http api接口
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。
接口测试是测试系统组件间接口的一种测试。
接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。
接口测试的必要性
一、可以发现很多在页面上操作发现不了的bug
二、检查系统的异常处理能力
三、检查系统的安全性、稳定性
四、前端随便变,接口测好了,后端不用变
接口测试流程
一、需求评审,熟悉业务和需求
二、开发提供接口文档
三、编写接口测试用例
四、用例评审
五、提测后开始测试
六、提交测试报告
接口测试的前提:测接口的话,必须得有接口文档,知道 url的请求方式 参数 以及参数的说明
接口文档至少包括:
1、接口说明 2、调用url 3、请求方法(get\post) 4、请求参数、参数类型、请求参数说明 5、返回参数说明
http://doc.nnzhp.cn/index.php?s=/5&page_id=7
为什么要做接口测试呢? 我们知道,其实接口也是app端或者说是web前端进行调用的,那我们直接在app或者web端直接测试不就好了,反正它都是调用的接口,app和web端功能测试通过了,那接口不就是好使的嘛。 真的是这样吗?说的好像很有道理,其实不然,要是真的是这样的话,那我还讲啥接口测试。 思考一个问题,假如现在在京东app上买东西,支付订单,订单金额是500元,支付的话,那肯定要调用支付接口,你在页面上操作的话,订单金额是修改不了的,那如果你想测试一下服务端有没有校验订单的金额,我想把订单金额改成5元,那在页面上点是测试不了的,这个时候我们就可以直接用接口来调用,修改一下订单金额的值,然后再发请求就可以了。 当然这只是我举个例子,接口测试当然不只是这一点原因,总的来说还是为了更好的提高我们产品的质量。
怎么来测接口-http接口
get请求:
接口请求报文拼接 1、url?param=value¶m2=value 这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接 https://api.douban.com/v2/book/search?q=邹伟伟
单个参数:http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑
多个参数用&符连接:
接口测试工具:Postman
简要描述:
- 获取学生信息接口
请求URL:
http://api.nnzhp.cn/api/user/stu_info
请求方式:
- get
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stu_name | 是 | string | 学生姓名 |
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,0为操作成功 |
stu_info | object | 学生对象信息 |
id | int | 学生id |
name | string | 学生姓名 |
sex | string | 学生性别 |
age | int | 年龄 |
addr | string | 家庭住址 |
phone | string | 手机号 |
grade | string | 班级 |
gold | int | 金币 |