httpclient 接口测试多线程并发类封装
2018-02-05 18:11
411 查看
本人在使用 httpclient 进行接口测试的过程中,需要对接口的并发性能进行简单的测试,在学习了 java 多线程之后,写了一个多线程类来封装多线程执行某一个请求的方法,并将请求响应时间存在本地文件,然后用 Python 读取用 plotly 统计出表格。
下面分享一下多线程执行某个请求类的代码,供大家参考。
末了宣传一下自己的 QQ群:群号:340964272
下面分享一下多线程执行某个请求类的代码,供大家参考。
package source; import java.util.Date; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.apache.http.client.methods.HttpRequestBase; public class Concurrent extends ApiLibrary { public static HttpRequestBase request; public int threads = 5; public int times = 50; @SuppressWarnings("unused") private Concurrent() { } /** * 多线程执行请求方法 * * @param request * 被执行的请求 * @param threads * 线程数 * @param times * 每个线程运行的次数 */ public Concurrent(HttpRequestBase request, int threads, int times) { Concurrent.request = request; this.threads = threads; this.times = times; } /** * 执行多线程任务 */ public void excuteTreads() { ExecutorService executorService = Executors.newFixedThreadPool(threads); CountDownLatch countDownLatch = new CountDownLatch(threads); Date start = new Date(); for (int i = 0; i < threads; i++) { executorService.execute(new More(countDownLatch)); } try { countDownLatch.await(); executorService.shutdown(); } catch (InterruptedException e) { e.printStackTrace(); } Date end = new Date(); output("总计" + threads + "个线程,总计" + (threads * times) + "次请求,共用时:" + getTimeDiffer(start, end) + "秒!"); saveRequestTimes(); } /** * 保存请求时间到本地文件 */ public static void saveRequestTimes() { StringBuffer buffer = new StringBuffer(); int length = testTimes.size(); for (int i = 0; i < length; i++) { if (i == 0) { buffer.append(testTimes.get(0)); continue; } buffer.append(LINE + testTimes.get(i)); } logLong(buffer.toString()); } /** * 多线程类 * * @Author [Vicky] * @Description * @UpdateRemark * @UpdateDate: [2018年1月30日 上午11:14:53] * @CreateDate: [2018年1月30日 上午11:14:53] */ class More implements Runnable { public CountDownLatch countDownLatch; public More(CountDownLatch countDownLatch) { this.countDownLatch = countDownLatch; } @Override public void run() { try { excuteRequest(Concurrent.request, times); } finally { countDownLatch.countDown(); } } } }
末了宣传一下自己的 QQ群:群号:340964272
相关文章推荐
- HttpClient接口测试之会话保持
- 接口测试之HttpClient
- 【接口测试】:HttpClient Post 和 Get 请求
- httpclient自己写接口性能测试脚本
- chrome http请求,测试webapp接口之DHC - REST/HTTP API Client
- http接口测试工具-Advanced-REST-client
- 【自动化测试】HttpClient 模拟用户登录与请求接口完成自动化测试
- Excel+Httpclient,数据驱动接口自动化测试
- 飞信免费发送接口API的测试 httpClient
- 测试HttpClient访问接口并在控制台输出结果的样例
- 分享个测试接口好工具 Dev Http Client
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- RESTClient下载 RESTful Http接口测试工具 -- RESTClient下载
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- 接口测试之HttpClient
- 火狐两款接口测试工具RESTClient和HttpRequester发送post请求
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- HttpClient +Testng(1)进行接口测试入门
- HttpClient之接口测试
- HttpClient测试接口的封装(get和post)