在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, "www.baidu.com")
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"))
// 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()
// =========上面是我刚才添加的参数=========
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))
// 这是我通过引导页手动添加的断言
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()
List<NVPair> paramList = new ArrayList<NVPair>()
paramList.add(new NVPair("accesstoken", "xxxxxxxxx"))
2、直接在TestRunner类的静态变量中添加 headers 和 params
在整个类最前面定义静态变量的地方,直接给变量赋值:
// 添加headers
public static NVPair[] headers = [
new NVPair("Accept-Language", "en-US,zh-CN;")
]
public static NVPair[] params = [
new NVPair("accesstoken", "xxxxxxxxxx")
]
3、在 @Test 注解的方法中添加 headers 和 params
// 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[])
HTTPResponse result = request.GET("https://www.baidu.com", [new NVPair("accesstoken", "xxxxxx")] as NVPair[])
到底选择哪种方式,要根据具体的参数类型和业务场景来决定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。