使用testNg斷言響應結果

相信大家都使用過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("註冊成功"));

執行:

結果:

可以看到期望結果與實際得到的結果是不同的,所以,斷言失敗,好的,這個就是最簡單的斷言方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章