一.基本概念
测试计划:用来包含测试任务,一个测试计划中至少包含一个线程组
线程组:定义了一个虚拟用户池,所有的用户都执行同样的测试脚本
采样器:采样器是JMETER测试的基本单元,用户可以用它向服务器发一个特定的请求,如HTTP,FTP等,采样器会再超时前等待服务器的响应
逻辑控制器:用户通过逻辑控制器来控制脚本的执行顺序,以变测试能按照用户期望的顺序和逻辑执行
配置元件:配置元件用来设置一些JMETER脚本公用的的信息
断言:断言被用来验证服务器实际返回信息与用户期望的信息是否相符,常用响应断言
定时器:定时器用来保存JMETER测试脚本与时间相关的一些信息,例如思考时间
前置处理器:再前置处理器的处理范围内,任何采样器被执行前,都要先执行前置处理器
后置处理器:再后再处理器的处理范围内,任何采样器被执行后,都要执行后置处理器
监听器:监听器被用来收集测试结果信息,并以用户指定的方式加以展示
二.JMETER设置为中文
第一种:可以通过jmeter的界面工具来设置语言为中文,点击菜单栏【Options】按钮-点击【Choose Language】-【Chinese(simplified)】
设置完成的效果
第二种:进入bin目录下,找到jmeter.properties配置文件,打开后通过搜索找到language=****,修改language=zh_CN点击保存设置完成,重启jmeter。
三.基本过程
新增线程组->新增JMeter元组->新增监听器->运行&查看结果
1).新建线程组:在测试计划栏右键--选择【添加】--选择【threads(users)】--选择【线程组】
2).线程组参数解析
继续:如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。
Start Next Thread Loop : 忽略错误,线程当前循环错误,执行下一个循环。
停止线程 : 只限当前线程停止,不影响其他线程执行
停止测试 : 当前执行的线程全部执行完毕后结束
Stop Test Now: 立刻停止
线程数Number of Threads(users):虚拟用户数
Ramp-Up Period(in seconds):设置的虚拟用户需要多长时间全部启动
循环次数Loop Count:每个线程发送请求的次数,如果选择“永远”,则一直执行下去,直到手动停止;
线程数/全部启动时间=每秒钟增加的用户数的策略
线程数*循环次数=总请求次数
全部启动时间*循环次数=运行的总时长
线程组比其他两个多了个Delay Thread creation until needed:延迟线程创建,这个默认不勾选,测试开始的时候,所有线程就被创建完。勾选了此选项,那么线程只会在合适的需要用到的时候创建。
调度器Scheduler:灵活设置运行时间
需要选中调度器(scheduler),调度器配置才生效。
持续时间(秒):线程组运行的时间
启动延迟(秒):线程组延迟多少秒后启动
3).新建HTTP请求右击【线程组】--选择【添加】--选择【sampler】--选择【http请求】
4).HTTP请求参数解析
1.名称:请求名称非常有必要方便以后看懂
2.协议:默认HTTP,可以填写HTTP或HTTPS
3.服务器名称或IP:服务IP或URL
4.端口号:不填写默认80
5.请求方法:默认GET,请求方式有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
6.路径:HTTP请求URL
7.内容编码:HTTP请求编码
8.参数:URL参数,一般GET请求填写这里,post填写在Body Data中,但是我全部填写在第一个里面
9.添加:添加行填写请求参数Key/Value
5).添加监听器,如结果树,聚合报告
6).运行:点击工具栏上启动按钮,然后查看结果树
7).BeanShell 后置处理程序:处理响应结果,转码为正常UTF-8
转码前vs转码后
8).HTTP请求默认值:可以把请求的URL,token及共用的参数写在这个里面,这样就不用每个HTTP请求中都写URL,token。
9).参数化CSV Data Set Config
概述:参数化就是动态的获取并设置数据。比如执行批量操作时,批量插入或者批量删除,每次执行完都需要修改一次,效率低。参数化就是可以以程序代替人工获取并设置数据,安全+高效。
CSV Data Set Config:通过这个组件可以动态获取并设置数据,实现类似批量添加操作(执行一次,将多条数据插入到数据库)
1.选中某个HTTP请求右击-添加->配置元件->新建一个CSV Data Set Config
2.创建一个文本,标准的csv格式文件,每一行数据对应数据库一条记录,不同字段用英文逗号隔开。
3.一般只会用到这前3个,如下图设置好
4.在HTTP请求中把定义好的参数,填写到JSON格式的键值对的value中,以${变量名}引用。
5.最后设置完成后,在线程组中设置执行次数,点击运行执行脚本。
总结:以上就是jmeter基本接口测试流程,想必也是比较简单。大家没事多动动手写写