注意:本篇对基本组件的介绍较少,更多是介绍jemter工具的进阶使用,若为初学者可以借鉴其他参考文档或官方网站:jmeter.apache.org/usermanual/…
1. Jmeter的常用组件、执行顺序、作用域
- 测试计划 TestPlan
- 线程组Thread Group
- 配置元件Config ELement
- 前置处理器 Preprocessor
- 定时器Timer
- 采样器Samper
- 后置处理器Postprocessor
- 断言组件Assertions
- 监听器Listener
- 逻辑控制器Logical Controller
- 测试片段 TestFragment
- 非测试组件Non-Test Element
组件间执行顺序:配置元件→前置处理器→定时器→采样器→后置处理器→断言→监听器
相同组件执行顺序:顺序执行,谁在最上,谁先执行
作用域:组件影响的范围为同级节点和子节点
2. Jmeter 参数化配置
- 通过User Parameters组件
如上图:添加了两个参数,username和password;配置了三个用户;引用变量时,使用usernaem、{usernaem}、usernaem、{password}方式引用;注意此处用户数轮询取值的,什么意思呢,如果你有三个线程,依次为线程1取admin,线程2取tom,线程3取jack;如果你有4个线程,则线程4取admin(下一个轮回)
- 通过CSV Data Set Config组件
通过读取CSV文件的方式与参数原理上一样的,引用的方式也是通过${变量名}引用定义的参数,简单的举例如下:
Demo.CSV文件内容
1 | 复制代码Username,password |
读取文件的设置和定义变量如下:其中因我的csv文件的有表头和使用英文的逗号分隔;故配置如图
- 通过函数助手添加参数
选择红框的函数,点击绿框生成,复制蓝框的内容到需要引用的地方
3. 逻辑控制器-事务控制器
事务控制器可以将多个请求组合为一个事务,已事务为单位进行聚合报告的分析。
注意:如果事务的请求数据和其下面的http请求数据相加的和差距不大,此时的数据可以作为正确的数据使用,如果事务的总数与其下相加的总和差距较大,则测试的数据价值性很低;原因可能是:
- Jmeter的运行内容设置不够,需要修改配置文件调整内存
- 单机运行请求的线程太多,CPU和内存饱和了;需要使用分布式请求(联机负载)
- 本机的配置较低或有其他的程序在运行,资源不足;使用命令行运行
4. 后置处理器-正则提取器
正则表达式
5. 后置处理器-json提取器
6. 集合点(真正的并发使用)
利用同步定时器实现
7.jmeter联机负载和命令行
联机负载:主控机(存放脚本)→负载机(运行脚本)操作步骤:A. 首先在各负载机启动jmeter-server.bat 或jmeter-server.shB. 修改主控机上的jmeter.properties文件主控机的配置
1 | ini复制代码# 请找remote_hosts配置 |
负载机的配置
1 | ini复制代码# 寻找server_port参数去掉注释 |
C. 在主控机启动jmeterD. 在控制机运行的时候选择远程启动或远程启动即可命令行运行
1 | diff复制代码Jmeter -h 查看所有的命令 |
8.Beanshell
是一个小型的嵌入式java源代码解释器,具有对象脚本语言的特性,能够动态的执行标准的java语法。
- Jmeter的beanshell
l 定时器 beanshell
l 前置处理器 beanshell
l 采样器beanshell
l 后置处理器 beanshell
l 断言 beanshell
l 监听器 beanshell
2 jmeter的beanshell的常用内置变量
log→写入信息到jmeter.log文件 log.info(“这是日志”)
ctx→引用当前线程的上下文
vars.get(string key)→从jmeter获取变量
vars.put(string key, string key)→把数据写入变量中
Props.get(string key)→从jmeter.properties中读取
Props.put(string key, string key)→定义属性
Prev.getResponseDataString()→获取响应信息
Prev.getResponseCode()→获取响应代码
最后: 可以通过在 点击蓝色字体后面 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
本文转载自: 掘金