该博主要介绍的是基于HTTP协议的接口测试,使用Jmeter工具来完成测试,通过实践熟悉Jmeter的基本操作。
HTTP协议
开始之前简单复习一下Http协议的知识
1. HTTP的URL结构
一个URL就是一个接口,接口分为如图所示五部分:
1.请求协议:http(普通请求), https(加密的http请求,数据传输更安全),ftp(文件传输协议)
2.IP地址:提供接口的系统所部署的服务器地址
3.端口:默认80
4.接口地址:系统提供的接口位置
5.接口参数:"?"表示路径地址结束,后面是配置参数,“&”来区分参数
2. HTTP的请求方式
3. HTTP请求
Header | 解释 | 示例 |
---|---|---|
Content-Type | 请求的与实体对应的MIME信息 | Content-Type: application/x-www-form-urlencoded |
Authorization | 连接到服务器的授权证书 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
4.HTTP请求体
- json格式 --常用体式
- xml格式
- html格式
- 二进制格式( 多数用于图片 )
- 字符串格式
接口测试
使用JMeter实现接口测试大致可以分为以下几个过程,依据接口文档获取相关内容
- 拿到接口的url地址
- 查看接口是用什么方式发送
- 添加请求头,请求体
- 发送查看返回结果,校验返回结果是否正确
接下来开始进入正题,使用JMeter构建接口测试自动化脚本
JMeter 基本操作
1. 测试计划
测试计划描述了JMeter测试在运行时执行的一系列步骤。完整的测试计划由一个或多个线程组、逻辑控制器、取样器、监听器、定时器、断言和配置元件组成。
测试计划元素是JMeter测试树的根节点,是唯一的,所有的测试元素节点都位于根节点之下。
2. 线程组 (右击测试计划-> 添加->线程(用户)->线程组)
接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。
3.HTTP Cookie 管理器 (添加 -> 配置元件 -> HTTP Cookie 管理器)
提示:保存服务器返回的session
4. HTTP 请求默认值 (添加 -> 配置元件 -> HTTP 请求默认值)
当所有请求都有统一的访问地址和端口时,使用该组件配置。
5. HTTP 请求 (添加 -> 取样器 -> HTTP 请求)
在该页面配置包括请求的接口路径,对应的请求方法,以及随请求一起发送的参数列表
6. 添加断言检查(右击HTTP请求->添加 -> 断言 -> 响应断言 )
在设置页面上添加对相应结果的正则表达式存在性判断即可
7. 添加监听器结果 (右击HTTP请求->添加 -> 监听器-> 查看结果树)
8. 正则表达式提取器 (右击HTTP请求->添加 -> 后置处理器-> 正则表达式提取器)
模板:$1$引用整个表达式匹配的内容,
匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR。
上述步骤完成了一个最基础的测试案例的创建,复杂测试案例均可在此基础上扩展完成。
使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。
流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的取样器,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。