- Я отправляю запрос в API с допустимыми параметрами.
- Я включая действительный токен носителя в запросе.
- Я проверил, что URL-адрес создан правильно.
< /li>
Я протестировал нашу конечную точку работоспособности, которая не требует аутентификации, и она работает правильно.
Это говорит о том, что может возникнуть проблема с тем, как я настраиваю токен носителя в запросе. Возможно, API не распознает или не принимает предоставленный мной токен-носитель, хотя я считаю его действительным.
Это код, который я выполняю: (Код все еще необходимо почиститься)
package initialization;
import org.apache.jmeter.control.LoopController;
import org.apache.jmeter.control.gui.LoopControlPanel;
import org.apache.jmeter.control.gui.TestPlanGui;
import org.apache.jmeter.engine.JMeterEngineException;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.protocol.http.control.HeaderManager;
import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestPlan;
import org.apache.jmeter.threads.ThreadGroup;
import org.apache.jmeter.threads.gui.ThreadGroupGui;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.ListedHashTree;
import org.testng.annotations.Test;
import java.io.IOException;
public class JmeterSetup {
private static final String API_URL = "";
private static final String ACCEPT_HEADER = "*/*";
private static final String AUTHORIZATION_HEADER = "Bearer ActualBearer";
private static final String Param = "sd";
@Test
void givenJMeterScript_whenUsingCode_thenExecuteViaJavaProgram() throws IOException, JMeterEngineException {
JMeterUtils.setJMeterHome(".\\Downloads\\apache-jmeter-5.6.3\\bin\\jmeter.properties");
String jmeterFile = ".\\Downloads\\apache-jmeter-5.6.3\\bin\\jmeter.properties";
JMeterUtils.loadJMeterProperties(jmeterFile);
JMeterUtils.initLocale();
StandardJMeterEngine jmeter = new StandardJMeterEngine();
HTTPSamplerProxy httpSampler = getHttpSamplerProxy();
LoopController loopController = getLoopController();
ThreadGroup threadGroup = getThreadGroup(loopController);
TestPlan testPlan = getTestPlan(threadGroup);
ListedHashTree testPlanTree = new ListedHashTree();
ListedHashTree threadGroupHashTree = (ListedHashTree) testPlanTree.add(testPlan, threadGroup);
threadGroupHashTree.add(httpSampler);
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String logFile = "output-logs.jtl";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
jmeter.configure(testPlanTree);
jmeter.run();
System.out.println("Test completed. See output-logs.jtl file for results");
System.out.println("JMeter .jmx script is available at script.jmx");
}
private static LoopController getLoopController() {
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();
return loopController;
}
private static HTTPSamplerProxy getHttpSamplerProxy() {
HTTPSamplerProxy httpSampler = new HTTPSamplerProxy();
httpSampler.setProtocol("https");
httpSampler.setDomain("ApplicationDomain");
httpSampler.setPath("Path");
httpSampler.setMethod("GET");
// Create a HeaderManager and add the headers
HeaderManager headerManager = new HeaderManager();
headerManager.add(new org.apache.jmeter.protocol.http.control.Header("accept", ACCEPT_HEADER));
headerManager.add(new org.apache.jmeter.protocol.http.control.Header("Authorization", AUTHORIZATION_HEADER));
headerManager.add(new org.apache.jmeter.protocol.http.control.Header("param", Param));
httpSampler.setHeaderManager(headerManager);
// Set the properties for the HTTPSamplerProxy
httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
httpSampler.setProperty(TestElement.NAME, "API Request");
return httpSampler;
}
private static TestPlan getTestPlan(ThreadGroup threadGroup) {
TestPlan testPlan = new TestPlan("Sample Test Plan");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
return testPlan;
}
private static ThreadGroup getThreadGroup(LoopController loopController) {
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setName("Sample Thread Group");
threadGroup.setNumThreads(10);
threadGroup.setRampUp(5);
threadGroup.setSamplerController(loopController);
threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
return threadGroup;
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-jmeter
Мобильная версия