nGrinder中快速編寫groovy指令碼03-在GET請求中傳送引數
在GET請求指令碼中新增新增資訊頭、cookies和自定義引數,有兩種方式:
一種是在UI介面新增後自動生成指令碼,一種是直接在指令碼中新增。
一、透過UI介面新增
透過 UI 設定:指令碼 -> 新建指令碼 -> 顯示高階配置
生成程式碼如下:
@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, ")
request = new HTTPRequest()
// =========下面是我剛才新增的引數=========
// 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", ", "", new Date(32503647599000L), false))
cookies = cookieList.toArray()
// =========上面是我剛才新增的引數=========
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://, params)
assertThat(result.statusCode, is(200))
// 這是我透過引導頁手動新增的斷言
assertThat(result.getText(), containsString("jing"))
}
}
可以看到這種方式是在@beforeProcess中新增heads 、params、cookies。
二、直接在指令碼中新增
(在此只演示新增 headers 和 params的方式,新增cookies是類似的,不再贅述)
根據在指令碼中新增的位置不同,可以分為以下幾種方式:
1、在 @BeforeProcess 註解的方法裡新增 headers 和 params
這種方法跟第一種方法的效果是一樣的
// 新增headers
List<NVPair> headerList = new ArrayList<NVPair>()
headerList.add(new NVPair("Accept-Language", "en-US,zh-CN;"))
// ...可以新增多個header
headers = headerList.toArray()
// 新增params
List<NVPair> paramList = new ArrayList<NVPair>()
paramList.add(new NVPair("accessToken", "xxxxxxxxx"))
// ...可以新增多個param
params = paramList.toArray()
2、直接在TestRunner類的靜態變數中新增 headers 和 params
在整個類最前面定義靜態變數的地方,直接給變數賦值:
// 新增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
在傳送request請求的方法裡新增引數:
// HTTPResponse result = request.GET("https://, params)
// 新增headers
HTTPResponse result = request1.GET("https://, [new NVPair("Accept-Language", "en-US,zh-CN;")] as NVPair[])
// 新增params
HTTPResponse result = request.GET("https://, [new NVPair("accessToken", "xxxxxx")] as NVPair[])
到底選擇哪種方式,要根據具體的引數型別和業務場景來決定。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2655054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nGrinder中快速編寫groovy指令碼04-傳送POST請求指令碼
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- java傳送get請求帶引數Java
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- 傳送GET請求 示例
- shell指令碼:批次傳送curl請求指令碼
- RestTemplate exchange GET POST請求傳引數DEMOREST
- Postman傳送請求引數是Map格式的請求Postman
- java傳送GET和post請求Java
- Vue中通過Axios向SpringBoot傳送get和post請求VueiOSSpring Boot
- httprequest- post- get -傳送請求HTTP
- file_get_contents傳送post請求
- SpringBoot使用Axios傳送請求,引數處理Spring BootiOS
- 在Java中,使用HttpUtils實現傳送HTTP請求JavaHTTP
- postman(二):使用postman傳送get or post請求Postman
- Go HTTP GET 請求可以傳送 body 嗎GoHTTP
- Go使用net/http庫傳送GET請求GoHTTP
- GET請求引數為中文時亂碼分析
- GET請求的引數丟失
- linux 下用 Wget 傳送 帶引數的請求Linuxwget
- cURL實現傳送Get和Post請求(PHP)PHP
- 043-socket程式設計傳送GET請求程式設計
- html頁面中如何傳送ajax請求HTML
- 如何在 Go 中傳送表單請求Go
- vue-cli3.x中使用axios傳送請求,配合webpack中的devServer編寫本地mock資料介面(get/post/put/delete)VueiOSWebdevServerMockdelete
- 請求引數的傳遞
- SpringBoot Get 請求接收 Date 型別引數Spring Boot型別
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- ajax中POST請求與引數(請求體)設定
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- HTTP GET請求傳bodyHTTP
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,jsoJavaHTTPclient協議JS
- Scrapy中傳送請求的固定邏輯?為什麼要這樣寫?
- 解決.NET Core Ajax請求後臺傳送引數過大請求失敗問題
- Jmeter —— jmeter利用取樣器中http傳送請求JMeterHTTP
- Golang:使用go-resty/resty傳送http請求get和postGolangRESTHTTP
- python+pytest介面自動化(4)-requests傳送get請求Python
- Postman傳送Post請求Postman