JMeter学习-028-JMeter默认jmx脚本分发目录(路径)定制
我们在分布式执行参数化脚本时,为尽可能多的利用Slave资源,尽可能将参数文件配置为相对路径,以更好的去适配Slave环境。与此同时,每台Slave的服务jmeter -s 启动的路径可能不尽相同,同一台也可能因不同的操作人员启动时导致其 user.dir 进行了变化,从而参数文件不易管理分发。通常,我们大多采用shell脚本的形式,在固定的路径启动JMeter服务,并在执行测试前将相应的参数文件的分发至Slave对应的路径。
那么,有什么方法可以更好地解决这个问题呢?
我们可通过对JMeter进行定制来解决。
通过查看 JMeter 源码可知,设置路径的方法在 FileServer.java 中,其对应的构件名为:ApacheJMeter_core.jar,对应的源码路径是 apache-jmeter-3.0\src\core\org\apache\jmeter\services\FileServer.java。
对应的两个主要设置 base(路径)方法如下所示:
|
public synchronized void setBase(File jmxBase) public synchronized void setBasedir(String basedir) |
通过修改如上两个方法,将 base 重新修改为自己定制的路径(例如获取系统 JMETER_HOME 的路径,或者读取配置文件配置的路径)即可。
具体操作步骤如下所示:
|
1、解压 ApacheJMeter_core.jar 至 ApacheJMeter_core 目录 2、修改 FileServer.java,定制所需路径 3、编译 FileServer.java,生成字节码文件(各构件与 FileServer.java 放在同一目录) javac -classpath ApacheJMeter_core.jar;commons-collections-3.2.2.jar;jorphan.jar;logkit-2.0.jar FileServer.java 4、将生成的字节码文件拷贝至目录 ApacheJMeter_core\org\apache\jmeter\services\ 下覆盖源文件 5、重新打包 ApacheJMeter_core.jar ApacheJMeter_core>jar -cvf ApacheJMeter_core.jar * 6、将新打包的 core 构件放到 JMETER_HOME\lib\ext\ 目录下,覆盖原文件即可 7、重新执行命令 jmeter -s 启动 JMeter 服务 |
若是对重新打包依然有疑问,请参阅之前的文章 Java学习-039-源码 jar 包的二次开发扩展实例(源码修改),谢谢!
至此,此文顺利完结,希望此文能够给初学 JMeter 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
JMeter学习-028-JMeter默认jmx脚本分发目录(路径)定制的更多相关文章
- JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法
前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...
- JMeter学习(二)录制脚本
---------------------------------------------------------------------------------------------------- ...
- Jmeter学习—004—使用代理录制脚本—HTTP代理服务器(APP、web皆可)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mmmmmmm_2niu/article/details/78136253记得我最开始使用jmeter ...
- JMeter学习(二)录制脚本(转载)
转载自 http://www.cnblogs.com/yangxia-test 环境 Badboy version 2.1.1 JDK: 1.7.0_67 Apache JMeter-2.11 - ...
- jmeter之命令行执行jmx脚本
使用界面执行不稳定,且保存报告非常麻烦 https://www.jb51.net/article/191367.htm 作者:Anthony_tester 来源:CSDN 原文:https://blo ...
- JMeter学习笔记--JMeter监听器
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树.表格.图片加以展示,或者简单地写入某个结果文件之中. 注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原 ...
- JMeter学习笔记--JMeter属性和变量
JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定 ...
- JMeter学习笔记--JMeter常用测试元件
JMeter测试计划有一个被称为“函数测试模式”的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如果你尝试一个较小的测 ...
- JMeter学习笔记--JMeter执行顺序规则
JMeter执行顺序规则: 配置元件 前置处理器 定时器 采样器 后置处理器(除非服务器响应为空) 断言 监听器 只有当作用域内存在采样器时,定时器.断言.前置/后置处理器才会被执行,逻辑控制器和采样 ...
随机推荐
- 51nod1256(乘法逆元)
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1256 题意:中文题诶~ 思路: M, N 互质, 求满足 K ...
- PHP文件上传相关
1.必须通过POST提交 2. 声明 enctype="multipart/form-data" $_FILES {[pic]=array ( [name]=> ...
- Blender使用基础
快捷键 -- 鼠标放在“大纲视图” -- .(小键盘) 定位到所选对象(该键的英文为period) -- 鼠标放在“3D视图” -- n 打开3D视图右面属性面板(把鼠标放在面板上,按F5可以左右切 ...
- 基于requests实现极客学院课程爬虫
背景 本文主要是为了完成极客学院课程<Python 单线程爬虫>中讲师布置的实战作业. 开发环境 操作系统:windows 10 Python :Python 2.7 IDE:PyChar ...
- T-SQL 基础学习 03
局部变量 在T-SQL中,局部变量的名称必须以标记@作为前缀 语法 DECLARE @变量名数据类型 局部变量的赋值 方法一 SET @变量名 = 值 方法二 SELECT @变量名 = 值 SET和 ...
- SwipeRefreshLayout下拉刷新简单用例
自己的下拉刷新组件 下拉刷新并自动添加数据 MainActivity package com.shaoxin.myswiperefreshlayout; import android.graphics ...
- 前台处理json字符串的几种方法(转)
原文地址http://www.css88.com/archives/3919 比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":&quo ...
- 【BO】WEBI文件打开时提示Illegal access错误
在infoview中打开WEBI文件时,提示如下错误. 通过查看SCN,找到错误原因是CMC中有一个服务没有启动. 启动这个服务即可: WebIntelligenceProcessingServer
- Django分析之如何自定义manage命令
我们都用过Django的manage.py的命令,而manage.py是在我们创建Django项目的时候就自动生成在根目录下的一个命令行工具,它可以执行一些简单的命令,其功能是将Django proj ...
- makefile 笔记
1.Makefile中命令前的@和-符号 如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令 ...