接口测试是项目测试的一部分,它测试的主要对象是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过程以及系统间的相互依赖关系等。
接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期。
接口测试需要的资料:后台需要提供接口文档且保证接口文档的准确性和统一性。
接口测试工具:jmeter
接口测试环境搭建步骤:
1. 安装JDK
下载网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
按照常见的win程序一步一步安装
2. Jmeter安装:
下载网址:http://jmeter.apache.org/download_jmeter.cgi
下载后,直接解压缩,运行bin文件夹中的jmeter.bat
这里需要注意安装jdk时,应添加一个环境变量
(1) 请求参数考虑全面(字段为空、请求参数顺序填写-避免遗漏现象、请求参数错误)
(2) 请求结果要写上预期结果并写上返回结果的状态码(200,401,404,还有文档中抛出的错误状态码)
2.点击电脑桌面jmeter快捷方式,进入jmeter界面。界面默认会有一个测试计划和一个工作台。
在添加请求参数时应注意:
1.请求路径一定要写对,不能出现空格现象
2.get请求用 Parameters
post请求用Body data
提交文件-(表单传参)一定要带上文件扩展名。扩展名网址 http://tool.oschina.net/commons/
3.请求一定要加上信息头管理器(传参类型)
4.请求头中含有token时,要加上 json 、Beanshell Postprocessor ,请求出现token的在json中用$.token写出,在Beanshell Postprocessor中用脚本把token值传参出来
Beanshell Postprocessor传参token的脚本如下:
import org.apache.commons.net.util.Base64;
String source = vars.get("token") + ":";
byte[] encodedBytes = Base64.encodeBase64(source.getBytes());
String encoded = new String(encodedBytes);
vars.put("encoded", "basic" + " " + encoded);(可以直接用)
5.请求中,需要携带token的应该在请求的信息头管理器中加上请求类型 ${encoded}。(和脚本一致)
6.请求参数中含有cookie的需要在请求中添加HTTP Cookie 管理器
1.在工作台中添加HTTP代理服务器
2.打开火狐浏览器,配置代理服务器,代理服务器配置好了,选择控制的线程组(录制的请求在哪个线程里)。启动录制过程,在代理服务器上进行请求操作,操作完成后,停止运行,筛选有用的请求。
在线程组上填写线程数为一个数值(你想复现多少次)-----在请求上加上一个固定定时器(防止请求过多,对服务器产生压力--服务器崩溃)-----可以运行
8.请求过程中要对请求结果进行判断,即响应断言。
添加响应断言时,要对出现的结果进行判断,错误的响应应该在要测试的相应字段勾选lgnore status,在要测试的模式中填写一个响应判断的状态码。(文档中抛出的异常错误代码)
jmeter 操作数据库 (操作数据库需谨慎,先在自己本地上建,熟练之后在测试服务器上操作)
操作数据库基本有四个步骤:(1)导入mysql的jdbc的jar包 (2)创建数据库的连接配置,线程组里添加配置元件-JDBC Connection Configuration (3)线程组里添加jdbc request,写sql语句 (4)添加察看结果树,点击启动按钮,就能看到执行的SQL。具体的实例如下截图所示:
下载连接mysql数据库jar包,地址:http://files.cnblogs.com/files/xiaoxitest/mysql-connector-java-5.1.28.zip(因不支持上传.jar文件,下载后需要手动把扩展名改为.jar)将文件拷贝到Jmeter\lib\ext目录下,我的是:D:\Program Files\apache-jmeter-2.11\lib\ext启动Jmeter,在测试计划点击浏览添加刚刚拷贝的jar包
创建数据库的连接配置,线程组里添加配置元件-JDBC Connection Configuration
jmeter数据库驱动列表如下表所示:
数据库 |
驱动 |
数据库url |
mysql |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname}?allowMultiQueries=true |
oracle |
org.postgresql.Driver |
dbc:postgresql:{dbname} |
线程组里添加jdbc request,写sql语句
查看结果树