简体   繁体   English

模糊或安全的Jmeter脚本

[英]Obfuscate or Secure Jmeter Script

I am working on Jmeter Scripts from sometime now, there is a need to secure the Jmeter script and majorly make it unreadable for external stakeholders. 我从某个时候开始研究Jmeter脚本,所以需要保护Jmeter脚本,主要是使外部利益相关者无法理解它。 My expectation is to obfuscate or deliver the script as some kind of JAR or executable. 我的期望是将脚本混淆或提供为某种JAR或可执行文件。 I need some ideas or workaround to start with. 我需要一些想法或解决方法。

Thanks 谢谢

Senz79 森兹79

It is possible to run existing JMeter script from Java code or create a JMeter test purely in Java using JMeter API so it is not a problem to create an executable binary which will run your test and obfuscate it. 可以从Java代码运行现有的JMeter脚本,也可以使用JMeter API完全在Java中创建JMeter测试,因此创建可执行二进制文件来运行您的测试并对其进行混淆是没有问题的。

Example Java code to run a JMeter test: 运行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();
    }
}

See the following reference material to get started: 请参阅以下参考资料以开始使用:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM