一、概念
接口测试,也是功能测试,针对的是程序对外部的接口。简单来说,接口就是对数据库的操作。
接口返回的数据都是json类型(通用的数据类型)
接口测试的依据:接口文档(又称 接口协议),文档包括:
1、url
2、请求方式 post、get 等
3、入参(请求参数)
4、返回参数
5、请求、返回示例
6、状态码说明
二、接口测试的优点
1、可以发现一些页面操作发现不了的bug
2、尽早发现bug,实现解决bug 的最低成本
三、get、post 请求
HTTP请求包含:请求体、请求头
get 请求只有请求头,没有请求体,参数只能写在url 或者 cookie 里面;请求可直接通过浏览器进行发送
post 请求有请求头,也有请求体,参数存放在请求体中
四、接口附带知识点
1、前端、后端
前端:客户端
后端:服务端、server 端
2、cookie、session
cookie 为存在本地的一个键值对
session 为存在服务端的一个键值对
3、接口签名
为了防止别人恶意刷请求
一个加密之后的字符串
五、接口测试工具知识点(以 jmeter 为例)
1、jmeter 参数化
1.1 文件参数化
右击 -> 添加 -> 配置元件 -> CSV Data Set Config
1.2 用户定义的变量
右击 -> 添加 -> 配置元件 -> 用户定义的变量
1.3 函数助手
选项 -> 函数助手对话框
__random
__time (yyyyMMddHHmmss 格式 年月日时分秒)
2、关联
把上一个请求返回的数据,拿过来放到下个请求里面使用
通过【正则表达式提取器】进行数据提取并参数化,然后在下个请求对该参数化数据进行调用
右击 -> 添加 -> 后置处理器 -> 正则表达式提取器
3、断言
自动检查接口返回的结果
右击 -> 添加 -> 断言 -> 响应断言
4、数据库操作
4.1 添加一个 JDBC Connection Configuration
右击 -> 配置元件 -> JDBC Connection Configuration
4.2 配置 MySQL 连接池名称,后续 JDBC Request 需要指定
4.3 数据库 URL
如: jdbc:mysql://[ip+端口号]/jxz?allowMultiQueries=true&characterEncoding=UTF-8
4.4 数据库驱动
指定连接什么型的数据库 MySQL、Oracle、SQL server等
如:MySQL -> com.mysql.jdbc.Driver
选择callable可以执行所有类型的sql语句
注:使用jmeter进行测试时,如果返回结果为乱码,则修改jmeter.properties文件中的该字段的值改为utf-8