如何调用Jmeter的Api

通过之前的篇幅我们了解了测试用例管理页面如何编写,接下来我们这篇将介绍性能测试平台核心部分代码-使用jmeter提供的api来实现性能测试用例的执行。jmeter是通过解析执行jmx文件来运行脚本的,执行过程中会往jtl文件存入摘要日志,然后通过jtl来生成性能测试报告,jmeter自然也提供了这一套流程的api,大致的执行流程图如下图所示:

加载jmeter.properties配置到Properties

通过JMeterUtils.loadJMeterProperties来加载安装目录的jmeter配置文件jmeter.properties的相关属性到JMeterUtils的成员变量appProperties成员变量中,以便之后获取相关配置(jmeter.properties便是存放jmeter一些初始化配置的文件)

JMeterUtils.loadJMeterProperties("C:/Program Files/jmeter/bin/jmeter.properties");

设置jmeter的安装目录

JMeterUtils.setJMeterHome("C:/Program Files/jmeter");

初始化jmeter本地化的一些参数,比如设置本地语言以及一些资源等等

JMeterUtils.initLocale();

通过SaveService.loadTree解析本地的jmx文件来运行脚本

//加载本地jmx脚本
HashTree jmxTree = SaveService.loadTree(file);

在hashtree里添加结果收集器

结果收集器是Jmeter用来收集运行日志摘要的。

这一步的主要作用是新建收集器来收集运行日志摘要,以便后面报告生成器能根据我们收集的日志摘要生成报告文件。

(1)初始化摘要相关配置信息,并且新建摘要对象

所以摘要内容对于我们生成报告文件是必不可少的,jmeter的api自然也需要新建摘要对象。

    Summariser summer = null;            
    String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");            
    if (summariserName.length() > 0) {               
        summer = new Summariser(summariserName);            
        }  

(2)初始化结果收集器

结果收集器的作用就是把把结果收集成摘要然后写到jtl日志文件,所以如果需要分析运行日志或者需要运行之后生成运行报告的话ResultCollector必不可少,如果不需要的话可以不添加

ResultCollector resultCollector = new ResultCollector(summer);

(3)设置jtl日志文件目录及文件名,并把该字符串设置到结果收集器中

String logFile = "d:\\tmp\\result.jtl";resultCollector.setFilename(logFile);

(4)把结果收集器也添加到之前生成的hashtree中

jmxTree.add(jmxTree.getArray()[0], resultCollector);

| hashtree转换

这一步主要是对我们之前构建的HashTree进行转换,作用是使得原来的hashtree转换成jmeter可以运行执行的hashtree结构

JMeter.convertSubTree(jmxTree,false);

根据HashTree执行测试用例

一步主要是通过设置我们转换后的HashTree,运行我们构建的测试用例。

public LocalRunner(HashTree jmxTree) {
        this.jmxTree = jmxTree;
    }

StandardJMeterEngine engine = new StandardJMeterEngine();
engine.configure(jmxTree);
engine.run();

生成性能测试报告

这一步主要是构建报告生成器,通过前面结果收集器记录的摘要日志生成结果报告文件。

主要作用还是生成测试用例执行结果的报告文件。

首先指定报告生成目录;然后初始ReportGenerator,初始化的时候加载reportgenerator.properties配置信息到configuration里面并且创建jtl文件,generate根据jtl文件内容的信息来生成报告的内容,并且指定了报告生产样式等内容。

    //jmeter报告生成设置          
    ReportGenerator generator = new ReportGenerator(logFile,null);           
    JMeterUtils.setProperty(JMETER_REPORT_OUTPUT_DIR_PROPERTY, htmlReportStr);            
    generator.generate();

参考文献:

https://blog.51cto.com/u_11100758/3217808

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值