selenium中发送http请求来测试

所使用的自动化测试框架selenium+maven+testng。最近在做自动化测试时,需要初始化数据,由于开发那边没有具体的说明文档,不知道应该动到数据库里面的哪些表。所以想起是否可以调用接口来帮我初始化数据。

产品通过get和post方式来发送请求。需要先登录一次获取Cookie,后面就直接写入Cookie调用了。代码(Java)如下:

public class Testhttp {

	public static CookieStore cookiestore = null;
	
//	get方式
	public static HttpResponse doGet(String url, String param) {
		HttpResponse response = null;
		HttpGet httpget = null;
		String reurl = null;
		
		try {
			if(param != null) {
				reurl = String.format("%s?%s", url, param);
				httpget = new HttpGet(reurl);
			}
			
//			得到Cookie
			if(null == cookiestore) {
				DefaultHttpClient httpclient = new DefaultHttpClient();
				response = httpclient.execute(httpget);
				cookiestore = httpclient.getCookieStore();
			}
				
//			获取Cookie
			if(null == cookiestore) {
				DefaultHttpClient httpclient = new DefaultHttpClient();
				response = httpclient.execute(httpget);
				cookiestore = httpclient.getCookieStore();
			}
			
			if(response.getStatusLine().getStatusCode() == 200) {
				String result = EntityUtils.toString(response.getEntity());
				System.out.println(result);
			}
			
			System.out.println("Http request response is: " + response.getStatusLine());	
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return response;	
	}
	
//	post方式
	public static HttpResponse doPost(String url, String param) {
		HttpResponse response = null;
		HttpPost httppost = null;
		String reurl = null;
		
		try {	
			if(param != null) {
				reurl = String.format("%s?%s", url, param);
				httppost = new HttpPost(reurl);
			}
			
//			得到Cookie
			if(cookiestore == null) {
				DefaultHttpClient httpclient = new DefaultHttpClient();
				response = httpclient.execute(httppost);
				cookiestore = httpclient.getCookieStore();
			}
			
//			获取Cookie
			if(cookiestore != null) {
				DefaultHttpClient httpclient = new DefaultHttpClient();
				httpclient.setCookieStore(cookiestore);
				response = httpclient.execute(httppost);
			}
			
			if(response.getStatusLine().getStatusCode() == 200) {
				String result = EntityUtils.toString(response.getEntity());
				
//				System.out.println(result);
			}
			
			System.out.println("Http request response is: " + response.getStatusLine());

		} catch (UnsupportedEncodingException e) {
			
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return response;
	}
}


这样就可以不用管开发在添加、删除操作中到底用了到哪些库哪些表,直接调用接口帮我完成了。


你可能感兴趣的:(selenium)