一、接口测试
1、简介
测试系统 组件接口之间 的测试, 让系统内部的数据被外部进行修改
验证系统能否正常数据交互、是否有权限控制。
电脑:USB、投影仪(数据传输)
- 外部接口:被测系统和外部系统之间的接口,第三方接口(只需测试正向用例)。如电子商务调用支付宝的支付接口。
- 内部接口:
- 内部接口只提供给内部系统使用。(只需要测试正向用例)
- 内部接口提供给外部系统使用。(测试全面,正反用例,异常场景,权限)
为什么要进接口测试?
1.系统前后端分类,开发进度不一致,开发完成的接口可以进行测试。
当前端开发完成,后端未完成,需要建立mock模拟接口
2.安全性
3.测试尽早介入
接口返回数据类型
1.json格式:三组数据
{error_code:0,msg:"提现成功",data:[]}
error_code:错误码,0==成功
msg:对错误码的解释
data:返回的数据
- json是一种数据类型
- json格式 由两组数据组成:数组[vlaue1,value2,vlaue3....]、MAP对象即键值对[key:value,key:value]
- json格式校验工具 www.bejson.com 可用于校验json格式、接口的加密、解密
2.html格式:
<html>
<title></title>
<body>
<error_code>0<error_code>
...
</body>
</html>
3.xml格式
<?xml?version="1.0" encoding="utf-8">
<error_code>0</error_code>
....
</xml>
接口协议
1.webservice协议(通信协议:soap协议):接口地址(特征)http://..............?wsdl
restful规则:地址相同,请求方式改变
get获取数据、post提交数据、put修改数据、delete删除数据
2.dubbo协议:接口地址以dubbo://.......
长连接异步通信,适用于少量数据传输。可承载大并发
3.http协议:接口地址http://......
https=http+ssl安全传输协议:端口443
http:端口80
面试中常见问题: 什么是http协议?
超文本传输协议,主要用户浏览器和服务器之间交互数据,交互有两个部分,
- 请求:get、post、put、delete
- 请求包含内容:
- 请求行-请求方式、请求地址、协议
- 请求头-(accept)客户端可以接收的数据、(x-requested-with)异步请求、User-Agent(客户端的用户)、(Host)请求的主机地址、(cookie)请求cookie信息
- 空一行
- 请求正文
- 响应:1xx信息,2xx成功,3xx重定向(跳转页面不传值),4xx客户端错误,5xx服务端错误
- 响应包含内容:
- 响应行-协议、响应码、响应信息
- 响应头
- 空一行
- 响应内容
2、测试流程
(1)了解:api文档(抓包获取),熟悉接口业务、地址、鉴权方式、入参、出参、错误码。
(2)接口计划和方案
(3)编写用例及评审
- 正例:输入正确参数,接口成功返回数据
- 反例:
- 鉴权反例:鉴权码(token、key、appkey)为空、错误过期、失效等情况是否能够访问接口
- 参数反例:参数为空、类型异常、长度异常
- 错误码覆盖
- 其他错误场景:接口黑名单用户、调用次数、分页场景等。
(4)postman执行测试
(5)postman+newman+Jenkins实现持续集成,并且输出测试报告发送邮件。
3、接口测试工具
postman、jemter、soapUI,apipost、fiddler、charle
二、关于Postman
Postman是一个接口测试工具,在做接口测试中相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,
从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。
它主要是用来模拟各种HTTP请求,如:get/post/delete/put等等。
1、请求页面
params:get请求传参
authorization:鉴权
headers:请求头
Body:post请求传参
none:没有参数
form-data:既可以传键值对参数也可以传文件
x-www-from-urlencoded:只能传键值对参数
raw:json、text、xml、html、JavaScript
binary:将文件以二进制的方式传参
pre-request-script:请求之前的脚本
tests:请求之后的断言
cookies:用于管理cookie信息
2、响应页面
Body:接口返回的数据
pretty:以json、html、xml...不同格式查看返回的数据
raw:以文本 方式查看返回的数据
PreView:以网页方式查看返回的数据
cookies:响应的Cookie信息
headers:响应头
TestResult:断言结果
面试常见问题: Get请求和Post请求的区别?
- (1)get请求一般是获取数据、post请求一般是提交数据
- (2)post请求比get请求更加安全
- (3)传参方式不同(本质区别):
get请求在地址栏后以?的方式传参,多个参数用&分隔
post请求是在body以表单的方式传参。
三、Vs Code Postman扩展
安装后会出现Postman图标,可以根据情况登录或创建账号。
在浏览器界面登录成功后会弹出对话框,在vscode中打开postman
四、Postman应用
1.创建Collection
点击+可以创建新的Collection
Collection
用例分类管理,方便后期维护
可以进行批量用例回归测试 。
2.创建请求
3.设置HTTP请求
选择请求方式,并输入url
post请求 参数在url后加?跟参数,不同参数用&隔开
get请求 参数化在body中form-data中进行设置
版权归原作者 lucky77. 所有, 如有侵权,请联系我们删除。