Springboot 实现多线程压测post get put 接口
要通过Spring Boot实现多线程压测POST、GET、PUT接口,可以使用Java的Executor框架来实现。
首先,你需要创建一个自定义的Runnable类,用于执行HTTP请求。你可以使用Apache HttpClient或者Spring的RestTemplate来发送HTTP请求。以下是一个示例代码:
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HttpRequestRunnable implements Runnable {
private String url;
private String method;
public HttpRequestRunnable(String url, String method) {
this.url = url;
this.method = method;
}
@Override
public void run() {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
switch (method) {
case "GET":
HttpGet httpGet = new HttpGet(url);
httpClient.execute(httpGet);
break;
case "POST":
HttpPost httpPost = new HttpPost(url);
httpClient.execute(httpPost);
break;
case "PUT":
HttpPut httpPut = new HttpPut(url);
httpClient.execute(httpPut);
break;
default:
System.out.println("Unsupported HTTP method");
break;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
然后,在Spring Boot的入口类中,你可以使用ExecutorService来创建一个线程池,并提交多个Runnable任务。以下是一个示例代码:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
// 创建一个线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
// 提交多个HTTP请求任务
for (int i = 0; i < 10; i++) {
executorService.submit(new HttpRequestRunnable("http://localhost:8080/api", "GET"));
executorService.submit(new HttpRequestRunnable("http://localhost:8080/api", "POST"));
executorService.submit(new HttpRequestRunnable("http://localhost:8080/api", "PUT"));
}
// 关闭线程池
executorService.shutdown();
}
}
在这个示例中,我们创建了一个包含10个线程的线程池,并提交了30个HTTP请求任务(每个任务包括GET、POST、PUT三个请求)。你可以根据实际需求修改线程池大小和请求任务数量。
这样,你就可以使用Spring Boot实现多线程压测POST、GET、PUT接口了。请注意,在实际的压测中,你可能需要根据服务器的负载情况和性能需求来调整线程池大小和请求频率
原文地址: https://www.cveoy.top/t/topic/icYc 著作权归作者所有。请勿转载和采集!