1.發(fā)送一個(gè)請(qǐng)求
比較常用的是如下的形式,以下表明:我要向/testinterface接口發(fā)送請(qǐng)求,請(qǐng)求時(shí)攜帶參數(shù)key1,key1的值為value1,請(qǐng)求后檢查返回的狀態(tài)碼為200.(POST方法同理,把get換成post即可)
given().param("key1","value1").
when().get("/testinterface").
then().statusCode(200)
2.在請(qǐng)求的header中添加參數(shù)
given().
header("Auth-Token","XXXXXXXXXXX").
param("key1","value1")
3.請(qǐng)求時(shí)攜帶多個(gè)參數(shù)
given().
header("hkey1","value1").
header("hkey2","value2").
param("key1","value1").
param("key2","value2")
4.打印發(fā)送請(qǐng)求時(shí)的信息以便調(diào)試
一般調(diào)試時(shí)需要打印出我們發(fā)送出來(lái)的請(qǐng)求信息
打印所有信息:given().log().all()
打印參數(shù):given().log().params()
打印請(qǐng)求體:given().log().body()
打印header:given().log().headers()
打印cookie:given().log().cookies()
打印請(qǐng)求方式:given().log().method()
打印請(qǐng)求路徑:given().log().path()
5.SSL請(qǐng)求報(bào)錯(cuò)處理
在多數(shù)場(chǎng)景下,SSL能順利運(yùn)轉(zhuǎn),但是如果服務(wù)端使用了無(wú)效的證書,有些情況下還是會(huì)出錯(cuò)??梢允褂萌缦路椒ū苊鈭?bào)錯(cuò)
given().relaxedHTTPSValidation()
6.從返回中獲取結(jié)果
1)從返回中獲得一個(gè)結(jié)果
extract().path("code")
2)從返回中獲得多個(gè)結(jié)果
Response res = given().XXXXXX.extract().response();
res.path("code").toString();? ?//結(jié)果1
res.path("data.item.id").toString();? ? //結(jié)果2
3)從返回的數(shù)組中獲取第2個(gè)數(shù)組的id
extract().path("data.item.array[1].id").toString();
4)從返回的數(shù)組中準(zhǔn)確過濾出我們想要的內(nèi)容
下面例子中,返回的data.item中包含多個(gè)images,我們獲取名稱為image1的images,并返回他的image_id
importcom.jayway.jsonpath.JsonPath;
importcom.jayway.jsonpath.ReadContext;
Response res = given().XXXXXX.extract().response();
ReadContext ctx = JsonPath.parse(response.path("data"));
List image= ctx.read("$.item.images[?(@.name=='image1')]");
return JsonPath.read(image.get(0),"image_id").toString();
可以有多種方式來(lái)進(jìn)行匹配,詳見?https://github.com/json-path/JsonPath