nGrinder中快速編寫groovy腳本03-在GET請求中發(fā)送參數(shù)

點(diǎn)擊鏈接加入QQ群229390571(免費(fèi)公開課、視頻應(yīng)有盡有):https://jq.qq.com/?_wv=1027&k=5rbudQa

在GET請求腳本中添加添加信息頭、cookies和自定義參數(shù),有兩種方式:

一種是在UI界面添加后自動(dòng)生成腳本,一種是直接在腳本中添加。

一、通過UI界面添加

通過 UI 設(shè)置:腳本 -> 新建腳本 -> 顯示高級(jí)配置


生成代碼如下:

@RunWith(GrinderRunner)

@FixMethodOrder(MethodSorters.NAME_ASCENDING)

class TestRunner {

public static GTest test

public static HTTPRequest request

public static NVPair[] headers = []

public static NVPair[] params = []

public static Cookie[] cookies = []

@BeforeProcess

public static void beforeProcess() {

HTTPPluginControl.getConnectionDefaults().timeout = 6000

test = new GTest(1, "www.baidu.com")

request = new HTTPRequest()

// =========下面是我剛才添加的參數(shù)=========

// Set header datas

List<NVPair> headerList = new ArrayList<NVPair>()

headerList.add(new NVPair("Connection", "keep-alive"))

headerList.add(new NVPair("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0"))

headers = headerList.toArray()

// Set param datas

List<NVPair> paramList = new ArrayList<NVPair>()

paramList.add(new NVPair("name", "jing"))

paramList.add(new NVPair("age", "18"))

paramList.add(new NVPair("sex", "beauty"))

params = paramList.toArray()

// Set cookie datas

List<Cookie> cookieList = new ArrayList<Cookie>()

cookieList.add(new Cookie("myToken", "xxxxxxxx", "www.baidu.com", "", new Date(32503647599000L), false))

cookies = cookieList.toArray()

// =========上面是我剛才添加的參數(shù)=========

grinder.logger.info("before process.");

}

@BeforeThread

public void beforeThread() {

test.record(this, "test")

grinder.statistics.delayReports=true;

grinder.logger.info("before thread.");

}

@Before

public void before() {

request.setHeaders(headers)

cookies.each { CookieModule.addCookie(it, HTTPPluginControl.getThreadHTTPClientContext()) }

grinder.logger.info("before thread. init headers and cookies");

}

@Test

public void test(){

HTTPResponse result = request.GET("https://www.baidu.com", params)

assertThat(result.statusCode, is(200))

// 這是我通過引導(dǎo)頁手動(dòng)添加的斷言

assertThat(result.getText(), containsString("jing"))

}

}

可以看到這種方式是在@beforeProcess中添加heads 、params、cookies。

二、直接在腳本中添加

(在此只演示添加 headers 和 params的方式,添加cookies是類似的,不再贅述)

根據(jù)在腳本中添加的位置不同,可以分為以下幾種方式:

1、在 @BeforeProcess 注解的方法里添加 headers 和 params

這種方法跟第一種方法的效果是一樣的

// 添加headers

List<NVPair> headerList = new ArrayList<NVPair>()

headerList.add(new NVPair("Accept-Language", "en-US,zh-CN;"))

// ...可以添加多個(gè)header

headers = headerList.toArray()

// 添加params

List<NVPair> paramList = new ArrayList<NVPair>()

paramList.add(new NVPair("accessToken", "xxxxxxxxx"))

// ...可以添加多個(gè)param

params = paramList.toArray()


2、直接在TestRunner類的靜態(tài)變量中添加 headers 和 params

在整個(gè)類最前面定義靜態(tài)變量的地方,直接給變量賦值:

// 添加headers

public static NVPair[] headers = [

? ? new NVPair("Accept-Language", "en-US,zh-CN;")

]

// 添加params

public static NVPair[] params = [

? ? new NVPair("accessToken", "xxxxxxxxxx")

]


3、在 @Test 注解的方法中添加 headers 和 params

在發(fā)送request請求的方法里添加參數(shù):

// HTTPResponse result = request.GET("https://www.baidu.com", params)

// 添加headers

HTTPResponse result = request1.GET("https://www.baidu.com", [new NVPair("Accept-Language", "en-US,zh-CN;")] as NVPair[])

// 添加params

HTTPResponse result = request.GET("https://www.baidu.com", [new NVPair("accessToken", "xxxxxx")] as NVPair[])

到底選擇哪種方式,要根據(jù)具體的參數(shù)類型和業(yè)務(wù)場景來決定。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容