混淆或安全Jmeter脚本

时间:2017-04-25 02:55:14

标签: performance testing jmeter jmeter-plugins

我现在正在研究Jmeter Scripts,需要保护Jmeter脚本,并且主要使其对外部利益相关者来说无法读取。我的期望是将脚本混淆或交付为某种JAR或可执行文件。我需要一些想法或解决方法才能开始。

谢谢

Senz79

1 个答案:

答案 0 :(得分:1)

可以从Java代码运行现有的JMeter脚本,或者使用JMeter API完全用Java创建JMeter测试,因此创建可运行测试并对其进行模糊处理的可执行二进制文件不是问题。

运行JMeter测试的示例Java代码:

import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;

import java.io.File;

public class JMeterFromCode {

    public static void main(String[] argv) throws Exception {

        // JMeter Engine
        StandardJMeterEngine jmeter = new StandardJMeterEngine();

        // Initialize Properties, logging, locale, etc.
        JMeterUtils.loadJMeterProperties("/tmp/jmeter/bin/jmeter.properties");
        JMeterUtils.setJMeterHome("/tmp/jmeter");
        JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
        JMeterUtils.initLocale();


        // Initialize JMeter SaveService
        SaveService.loadProperties();

        // Load existing .jmx Test Plan       
        HashTree testPlanTree = SaveService.loadTree(new File("/tmp/jmeter/test.jmx"));

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

        ResultCollector logger = new ResultCollector(summer);
        logger.setFilename("/tmp/jmeter/test.jtl");
        testPlanTree.add(testPlanTree.getArray()[0], logger);


        // Run JMeter Test
        jmeter.configure(testPlanTree);
        jmeter.run();
    }
}

请参阅以下参考资料以开始使用: