一、什么是接口?或者说什么是软件接口?接口测试的意义?
自己理解的定义:有一定标准的、当满足这个标准后,可以通过接口让请求方与接收方直接进行交互的一种方式。
百度百科:在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。
接口测试意义:提高产品质量、逻辑、准确性
二、接口划分
什么是系统对外的接口? 什么程序内部的接口?
三、接口的组成

接口名称:表明接口作用
接口地址:URL 、HTTP/HTTPS 区别就是后者更安全
HTTP请求包含4个部分,统一资源定位符(URL)、方法(Method)、头(Headers)和体(Body)
**请求方式:post/get **
接口常用的请求 POST 、GET、HEAD 方法的区别。
get和post的区别如下:
1.get是向服务器要数据,也就是接收数据,而post是向服务器发送数据
2.get请求的参数在地址栏显示,而且post请求的参数在请求体显示,所以get请求的安全性没有post安全性高
3.get请求的参数有长度的限制,限制的长度根据浏览器而定,而post请求的参数没有长度的限制
4.get 请求体是没有内容的,而post请求体有内容
5.request用法中post和get的区别:
请求参数:必填项、选填项的测试
返回格式:xml/json
返回参数:预期结果,对比

四、接口测试文档(文档的设计)

接口文档(Swagger)、或者 如果没有接口文档可以使用抓包工具Fiddler工具)
http://123.124.130.28:10060/cjbdi/kspall/doc.html


五、接口测试用例(用例基本原则)
正向用例****、反向(逆向)用例


覆盖所有参数,正向用例
覆盖所有必填项参数,正向用例
某一必填参数为空,少传一个参数、 空和 空格 区别?null
比如用户名、密码在复制的过程中带有空格,系统会不会自动屏蔽掉。
11位手机号码输入了12位。判断标准是否需要和三大运营商去匹配?
身份证号的合法性判断,省、市、区、生日、随机数....
不可重复性,测试用例针对不可重复的覆盖,重复发送请求。看是否得到重复数据。注册用户等
规则越细、测试用例越细。
必填参数基础上,少传一个参数、
多传一个参数,逆向用例(讨论)
必填参数,数据类型错误,数据值错误,逆向用例(比如 整形 变成 字符串)
这个里面会用到等价类,边界值的用法
任意组合可选参数,正向用例
与业务逻辑相关,用户身份认证为空或者错误,逆向用例
字段的唯一性校验,如插入数据字段不能重复,发送两次请求,查看第二次返回结果
六、接口测试常见的问题

七、接口测试流程
需求——>计划——>用例——>执行——>报告

八、接口测试工具(以及使用)
**Postman **、jMeter
测试人员借助工具模拟客户端向服务器端发送请求报文,服务器接收请求报文后,对相应的报文做出处理并向客户端返回应答,工具模拟客户端接收应答,然后测试人员检查应答是否准确,这就是接口测试的原理。
Headers 头信息
Host 头域,可以识别走那个服务器—郭伟登主任
头域指定请求资源的Internet主机和端口号,必须表示请求url的原始服务器或网关的位置。
HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。
Accept:指定客户端能够接受的内容类型(请求头,客户端希望接受的数据类型)
Accept-Encoding是浏览器发送给服务器,声明浏览器自己支持的编码类型。 或者说客户端所能接受的编码规则或格式规范。
Connection Keep-alive连接不会中断保持链接,当客户端发送另一个请求的时候,它会使用同一个连接。直到服务器和客户端认为会话已经结束,其中一方断开连接。
User-Agent PostmanRuntime/7.29.0 让服务器可以识别客户端使用的操作系统及版本、CUP类型、浏览器及版本。(让 服务器了解客户端)
Content-Type描述的只是发送端;
发送端既可以是服务器也可以是客户端;
HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
Content-Type代表发送端发送的实体数据的数据类型。
比如:Content-Type:text/html;
代表发送端发送的数据格式是html
post请求肯定要发送数据包;
因此对数据包的Type有专门的限定:
Content-Type只能是
application/x-www-form-urlencoded,
application/json
multipart/form-data
或 text/plain中的一种。
其他的均不常见。
返回码理解
200****成功
400 (****浏览器)/(客户端)请求的语法错误,服务器无法理解。
**404 **服务器资源不存在,输入错误URL
**500 **服务器发生不可预知的错误
**503 **服务器当前不能处理客户端请求,一段时间后可能恢复正常。
(2)JSON语法规则
用大括号保存对象、用键值对表示对象、用逗号分隔对象、用中括号保存数组
Webservice接口:走soap协议,请求报文和返回报文都是xml格式
白盒:代码测试,黑盒:功能测试 --先浅后深:先黑后白
全局变量 - 集合变量 – 环境变量 分别怎么建立
Swagger接口文档
Postman配置全局变量
可以在建立的Collection设置全局变量后,再通过具体request请求里面设置局部变量来引用设置好的全局变量。


none 表示没有任何参数
**form-data **可以传文本text 也可以传file


编辑
x-www-form-urlencoded 表单格式
**raw **报文格式 :json .....等


编辑
binary 二进制
Select File 传输多媒体文件
编辑
超过0.02秒,要考虑性能是否有问题。

http****响应码 Status 300表示重定向。.......



断言成如下显示:

编辑


断言失败如下显示




Postman配置全局变量
可以在建立的Collection设置全局变量后,再通过具体request请求里面设置局部变量来引用设置好的全局变量。


Fiddler****抓包工具
为什么要去抓包,
bug定位:问题是前端还是后端--抓包







手机端使用 Fiddler

Jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复工作。

Accept-Encoding是浏览器发送给服务器,声明浏览器自己支持的编码类型。
200成功
400 浏览器语法错误
404 服务器资源不存在,输入错误URL
500 服务器发生不可预知的错误
503 服务器当前不能处理客户端请求,一段时间后可能恢复正常。
Headers 头信息
Connection Keep-alive 连接不会中断保持链接,当客户端发送另一个请求的时候,它会使用同一个连接。直到服务器和客户端认为会话已经结束,其中一方断开连接。
User-Agent PostmanRuntime/7.29.0 让服务器可以识别客户端使用的操作系统及版本、CUP类型、浏览器及版本。
Content-Type描述的只是发送端;
发送端既可以是服务器也可以是客户端;
Content-Type代表发送端发送的实体数据的数据类型。
比如:Content-Type:text/html;
代表发送端发送的数据格式是html
post请求肯定要发送数据包;
因此对数据包的Type有专门的限定:
Content-Type只能是
application/x-www-form-urlencoded,
application/json
multipart/form-data
或 text/plain中的一种。
其他的均不常见。
版权归原作者 小猫鼬maki 所有, 如有侵权,请联系我们删除。