Как я пытался добавить файл keystore.jks в приложение jmeter, перейдя к Параметры> Диспетчер SSL> там выберите. jks , и во время выполнения нам нужно указать пароль / кодовую фразу для этого файла, и он будет работать, как и я пытаюсь имитировать c аналогичную вещь, используя библиотеку jmeter в Java, но не смог найти для этого никакой альтернативы.
вроде есть ли способ добавить файл .jks через Java код с использованием библиотеки jmeter, чтобы добиться того же, что я сделал в приложении jmeter?
это то, что я пробовал использовать библиотеку jmeter для java, ALIAS_VALUE, ENDPOINT_VALUE, CONTENT_PATH_VALUE, API_KEY_VALUE используются для маскировки исходного значения из соображений безопасности .
StandardJMeterEngine jmeterEngine = new StandardJMeterEngine();
JMeterUtils.setJMeterHome("C:/Users/pmaiya/Downloads/apache-jmeter-5.2.1/apache-jmeter-5.2.1");
JMeterUtils.loadJMeterProperties("C:/Users/pmaiya/Downloads/apache-jmeter-5.2.1/apache-jmeter-5.2.1/bin/jmeter.properties");
JMeterUtils.initLocale();
System.setProperty("javax.net.ssl.keyStore", "C:/Users/pmaiya/Documents/Zoom/identity.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
HashTree testPlanHashTree = new HashTree();
JmeterKeyStore.getInstance("JKS").load(new FileInputStream("C:/Users/pmaiya/Documents/Zoom/identity.jks"), "123456");
JmeterKeyStore.DEFAULT_ALIAS_VAR_NAME.contentEquals("ALIAS_VALUE");
JmeterKeyStore.getInstance("JKS", 0, -1, "test").load(new FileInputStream("C:/Users/pmaiya/Documents/Zoom/identity.jks"), "123456");
SSLManager.getInstance().configureKeystore(true, 0, -1, "ALIAS_VALUE");
SSLManager.isSSLSupported();
// create http sampler
HTTPSamplerProxy httpSampler = new HTTPSamplerProxy();
httpSampler.setProtocol("HTTPS");
httpSampler.setDomain("ENDPOINT_VALUE");
httpSampler.setPath("CONTEXT_PATH_VALUE");
httpSampler.setMethod("GET");
httpSampler.setName("get call");
httpSampler.setFollowRedirects(true);
httpSampler.setAutoRedirects(false);
httpSampler.setUseKeepAlive(true);
httpSampler.setEnabled(true);
httpSampler.setProperty(TestElement.TEST_CLASS, HTTPSampler.class.getName());
httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
HeaderManager manager = new HeaderManager();
manager.setEnabled(true);
manager.add(new Header("apikey", "API_KEY_VALUE"));
manager.add(new Header("Content-Type", "application/json"));
manager.setName("headermanager");
manager.setProperty(TestElement.TEST_CLASS, HeaderManager.class.getName());
manager.setProperty(TestElement.GUI_CLASS, HeaderPanel.class.getName());
LoopController loopController = new LoopController();
loopController.setLoops(1);
loopController.setFirst(true);
loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());
loopController.initialize();
//create thread group
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
threadGroup.setName("get");
threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
//create test plan
TestPlan testPlan = new TestPlan();
testPlan.setEnabled(true);
testPlan.setName("Test Plan");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());
//Add sampler to the thread group
HashTree threadGroupHashTree = testPlanHashTree.add(testPlan, threadGroup);
threadGroupHashTree.add(httpSampler);
threadGroupHashTree.add(manager);
// Generating the JMX file
SaveService.saveTree(testPlanHashTree, new FileOutputStream("C:/Users/pmaiya/Desktop/TestSSL.jmx"));
jmeterEngine.configure(testPlanHashTree);
jmeterEngine.run();
System.out.println("executed successfully");