相信大家都使用過postman,那麼在postman中也是可以進行響應結果的斷言,如下:如果響應結果爲200,那麼就是綠色的標記,標識斷言通過,如果是紅色的,則說明斷言失敗,未通過,但是,使用postman對你的腳本編寫能力有一定的要求,所以我們選擇在自動化接口中去斷言。
那麼,今天我們來使用一個很強的框架來代替postman的斷言,就是testNg,這裏還是先給大家提供下pom。xml文件中的配置
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>test</scope>
</dependency>
package auto.api.test;
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
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;
import org.apache.http.util.EntityUtils;
import org.testng.annotations.Test;
public class ApiTest {
@Test
public void api_test1() throws ClientProtocolException, IOException{
//1.發包,準備url
String url = "http://localhost:8080/futuremery/mvc/api/member/register?mobilephone=13666666666&pwd=123456";
//2.設置請求方法
HttpGet get = new HttpGet(url);
//準備客戶端
CloseableHttpClient httpClient = HttpClients.createDefault();
//發包
CloseableHttpResponse response = httpClient.execute(get);
//驗證響應頭信息 HTTP/1.1 200 OK
// ProtocolVersion httpVer = response.getProtocolVersion();
//驗證響應頭信息 HTTP/1.1 200 OK
StatusLine stateLine = response.getStatusLine();
//獲取協議版本
ProtocolVersion httpVersion = stateLine.getProtocolVersion();
System.out.println(httpVersion);
//獲取狀態碼
int stateCode = stateLine.getStatusCode();
System.out.println( stateCode);
//遍歷所有的頭部信息
Header[] allheaders = response.getAllHeaders();
for (Header header : allheaders) {
System.out.println(header.getName() +":"+ header.getValue());
}
System.out.println();
//響應體,toString方法可以將響應體轉換成字符串
String entityStr = EntityUtils.toString(response.getEntity());
System.out.println(entityStr);
//斷言
Assert.assertTrue(entityStr.contains("手機號碼已被註冊"));
}
}
看一下結果:綠色的說明我們是斷言成功的
現在我們來修改一下斷言的內容,將斷言的內容修改成如下,然後再執行一下:
//斷言
Assert.assertTrue(entityStr.contains("註冊成功"));
執行:
結果:
可以看到期望結果與實際得到的結果是不同的,所以,斷言失敗,好的,這個就是最簡單的斷言方式。