一、 什么是接口测试?
什么是接口?
- 程序内部接口
(1)方法与方法之间的交互。
(2)模块与模块之间的交互。 - 系统对外接口
例如百度提供的图像识别接口,我们在实现这个功能的时候,并不是看到了百度写的具体代码,而是通过调用百度提供给我们的接口来实现这个功能。
比较常见的接口分为三大类:web接口、应用程序接口、数据库接口
常用Web接口方式
- http
是走soap协议通过http传输,请求报文和返回报文都是xml格式的。此协议比较复杂且安全性高。 - https
超文本协议,常用POST和GET两种方式。 - webService
并非是应用层的一种新协议,只是http通信接口部分用SSL和TLS协议代替而已。
接口测试原理
属于功能测试,也可以看做是需要了解部分代码的灰盒测试
- 测试流程:
(1)测试接口文档
(2)根据接口文档编写测试用例
(3)执行测试
查看接口返回的接口数据是否正确
二、 怎么做接口测试?
两种方式:代码、工具
使用Jmeter做接口测试流程
1. 接口文档
- 接口地址 协议 : //服务名称或域名:端口号/路径
常用端口号:http 默认 80
https 默认 443
tomcat 默认 8080
Mysql 默认 3306
代理服务器如fiddler 默认 8888 - 返回格式
- 请求方式 常用 POST/GET
- 请求参数 表单格式、文件格式、json等
- 请求头
- 返回数据示例
没有接口文档时,自行抓包进行分析
请求由请求行、请求头、空行、body四部分组成
响应也由四部分组成
2. Jmeter操作
由于没有测试文档,故而抓包以下图为例:
(1)创建测试计划
(2)增加线程组
(3)http请求
(4)参数填入
(5)断言(判断谁就放在谁的作用域下,在请求完成后进行)
(6)增加察看结果树
(7)运行
实战总结:
- 线程组中设置线程数是设置总模拟用户量
- 线程组中循环次数是设置每一个用户(线程)循环进行几次
- Synchronizing Timer(同步定时器)中设置数量是设置同一时间访问(并发)用户量