基于JMeter内核封装

背景


Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件,JMeter小巧轻便且免费。

在实际使用有几个问题:
1. 压测脚本和报告需要人肉保存,对于归档记录的查询很不方便。
2. 使用人员一般需要在个人电脑安装使用。
3. 功能使用略显复杂,需培训使用。

maven 依赖
 

<dependency>
     <groupId>org.apache.jmeter</groupId>
     <artifactId>ApacheJMeter_core</artifactId>
     <version>${AapacheJMeter.version}</version>
 </dependen
 <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_components -->
 <dependency>
     <groupId>org.apache.jmeter</groupId>
     <artifactId>ApacheJMeter_components</artifactId>
     <version>${AapacheJMeter.version}</version>
 </dependen
 <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_http -->
 <dependency>
     <groupId>org.apache.jmeter</groupId>
     <artifactId>ApacheJMeter_http</artifactId>
     <version>${AapacheJMeter.version}</version>
 </dependency>

界面 仿 JMeter和postman 结构设计

后台实现主要包括三部分

1. jmx文件生成
   注:JMeter提供的bean过于零活,生成不会报错,但是无法正常运行,
       调试时通过JMeter工具生成的jmx文件和自己代码生成的jmx文件对比,进行调整。
   

    HashTree hashTree = new HashTree();

        TestPlan testPlan = new TestPlan(planDto.getPlanName());
        testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
        testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
        testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());

        /**
         * 添加计划
         */
        HashTree testPlanTree = hashTree.add(testPlan);

        // Loop Controller
        LoopController loopController = new LoopController();
        loopController.setLoops(planDto.getLoopCount());
        loopController.setFirst(true);
        if (planDto.getScheduler() == SchedulerEnum.YES.getId()) {
            loopController.setContinueForever(false);
            loopController.setLoops(-1);
        }
        loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
        loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());
        loopController.initialize();

        // Thread Group
        ThreadGroup threadGroup = new ThreadGroup();
        threadGroup.setName(planDto.getPlanName());
        threadGroup.setNumThreads(planDto.getThreadNum());
        threadGroup.setRampUp(planDto.getRampUpPrei
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值