1.接口的介绍
业内常说的接口一般指两种:
API:应用程序编程接口,程序间的接口
GUI:图形用户界面,人与程序的接口
软件接口测试中的接口特指API接口
接口测试又称API测试
2.接口的测试
常见的Web接口类型
REST接口
通过HTTP的get和post方式得到数据
返回报文json格式
SOAP接口
通过soap协议得到数据,相比Httpservice能处理更加
复杂的数据类型,请求报文和返回报文xml格式
3.为什么要做接口测试
尽早进行系统集成测试,暴***UG
解决系统测试复杂度
屏蔽UI层的不稳定性
检查系统安全性,稳定性
接口经过测试稳定了,前端页面随便改,减少BUG的产生

4.接口测试原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答的一个过程。
接口测试是黑盒测试。作为黑盒测试,基本的测试思路是通过输入和输出判断被测系统或者对象的逻辑。

5.接口测试关注点
关注在系统架构的业务逻辑层
不注重UI操作或用户感观
检查数据的交换
传递和控制管理过程
注重系统间的相互逻辑关系调用

6.接口测试的范围
功能
性能
安全性
按数据的输入输出分
进入系统的接口(调用外部系统的参数为本系统使用)
数据流出系统接口(验证系统处理后的数据是否正常)

7.接口测试和UI测试的异同点
UI的操作实际上就是用另一种方式调用接口,那么接口有多少种参数组合就要求UI用例要构造多少种操作进行调用
UI操作所需要的数据可以用接口来生成
接口测试可以保证数据和逻辑的准确性,UI测试需要考虑交互和界面展示的逻辑正确性
UI测试需要重视接口调用不成功或者接口异常情况下UI的呈现方式和用户体验
UI中可能会有一些状态的缓存信息(这样就不需要每次频繁调用接口去获取了),比如鉴权信息等,需要重点关注这些缓存的更新策略

8.如何开展接口测试
找开发索要接口说明文档
研读并熟悉接口文档中的接口业务
编写接口测试用例,准备测试数据
使用工具(JMeter)编写用例脚本,断言,调试脚本,执行脚本,查看结果

9.一份接口说明文档包含的内容
接口说明
请求方式(get\post)
接口地址
请求头部信息
请求参数
返回参数
返回示例

10.接口功能测试点:
接口可用性
输入输出参数个数及命名
输入参数的必填项
输入参数的合法性
输出参数内容的正确性
接口实现功能验证
接口文档规范性
接口传递参数的安全性

11.接口测试用例怎么写:
熟悉接口文档的内容
根据接口功能测试点去设计用例

12.接口测试工具
JMeter,Postman,SoapUI,Fiddler,HTTPWatch,自主开发的工具或框架

接口测试流程:
1、从开发手中拿到接口说明文档
2、分析接口说明文档中的接口业务,并编写接口测试用例,构造测试数据
3、编写接口的脚本
如果是代码,则用对应编程语言编写,如:[python + requests + unitttest]
如果是用工具,则要准备好工具的环境,在工具中录入接口用例的脚本并调试脚本,为脚本添加断言
4、执行脚本,检查结果,如果发现Bug,则要上报Bug并跟踪Bug

Ctrl+S Ctrl+E Ctrl+R
1、测试计划:默认打开JMeter后便存在
2、线程组:测试计划 -> 右键 -> 添加 -> 线程 -> 线程组
3、HTTP请求(HTTP request):线程组 -> 右键 -> 添加 -> 取样器 -> http请求
4、查看结果树:线程组 -> 右键 -> 添加 -> 监听器 -> 查看结果树
可以选择不同的方式查看结果:默认为Text,常用的如JSON, 如果在校验Json 表达式是否正确,则可用JSON Path Tester
可以将结果输出到一个文件中,如果没有事先创建文件,则会自动生成文件
C:\Users\Administrator\Desktop\result1.csv
5、HTTP请求默认值:线程组 -> 右键 -> 添加 -> 配置元件 -> HTTP请求默认值
6、HTTP信息头管理器:请求 -> 右键 -> 添加 -> 配置元件 -> HTTP信息头管理器
7、JSON提取器:请求 -> 右键 -> 添加 -> 后置处理器 -> JSON 提取器
JSON Path expression:
{

}
8、调试取样器:线程组 -> 右键 -> 添加 -> 取样器 -> 调试取样器
9、变量的引用:${变量名}
10、JSON断言:请求 -> 右键 -> 添加 -> 断言 -> JSON断言
11、正则表达式提取器:请求 -> 右键 -> 添加 -> 后置处理器 -> 正则表达式提取器
{"status": ,"msg": ,"token": }
提取token:"token":}
提取 200,sucess,token值:{"status":(.),"msg":"(.)","token":"(.*)"}
12、事务控制器:请求 -> 右键 -> 插入上级 -> 逻辑控制器 -> 事务控制器
13、JDBC Connection Configuration:线程组 -> 右键 -> 配置元件 -> JDBC Connection Configuration
14、JDBC Request(JDBC 请求):线程组 -> 右键 -> 取样器 -> JDBC Request
15、响应断言:请求 -> 右键 -> 断言 -> 响应断言
16、循环控制器:请求 -> 右键 -> 插入上级 -> 逻辑控制器 -> 循环控制器
17、CSV数据文件设置(注意作用域):循环控制器 -> 右键 -> 添加 -> 配置元件 -> CSV数据文件设置
创建csv文件:先创建txt文件,将扩展名改为csv, 打开csv文件,输入相关数据,注意文件名及文件路径最好用全英文
18、函数助手对话框:Tools -> 函数助手对话框 -> 选择对应的函数 -> ......
19、HTTP Cookie管理器:线程组 -> 右键 -> 添加 -> 配置元件 -> HTTP Cookie管理器
20、用户定义的变量:线程组 -> 右键 -> 添加 -> 配置元件 -> 用户定义的变量