轉載自:https://www.cnblogs.com/lindows/p/10517839.html
import static net.grinder.script.Grinder.grinder
import static org.junit.Assert.*
import static org.hamcrest.Matchers.*
import net.grinder.plugin.http.HTTPRequest
import net.grinder.plugin.http.HTTPPluginControl
import net.grinder.script.GTest
import net.grinder.script.Grinder
import net.grinder.scriptengine.groovy.junit.GrinderRunner
import net.grinder.scriptengine.groovy.junit.annotation.BeforeProcess
import net.grinder.scriptengine.groovy.junit.annotation.BeforeThread
// import static net.grinder.util.GrinderUtils.* // You can use this if you’re using nGrinder after 3.2.3
import org.junit.Before
import org.junit.BeforeClass
import org.junit.Test
import org.junit.runner.RunWith
import java.util.Date
import java.util.List
import java.util.ArrayList
import HTTPClient.Cookie
import HTTPClient.CookieModule
import HTTPClient.HTTPResponse
import HTTPClient.NVPair
/**
-
A simple example using the HTTP plugin that shows the retrieval of a
-
single page via HTTP.
-
This script is automatically generated by ngrinder.
-
@author test
*/
@RunWith(GrinderRunner)
class TestRunner {public static GTest test
public static HTTPRequest request
public static NVPair[] headers = []
public static NVPair[] params = []
public static Cookie[] cookies = []
public static List lineList //存放參數文件記錄
public def custno
public def lineNumber = 0@BeforeProcess
public static void beforeProcess() {
HTTPPluginControl.getConnectionDefaults().timeout = 6000
test = new GTest(1, “ip”)
request = new HTTPRequest()
lineList = new File("./resources/test.txt").readLines(“UTF8”)
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(){
lineNumber = lineNumber%lineList.size()
custno = lineList.get(lineNumber)
nodeId = custno.split(",")[0]
agentId = custno.split(",")[1]
platformId = custno.split(",")[2]
HTTPResponse result = request.GET(“ip:端口/路徑?nodeId=KaTeX parse error: Expected 'EOF', got '&' at position 9: {nodeId}&̲agentId={agentId}&platformId=${platformId}&agentVersion=2.0.9&agentCursor”, params)println("---------------------"+result.getText())//獲取返回值 if (result.statusCode == 301 || result.statusCode == 302) { grinder.logger.warn("Warning. The response may not be correct. The response code was {}.", result.statusCode); } else { assertThat(result.statusCode, is(200)); }
}
}