海鸥一飞 发表于 2023-11-27 11:30:46

使用JMeter进行接口测试教程

安装
[*]使用JMeter的前提需要安装JDK,需要JDK1.7以上版本
[*]目前在用的是JMeter5.2版本,大家可自行下载解压使用

运行
[*]进入解压路径如E: \apache-jmeter-5.2\bin,双击jmeter.bat启动运行

https://pic1.zhimg.com/80/v2-2c8c5cf845e131730a587c03442e29d0_720w.webp
[*]启动后默认为英文版本,可通过Options – Choose Language – Chinese(Simplified) 设置为中文版

JMeter进行接口测试流程1.测试计划,可以理解为被测项目,下面可以添加一系列待测接口。
可自定义名称,便于自己理解。
https://pic3.zhimg.com/80/v2-5e6bc888a374780a731b9f923aee8d76_720w.webp
2.线程组,在测试计划上鼠标右击 – 添加 – 线程(用户)- 线程组。
一个线程组可以当做一个虚拟用户组,线程组中每个线程都可以裂解为一个虚拟用户。这个在性能测试中会用到,接口测试暂时不用关注,默认值为1即可。
https://pic1.zhimg.com/80/v2-2c779c3f4bf829389a678912d6eb8084_720w.webp
3.HTTP请求默认值,线程组上鼠标右击 – 添加 – 配置元件 – HTTP请求默认值
https://pic2.zhimg.com/80/v2-a773183c628ed2cddb48a37111b64f31_720w.webp
进行接口测试时需要填写协议,IP地址及端口号,为了避免重复操作,可在线程组下添加HTTP请求默认值,填入协议、IP地址和端口号,这样后续的HTTP请求中就不用每次都填写了。
4.HTTP信息头管理,线程组上鼠标右击 – 添加 – 配置元件 – HTTP信息头管理
https://pic1.zhimg.com/80/v2-bb3c9bd884a704b2f875e5977e79d83c_720w.webp
如果请求参数非json格式,可以不用添加此元件。
该元件是针对传入参数为json格式,需添加名称为Content-Type,值为application/json
5.HTTP请求,线程组上鼠标右击 – 添加 – 取样器 – HTTP请求
https://pic3.zhimg.com/80/v2-39eaa477936239f4a6b61d003736c6f2_720w.webp
HTTP请求主要包括请求方法、请求路径和请求参数。
由于协议、IP地址、端口号已经在HTTP请求默认值进行了设置,所以此处可以为空。
(1)传入非json格式的参数,可以直接在HTTP请求面板中【参数】下进行添加:填写参数名称与对应的值
https://pic1.zhimg.com/80/v2-6fad955f0f8888dd8792014aadafcbc4_720w.webp
(2)传入json格式参数,如果参数值存在中文的情况,内容编码需为utf-8格式,避免乱码情况的发生
https://pic3.zhimg.com/80/v2-84d0c524f1224da1aa50e121c0f5b62a_720w.webp
6.断言,主要目的是检查接口是否访问成功。断言的方式比较多,包含响应断言、JSON断言,大小断言,JSR223断言等等,一共提供15种断言方式,一般常用的主要是响应断言,也可以用JSON断言。对于复杂的接口,可借助BeanShell断言。
这里主要介绍响应断言的用法。HTTP请求上鼠标右击 – 添加 – 断言 – 响应断言
https://pic3.zhimg.com/80/v2-7a4f521137218c3d1b36e1fe793a94ea_720w.webp
详情如图:
https://pic2.zhimg.com/80/v2-5668c8783168ea6cd9dbf12399547821_720w.webp
Apply to 指断言的作用范围,一般情况下发出一个请求只触发一个请求,所以默认勾选Main sample only即可。下面针对四种选项做个说明:
(1) Main sample and sub-samples:作用于主请求和子请求
(2) Main sample only:仅仅作用于主请求
(3) Sub-sample only:仅仅作用于子请求
(4) J Meter Variable:作用于j meter变量(输入框填写变量名称)
响应字段 主要包含响应文本、响应代码、响应信息、响应头、请求头、URL样本、文档(文本)、忽略状态、请求状态,下面针对每种方式做个说明:
(1) 响应文本,一般匹配返回的json数据,需要结合模式匹配规则进行校验
https://pic2.zhimg.com/80/v2-4efcc3bec91f6f068bc3504534611f39_720w.webp
根据响应文本的测试模式”records”(*?)匹配到内容,只要包括这些内容,则判断接口执行通过。
https://pic2.zhimg.com/80/v2-c623aa04eaa93eb4d71f69f1daa8f061_720w.webp
(2) 响应代码,匹配返回码,如200,404,500等
https://pic3.zhimg.com/80/v2-0711cc40e4e39c3c4f47ac1e5c252912_720w.webp
(3) 响应信息,匹配响应信息,如OK, Sucess字样
(4) 响应头,匹配响应头
(5) 请求头,匹配请求头
(6) URL样本,匹配请求的url链接,如果有重定向则包含请求url和重定向url
(7) 文档(文本),匹配响应数据的文本格式
(8) 忽略状态,一个请求有多个响应断言,第一个响应断言选中此项时,如果第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的
(9) 请求数据,匹配请求数据
实际比较常用的是响应文本、响应代码、响应信息,这三种还是无法满足的则继续补充其他字段。
模式匹配规则,有包括、匹配、相等、字符串、否、或者。
(1) 包括,响应内容包括需要匹配的内容就表示响应成功,可结合正则表达式进行
(2) 匹配,响应内容要完全匹配需要匹配的内容就表示响应成功,可结合正则表达式进行
(3) 相等,响应内容要完全等于需要匹配的内容才代表响应成功,不支持正则表达式
(4) 字符串,响应内容包含需要匹配的内容才代表成功,不支持正则表达式
(5) 否,相当于取反,如果结果是True,勾选上“否”那结果就是False
(6) 或者,可以用于将多个断言模式进行连接,只要一个模式匹配,断言就代表成功
测试模式,其实就是填写自己的预期值。
https://pic4.zhimg.com/80/v2-e5518339e87544c8c06bd493f67d0bfb_720w.webp
7.监听器-察看结果树,主要用于查看接口执行情况,以树形结构显示接口访问结果,包含取样器结果、请求与相应数据。
线程组上鼠标右击 – 添加 – 监听器 – 察看结果树
https://pic1.zhimg.com/80/v2-77b75f6164d2b3d27c3d7880a53891f4_720w.webp
监听器还包含其他形式如汇总报告、聚合报告、后端监听器等,接口测试主要用到的就是察看结果树。
通过察看结果树可以了解接口执行情况,如果执行失败需要看下错误信息。
https://pic4.zhimg.com/80/v2-8684fb164c027785204b5ee1cae4dadb_720w.webp
至此,使用J Meter进行常用的接口测试就结束了,实际使用过程遇到的特殊情况可以及时反馈(其实和Postman测试接口大同小异~)


页: [1]
查看完整版本: 使用JMeter进行接口测试教程