【接口测试】理论基础
一、接口
程序内部的接口和系统对外的接口
程序内部的接口:模块之间的交互,如登录模块、查询模块,两者之间相互调用
程序外部的接口:获取其他系统的资源,没有权限访问他的数据库,只能通过接口,接口就是调用他写好的方法
二、为什么做接口测试
1、在功能测试前,可以就介入接口测试,一旦发现问题,立刻纠正,节省时间成本
2、测试页面无法测试的问题,比如支付为负数的测试
等等。。
三、不同协议分类
webService接口
1、协议:soap协议,通过http传输,请求及返回报文都是xml格式
2、测试工具:通过soapUI工具,导入wsdl文件,就可以看到所有的接口列表,输入不同的参数即可查看返回结果
新建SOAP项目,名称随意,写入项目提供的wsdl文件,点击ok
输入不同的参数,点击执行按钮,查看右侧的输出
Http API接口
1、协议:http协议,通过路径区分调用方法,请求报文都是key-value形式,返回报文一般是json串,最常用的两种请求方式get和post
2、测试工具:最简单的,get接口,在浏览器加?拼接请求报文,直接请求,如果入参是json串,借助工具postman,jmeter完成
3、get和post的区别
a get通过url传参,post放到body
b get的url会有长度限制,post没有限制
c post安全性比get高
d 一般get用来获取数据请求,post用来发送请求
4、http状态码
a 200 正常(2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了)
b 300 重定向 (3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了)
c 400 异常(400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面)
d 500 服务器异常 (5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果)
5、 关于xml和json
都属于通用数据类型,不同系统开发语言不一样,但是都可以识别json和xml,xml出现比json早,目前常见json
四、接口用例设计
1、通过性验证,接口是否能通
2、业务逻辑测试,接口测试就是功能测试
3、参数组合验证,根据不同的参数值的含义,如type=1时必须有itemid,但是我只传name,itemid为空
4、安全性验证,绕过测试、密码安全
5、异常验证,是否必传、参数类型、入参长度
五、用例模板
1、项目 是哪个项目的
2、模块 这个接口是属于哪个功能模块的
3、用例id
4、接口名称
5、用例标题 用例是干嘛的
6、请求方式 GET/POST
7、请求url url地址
8、请求参数
9、前置条件 有依赖的时候,比如说要测登录失败3次的
10、结果验证 预期结果
11、请求报文
12、返回报文
13、测试结果 通过/失败
14、测试人员