Jemeter实战:http接口自动化测试 之 基本入门操作
一、新建测试计划,取名为测试/压测任务的名字
如下,建立一个搜索主流程测试计划,可以在计划种添加公共变量
二、添加线程组。测试计划右键—>threads(user)—>线程组。
每个线程组对应一个压测任务,可以在线程属性中对压测时间及并发量做设置,此处暂不详述。仅做自动化测试的时候,保持线程组默认设置,更改线程数即可。此处线程数用以控制执行次数。下图表示线程组中的所有请求执行三次。
三、配置元件
a)线程组右键—>配置元件—>http请求默认值。用于设置线程组中所有http样本的公共信息。
协议:http或者https
服务器名称或ip:填写待测试系统的公共域名
路径:如果待测试api请求路径前缀相同也可以在路径设置默认路径。一些必须的公共参数如地址信息等也可以在此设置。
b)线程组右键—>配置元件—>http信息头管理器。用于设置http请求的header参数值
参数:参数名及参数值,参数值既可以是jemeter变量,也可以是固定值,还可以调用jemeter函数
c)线程组右键—>配置元件—>cookie管理器。用于设置http请求中的cookie值
参数:参数名及参数值,参数值既可以是jemeter变量,也可以是固定值,还可以调用jemeter函数。注意正确填写域名和路径,否则可能解析不到。
P.S.用户名、地址信息等网站公用信息,一般都存在cookie里面。这些参数值既可以在cookie管理器中单独设置,也可以在信息头管理其中添加一项cookie参数,图示为cookie中用户名两种设置方式。
- 构建http请求
操作:线程组右键—>添加-->samlper-->HTTP请求,用于设置我们需要测试的API的请求路径和数据
协议/服务器名称或ip:如果已经设置了http默认值,http请求取样中可以不做设置。
方法:http请求方法,post和get使用最多
路径:该请求独立路径。如果默认值设置域名为color,设置路径为/m,http取样器设置路径为/search,则取样器最终的请求路径为 color/m/search
Parameters:以参数名—参数值的形式填写,不同参数分开填写,此种方式最常使用;勾选编码选项jemeter会自动进行url转码
P.S. 可以直接从浏览器http请求中复制参数,点击Add from Clipboad按钮从粘贴板中复制参数,自动填写到jemeter
Body Data:以参数名=参数值的形式填写,不同参数以&符号分割,需要事先进行url转码。
P.S. Jemeter函数助手中有提供url转码/解码函数:__urlencode/__urldecode,可以直接调用函数转码,但需要注意特殊字符转义
P.S. chrome开发者工具中,可以对http请求中的参数进行url转码,如下图
Files Upload:有时候请求参数太大,直接使用会拖慢jemeter运行速度,可以将参数保存在文件中,请求时读取文件。需要特别注意文件编码格式。
- 添加监听器
监听器用户监控取样结果,最常用的监听器是查看结果树和聚合报告,其中前者用于查看每一个取样器的详细信息,后者用于监控所有取样器的性能表现,多用于压测。这里主要介绍查看结果树。
操作:线程组右键—>添加-->监听器-->查看结果树
查看结果树中,每一个取样器每次运行会得到一个结果,UI如图,我把标注了重要区域
- 文件名:监听结果可以写入文件,右侧可以选择写入内容的范围,其中configure按钮点开可以进行最详细的配置
- Search:在所有结果中搜索文本或者匹配正则表达式,满足搜索条件的取样器结果会在区域C勇红色边框标注;点击取样结果,可以在UI最下侧B2区域查找对应结果中的待匹配文本,此时查找到的文本会以绿色底色醒目标出
- D取样结果:点击区域C每个取样器的名字,右侧区域D展示对应的具体结果。
取样器结果:线程组名字、响应头、响应数据大小,响应时间、是否成功、效应等信息,可以选择raw/parse两种展示方式,后者以表格形式展示
请求:对应http请求的具体请求信息,包括请求方式、请求链接、请求消息体、cookie和消息头等。
P.S.非http请求取样器的这个字段值多半是JMeterVariables
响应数据:该取样器的返回数据,如果是http请求,该字段为请求返回数据。
P.S.可以在区域C选择区域D的编码方式,默认为text编码,其中Json PathTester可以将返回结果自动转为json格式,如下图
- 启动测试计划
点击启动按钮,运行该计划下所有线程组中启用状态的取样器。
其中Start no pauses:表示无停顿启动运行测试计划,以忽略定时器 并且再启动时运行更快。运行过程中可以随时点击stop按钮停止运行。运行完成后在查看结果树种查看具体信息。