当前位置: 首页 > news >正文

深圳做百度网站/b站推广网站入口mmm

深圳做百度网站,b站推广网站入口mmm,福建省文明建设办公室网站,做代还的人都聚集在哪些网站Jmeter源码学习系列:从Jmeter.properties加载配置并启动Jmeter 上一篇简单说了一下jmeter/src/core/org.apache.jmeter/NewDriver.Java文件,简单描述了一下在启动Jmeter前做的准备工作,这次我们从NewDriver.java的main方法入手,看…

Jmeter源码学习系列:从Jmeter.properties加载配置并启动Jmeter


上一篇简单说了一下jmeter/src/core/org.apache.jmeter/NewDriver.Java文件,简单描述了一下在启动Jmeter前做的准备工作,这次我们从NewDriver.java的main方法入手,看看Jmeter启动的时候是怎么从Jmeter.properties文件加载配置的。

public static void main(String[] args) {
先检测基本的环境变量配置:如Java环境,Jmeter的安装路径,如果环境变量配置有错,直接报错
    
if(!EXCEPTIONS_IN_INIT.isEmpty()) {System.err.println("Configurationerror during init, see exceptions:"+exceptionsToString(EXCEPTIONS_IN_INIT));} else{Thread.currentThread().setContextClassLoader(loader);
对Jmeter使用的Log进行初始化
        
setLoggingProperties(args);
加载Jmeter方法
     
 Class<?> initialClass =loader.loadClass("org.apache.jmeter.JMeter");// $NON-NLS-1$
从这里进入jmeter/src/core/org.apache.jmeter/Jmeter.Java
对静态变量进行定义
            
Object instance = initialClass.newInstance();
Method startup = initialClass.getMethod("start", new Class[]{ new String[0].getClass() });//$NON-NLS-
startup.invoke(instance, new Object[]{ args });
} catch(Throwable e){ // NOSONAR We want to log home directory in case of exception
e.printStackTrace(); // NOSONAR No logger at this step
System.err.println("JMeter home directory was detected as: "+JMETER_INSTALLATION_DIRECTORY);
}
}
}

运行Jmeter.start方法,启动Jmeter
/*** Takes the command line arguments anduses them to determine how to* startup JMeter.* * Called reflectively by {@link NewDriver#main(String[])}* @param argsThe arguments for JMeter*/
public void start(String[] args) {
检测启动模式,GUI或者NonGUI
CLArgsParserparser = new CLArgsParser(args, options);String error =parser.getErrorString();if (error == null){// Check optioncombinationsbooleangui = parser.getArgumentById(NONGUI_OPT)==null;boolean nonGuiOnly =parser.getArgumentById(REMOTE_OPT)!=null||parser.getArgumentById(REMOTE_OPT_PARAM)!=null||parser.getArgumentById(REMOTE_STOP)!=null;if (gui &&nonGuiOnly) {error = "-r and -R and -X are only valid in non-GUI mode";}}if (null != error) {System.err.println("Error: "+ error);//NOSONARSystem.out.println("Usage");//NOSONARSystem.out.println(CLUtil.describeOptions(options).toString());//NOSONAR// repeat the error so no need toscroll back past the usage to see itSystem.out.println("Error:" + error);//NOSONARreturn;}try {
初始化Jmeter的log
      
  initializeProperties(parser); // Also initialisesJMeter loggingThread.setDefaultUncaughtExceptionHandler((Thread t, Throwable e) -> {if(!(e instanceof ThreadDeath)) {log.error("Uncaughtexception: ", e);System.err.println("UncaughtException " + e + ". See log filefor details.");//NOSONAR}});if (log.isInfoEnabled()) {log.info(JMeterUtils.getJMeterCopyright());log.info("Version{}", JMeterUtils.getJMeterVersion());log.info("java.version={}", System.getProperty("java.version"));//$NON-NLS-1$ //$NON-NLS-2$log.info("java.vm.name={}", System.getProperty("java.vm.name"));//$NON-NLS-1$ //$NON-NLS-2$log.info("os.name={}", System.getProperty("os.name"));//$NON-NLS-1$ //$NON-NLS-2$log.info("os.arch={}",System.getProperty("os.arch"));//$NON-NLS-1$//$NON-NLS-2$log.info("os.version={}", System.getProperty("os.version"));//$NON-NLS-1$ //$NON-NLS-2$log.info("file.encoding={}", System.getProperty("file.encoding"));//$NON-NLS-1$ //$NON-NLS-2$log.info("Maxmemory     ={}", Runtime.getRuntime().maxMemory());log.info("AvailableProcessors ={}", Runtime.getRuntime().availableProcessors());log.info("DefaultLocale={}", Locale.getDefault().getDisplayName());log.info("JMeter  Locale={}", JMeterUtils.getLocale().getDisplayName());log.info("JMeterHome={}", JMeterUtils.getJMeterHome());log.info("user.dir  ={}",System.getProperty("user.dir"));//$NON-NLS-1$//$NON-NLS-2$log.info("PWD       ={}",new File(".").getCanonicalPath());//$NON-NLS-1$log.info("IP:{} Name: {} FullName: {}", JMeterUtils.getLocalHostIP(), JMeterUtils.getLocalHostName(),JMeterUtils.getLocalHostFullName());}setProxy(parser);updateClassLoader();if (log.isDebugEnabled()){String jcp=System.getProperty("java.class.path");// $NON-NLS-1$String[] bits = jcp.split(File.pathSeparator);log.debug("ClassPath");for(String bit :bits){log.debug(bit);}}
初始化一些有用的信息,比如当前时间,运行时间等等
        
// Setsome (hopefully!) useful propertieslongnow=System.currentTimeMillis();JMeterUtils.setProperty("START.MS",Long.toString(now));// $NON-NLS-1$Date today=new Date(now); // so it agrees with aboveJMeterUtils.setProperty("START.YMD",newSimpleDateFormat("yyyyMMdd").format(today));// $NON-NLS-1$$NON-NLS-2$JMeterUtils.setProperty("START.HMS",newSimpleDateFormat("HHmmss").format(today));// $NON-NLS-1$$NON-NLS-2$if(parser.getArgumentById(VERSION_OPT)!= null) {displayAsciiArt();} elseif (parser.getArgumentById(HELP_OPT)!= null) {displayAsciiArt();System.out.println(JMeterUtils.getResourceFileAsText("org/apache/jmeter/help.txt"));//NOSONAR $NON-NLS-1$} elseif (parser.getArgumentById(OPTIONS_OPT)!= null) {displayAsciiArt();System.out.println(CLUtil.describeOptions(options).toString());//NOSONAR} elseif (parser.getArgumentById(SERVER_OPT)!= null) {//Start the servertry {RemoteJMeterEngineImpl.startServer(JMeterUtils.getPropDefault("server_port",0)); // $NON-NLS-1$startOptionalServers();} catch (Exception ex) {System.err.println("Serverfailed to start: "+ex);//NOSONARlog.error("Givingup, as server failed with:", ex);throw ex;}} else{String testFile=null;CLOption testFileOpt =parser.getArgumentById(TESTFILE_OPT);if (testFileOpt != null){testFile = testFileOpt.getArgument();if (USE_LAST_JMX.equals(testFile)) {testFile =LoadRecentProject.getRecentFile(0);// most recent}}CLOption testReportOpt =parser.getArgumentById(REPORT_GENERATING_OPT);if (testReportOpt != null) { // generatereport from existing fileString reportFile= testReportOpt.getArgument();extractAndSetReportOutputFolder(parser);ReportGenerator generator= new ReportGenerator(reportFile, null);generator.generate();} else if (parser.getArgumentById(NONGUI_OPT) == null){ // not non-GUI => GUI
如果设置为GUI模式启动,直接启动GUI
      
startGui(testFile);
startOptionalServers();
剩下的就不贴了

http://www.lbrq.cn/news/1074223.html

相关文章:

  • 用js做的个人酷炫网站/百度数据指数
  • 网站丢失了怎么办/2022年新闻摘抄简短
  • 描述网站开发的广告词/用今日头条导入自己网站外链
  • 做网站的软件多少钱/站内关键词自然排名优化
  • 河曲县城乡建设管理局网站/seo监控
  • 义乌seo快速排名/深圳优化公司样高粱seo
  • 深圳网站建设科技有限公司/百度广告联系方式
  • 河南网站制作公司哪家好/新乡seo外包
  • 福州企业建站程序/网店代运营骗局
  • ps里新建网站尺寸怎么做/百度指数批量查询
  • 网站服务器开发/温州seo品牌优化软件
  • 网站域名想更换要怎么做/微信管理软件
  • 诸城哪里有做网站的/公司网站排名
  • 做动态网站需要什么软件/宁波优化网站厂家
  • 武汉建网公司网站建设/百度搜索关键词优化方法
  • 河北永生建筑工程网站/网站开发框架
  • 建立自信/汕头seo全网营销
  • 微网站免费制作/趣丁号友情链接
  • 网站建设工作室简介/个人网站的制作模板
  • 网站建设专业性的评价/推广信息发布平台
  • php 修改 wordpress/抖音seo点击软件排名
  • 自助wap建站/武汉百度推广多少钱
  • 乒乓球网站建设目标/百度seo建议
  • 做网站用什么编程/百度搜索引擎技巧
  • 建设商务网站公司/谷歌seo是指什么意思
  • 打电话叫人做网站/万维网域名注册查询
  • 做照片书的网站/百度退款客服电话
  • 赛扶做网站/什么推广平台好
  • 合肥做网站哪家公司好/html网页制作模板
  • 网站中的关键词seo设置/最新热点新闻
  • 标记-清除算法中的可达性判定与Chrome DevTools内存分析实践
  • PPT写作五个境界--仅供学习交流使用
  • 1. 两数之和
  • Java试题-选择题(6)
  • GaussDB having 的用法
  • Oracle 11gR2 Clusterware应知应会