一.接口概念
1.什么是接口(API)
接口:接口是为了提供一种服务
所有的接口统称为API,接口分为内部接口和外部接口外部接口:测试被测系统和外部系统之间的接口
测试内部接口:
1.内部接口提供内部系统使用:开发人员自己开发的对自身系统提供的接口)
2.内部接口提供外部系统使用:正例,各种异常场景,权限控制(只需要测试正例即可),开发系统调用外部的其他的接口
2.软件为什么需要接口
接口可以使外部来修改内部的数据
3.怎么做接口测试
一般项目的前后端进度不同,则需要提前将开发出的接口进行测试
基于安全考虑,前端的验证很容易绕过,直接请求接口,特别是:身份证信息,银行卡,金钱交易
接口的本质:就是测试接口是否能正常的交互,权限控制及异常场景
二.接口测试的流程
-
从开发那拿到Api接口(期望不要太大)/用Friider去抓包接口,熟悉接口业务,鉴权码
-
接口计划和方案
思路:
? a.正例:输入正常的入参,查看接口是否返回成功
? b.反例
? I.鉴权返例: 鉴权为空,鉴权码错误,鉴权码已过期…
? II.参数反例: 参数为空,参数类型异常,参数长度异常
? III.其他场景:错误码的覆盖,分页异常,接口调用次数限制
?
3.使用接口测试工具postman编写用例和评审
4.使用postman+Newman+jenkins实现持续集成,并且输出测试 告并且发送邮件
三.接口协议
1.webservice协议
接口地址:
restful规则:get获取数据,post提交数据,put修改数据,delect删除数据
以前对数据的增删改查都是由四个地址进行操作.而现在只用一个 址使用get,post,put,delect请求来进行增删改查
2.dubbo协议
接口地址
适用于少量数据的传输,大并发
3.http协议
超文本传输协议(HTTP):一种无状态的,以请求/应答方式运行的协议,它使用可拓展的语义和自描述消息格式.
: 接口地址,端口是80,安全传输协议,端口是443
响应:1XX响应的信息,2XX响应成功,3XX重定向,4XX客户端错误(不传值跳转 页),5XX服务器错误
须知
1丶 接口返回的数据格式
- json格式(主流)
Json是一种轻量级的数据交换格式。它基于JAVAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 在js语言中,一切都是对象,因此任何支持的类型都可以通过json来表示
json由**两种特殊类型(数组,对象)和四种基本类型(string.int,boolean、NULL值)**构成v
数组它也可以像对象那样使用键值对,但还是索引使用得多。值的类型可以是任意类型。举例:{“firstName”: “Brett”, “lastName”: “McLaughlin”}。
对象键名可以使用整数和字符串来表示。值的类型可以是任意类型。举例:people:[{“firstName”: “Brett”,“lastName”:“McLaughlin”},{“firstName”:“Jason”,“lastName”:“Hunter”}]
优点
- 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
- 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升 络传输效率
b. json由两种数据结构组成(可以相互嵌套),MAP对象,键值对,{key:value,key:value}和 数组:[value1,value2,value3]
c. 在线校验json结构的 站
2.html格式
3.xml格式
2丶 头字段
HTTP头字段是的形式,key和value之间用”:”分隔,最后用换行表示字段结束.
前后端分离则将传输数据类型为,这里的key就是.value值就是
头字段规则
- 字段名不区分大小写,字段名里不允许出现空格,可以使用连字符,但不能使用下划线(有的浏览器不能解析下划线)
- 字段名后面紧跟字段原则上不能重复.除非
常用头字段
http协议中有很多头字段
请求字段:请求头中的头字段,如
响应字段:响应头中的头字段,如
通用字段:在请求头和响应头都可以出现,如
3丶请求 文
HTTP协议的请求 文由四大部分组成
-
请求行:描述请求或响应的基本信息
-
请求头:使用Key-value形式更详细的说明 文
-
空格
-
消息正文:实际传输的数据,它不一定是纯文本,可以是图片,视频,二进制数据
请求头 文格式:
4丶响应 文
HTTP协议的响应 文由四大部分组成
-
响应行:描述请求或响应的基本信息
-
响应头:使用Key-value形式更详细的说明 文
-
空格
-
消息正文:实际传输的数据,它不一定是纯文本,可以是图片,视频,二进制数据
响应行 文格式:
5丶HTTP的 Post编码格式
HTTP是以ASCll码来传输的,建立在TCP/IP协议上,HTTP请求/响应包括请求行,请求头,空格,消息正文
而请求头的Content-Type属性告诉服务器,浏览器发送的消息正文是通过什么方式进行编码的,服务器就会得知用什么方式进行解析,而POST方法有四种编码格式
- application/x-www-form-urlencoded
post请求的编码格式若不指定,就是这个,只能传key=value值
- multipart/form-data
(键值对型数据):通常是用在客户端向服务端传送大文件数据,如:图片或者文件。也可以传key=value
- application/json
(Json 类型数据):用的超级多,也非常的方便。
- text/xml
(xml)
6丶注意
7丶Tcp/IP 协议
一个HTTP请求流程
输入 址回车后,浏览器会将域名解析出来,浏览器会去查看你的浏览器是否有该域名对应的DNS缓存,有的话,可以拿到服务端的地址,没有的话,会去看你本地的host文件是否配置,没有配置则发起DNS请求来获取你对应的服务器iP地址
应用层会构造一个DNS请求 文,应用层会调用传输层的一个接口,调用UDP进行传输
络层会将UDP请求 文添加一个IP的请求头, 络层会将其数据交给链路层
五.postman工具
构建请求
- 请求方式
- url方式
- 请求头的确认
- 传参格式
- 发送请求
1.功能栏
1.概念
- 环境变量:环境变量就是全局变量
- 全局变量:全局变量是能够在任何接口都可以访问的变量
4.postman内置动态函数
5.解决接口关联问题
1.使用json提取器
2.使用正则表达式提取器
注意: 若是动态参数断言,只能是自定义的能断言
在断言中获取自定义动态参数(全局变量)的方式:
pm.globals.get(“times”)
globals[“times”]
globals.times
3.设置全局断言
因为每个接口都需要状态码断言,可以设置一个全局的,这样每个接口断言就不要写状态码断言了[在Edit选项设置全局Tests]
2. 自动判断
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!