接口 测试

一.接口概念

1.什么是接口(API)

接口:接口是为了提供一种服务
所有的接口统称为API,接口分为内部接口外部接口

外部接口:测试被测系统和外部系统之间的接口

测试内部接口:
1.内部接口提供内部系统使用:开发人员自己开发的对自身系统提供的接口)
2.内部接口提供外部系统使用:正例,各种异常场景,权限控制(只需要测试正例即可),开发系统调用外部的其他的接口

2.软件为什么需要接口

接口可以使外部来修改内部的数据

3.怎么做接口测试

一般项目的前后端进度不同,则需要提前将开发出的接口进行测试
基于安全考虑,前端的验证很容易绕过,直接请求接口,特别是:身份证信息,银行卡,金钱交易
接口的本质:就是测试接口是否能正常的交互,权限控制及异常场景

二.接口测试的流程

  1. 从开发那拿到Api接口(期望不要太大)/用Friider去抓包接口,熟悉接口业务,鉴权码

  2. 接口计划和方案

    思路:

    ? 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丶 接口返回的数据格式

  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方法有四种编码格式

  1. application/x-www-form-urlencoded

post请求的编码格式若不指定,就是这个,只能传key=value值

  1. multipart/form-data

(键值对型数据):通常是用在客户端向服务端传送大文件数据,如:图片或者文件。也可以传key=value

  1. application/json

(Json 类型数据):用的超级多,也非常的方便。

  1. text/xml

(xml)

6丶注意

7丶Tcp/IP 协议

一个HTTP请求流程

输入 址回车后,浏览器会将域名解析出来,浏览器会去查看你的浏览器是否有该域名对应的DNS缓存,有的话,可以拿到服务端的地址,没有的话,会去看你本地的host文件是否配置,没有配置则发起DNS请求来获取你对应的服务器iP地址

应用层会构造一个DNS请求 文,应用层会调用传输层的一个接口,调用UDP进行传输
络层会将UDP请求 文添加一个IP的请求头, 络层会将其数据交给链路层

五.postman工具

构建请求

  1. 请求方式
  2. url方式
  3. 请求头的确认
  4. 传参格式
  5. 发送请求

1.功能栏

1.概念

  1. 环境变量:环境变量就是全局变量
  2. 全局变量:全局变量是能够在任何接口都可以访问的变量

4.postman内置动态函数

5.解决接口关联问题

1.使用json提取器

2.使用正则表达式提取器

注意: 若是动态参数断言,只能是自定义的能断言

在断言中获取自定义动态参数(全局变量)的方式:
pm.globals.get(“times”)
globals[“times”]
globals.times

3.设置全局断言

因为每个接口都需要状态码断言,可以设置一个全局的,这样每个接口断言就不要写状态码断言了[在Edit选项设置全局Tests]

2. 自动判断

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月22日
下一篇 2022年5月22日

相关推荐