0
点赞
收藏
分享

微信扫一扫

业务接口造数据(httpclient)


导入httpclient jar包 创建maven工程 

httpclient 发送get请求

package com.testing91;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

/*** 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
 * 
 * DatabaseComputer Server Httpclient request 强制使用这种fang
 * 
 * @author Administrator
 *
 */
public class HttpclientForDatabaseComputerGet {

	// send url is http://localhost:9000/computers?f=ACE
	private static String uri = "http://localhost:9000/computers?f=ACE";

	public static void main(String[] args) {

		try {
			CloseableHttpClient httpclient = HttpClients.createDefault();
			HttpGet httpGet = new HttpGet(uri);
			CloseableHttpResponse httpResponse = httpclient.execute(httpGet);
			// 3 获取响应体数据流,然后放入缓冲区
			BufferedReader in = new BufferedReader(
					new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			// 4 读取缓冲区内容为字符串
			while ((line = in.readLine()) != null) {
				sb.append(line + "\n");
			}
			// 5 关闭缓冲区
			in.close();

			String content = sb.toString();
			
			// 6 测试校验
			
			System.out.println(content);
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}


httpclient  发送post请求单线程

package com.testing91;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;

/***
 * 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
 * 
 * DatabaseComputer Server Httpclient request 强制使用这种fang
 * 
 * @author Administrator
 *
 */
public class HttpclientForDatabaseComputerPost {

	// send url is http://localhost:9000/computers?f=ACE
	private static String uriPOST = "http://localhost:9000/computers";

	public static void main(String[] args) {

		try {
			for (int i = 0; i < 10; i++) {
				CloseableHttpClient httpclient = HttpClients.createDefault();
				HttpPost httpPost = new HttpPost(uriPOST);
				List<NameValuePair> params = new ArrayList<NameValuePair>();
				params.add(new BasicNameValuePair("name", "test" + i));
				params.add(new BasicNameValuePair("introduced", "2017-2-19"));
				params.add(new BasicNameValuePair("discontinued", "2017-2-19"));
				params.add(new BasicNameValuePair("company", "22"));
				httpPost.setEntity(new UrlEncodedFormEntity(params));
				
				long startTime = System.currentTimeMillis();
				CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
				System.out.println((System.currentTimeMillis()-startTime) + "ms");
//				System.out.println(httpResponse.getStatusLine().getStatusCode());
				// 3 获取响应体数据流,然后放入缓冲区
				BufferedReader in = new BufferedReader(
						new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
				StringBuffer sb = new StringBuffer("");
				String line = "";
				// 4 读取缓冲区内容为字符串
				while ((line = in.readLine()) != null) {
					sb.append(line + "\n");
				}
				// 5 关闭缓冲区
				in.close();

				String content = sb.toString();
				// 6 测试校验

//				System.out.println(content);
			}

		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}


httpclient  发送post请求 多线程

package com.testing91;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;

/***
 * 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
 * 
 * DatabaseComputer Server Httpclient request 强制使用这种fang
 * 
 * @author Administrator
 *
 */
public class HttpclientForDatabaseComputerPost2 {

	// send url is http://localhost:9000/computers?f=ACE
	private static String uriPOST = "http://localhost:9000/computers";

	public static int sendPostRequest(String ThreadName) throws ClientProtocolException, IOException {

		CloseableHttpClient httpclient = HttpClients.createDefault();
		HttpPost httpPost = new HttpPost(uriPOST);
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("name", "test"));
		params.add(new BasicNameValuePair("introduced", "2017-2-19"));
		params.add(new BasicNameValuePair("discontinued", "2017-2-19"));
		params.add(new BasicNameValuePair("company", "22"));
		httpPost.setEntity(new UrlEncodedFormEntity(params));
		long startTime = System.currentTimeMillis();
		CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
		int responseCode = httpResponse.getStatusLine().getStatusCode();
		System.out.println(responseCode + " ," + (System.currentTimeMillis() - startTime) + "ms" + "  ," + ThreadName);
		return responseCode;
	}

	public static void main(String[] args) {
		// 5个线程 跑1分钟
		final long startTime = System.currentTimeMillis();

		for (int i = 0; i < 5; i++) {
			Thread t = new Thread(new Runnable() {
				AtomicBoolean flag = new AtomicBoolean(true);

				public void run() {
					while (flag.get()) {
						try {
							if ((System.currentTimeMillis() - startTime) >= 60 * 1000) {
								flag.set(false);
							}
							sendPostRequest(Thread.currentThread().getName());
						} catch (ClientProtocolException e) {
							e.printStackTrace();
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
			});
			t.start();
		}
	}
}







举报

相关推荐

0 条评论