混淆或保护 Jmeter 脚本

Obfuscate or Secure Jmeter Script

我从现在开始研究 Jmeter 脚本,需要保护 Jmeter 脚本,主要是让外部利益相关者无法读取它。我的期望是将脚本作为某种 JAR 或可执行文件进行混淆或交付。我需要一些想法或解决方法来开始。

谢谢

Senz79

可以从 Java 代码中 运行 现有的 JMeter 脚本,或者使用 JMeter API 完全在 Java 中创建 JMeter 测试,因此创建不是问题一个可执行二进制文件,它将 运行 你的测试并混淆它。

示例 Java 运行 JMeter 测试代码:

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();
    }
}

请参阅以下参考资料 material 开始: