import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertThat; import java.io.IOException; import org.apache.http.client.ClientProtocolException; import org.testng.annotations.BeforeClass; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import autoWebApiRequest.HttpRequest; public class UnsubscribesTestCaseTNG { String testString ; String add_unsubscribes ; @BeforeClass public void setUp() throws Exception { this.testString = "https://xxx.xxxx"; this.add_unsubscribes = this.testString + "xxx.xxxx"; } public static void testAssert(String tString, String resultString){ String eString; try { eString = HttpRequest.webApiResult(tString); assertThat(eString, containsString(resultString)); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test @Parameters({"resultString","userName","pwd","email"}) public void add_unsubscribes(String resultString,String userName, String pwd,String email) { String tString = add_unsubscribes + "api_user="+userName+"&api_key="+pwd+"&email="+email; System.out.println(tString); testAssert(tString, resultString); } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class HttpRequest { //发送一般Get请求 public static String webApiResult(String url) throws ClientProtocolException, IOException{ String str = null; HttpClient httpclient = new DefaultHttpClient(); // 创建Get方法实例 HttpGet httpgets = new HttpGet(url); HttpResponse response = httpclient.execute(httpgets); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instreams = entity.getContent(); str = convertStreamToString(instreams); httpgets.abort(); } return str; } }
使用testNG完成一般httpclient发送请求的测试
1 定义request发送方法
2 定义testNG发送数据
3 获取response消息,并对比结果