4、Sampler
4.1 sampler简介
sampler可以看成是指向当前取样器的指针。
sampler映射org.apache.jmeter.samplers的Sampler接口。
参见:
https://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html
4.2 常用方法
4.2.1 sample
- 方法
SampleResult sample(Entry e)
- 功能
Obtains statistics about the given Entry, and packages the information into a SampleResult
5、prev
5.1 prev简介
prev提供对当前取样器结果的访问能力。
prev映射org.apache.jmeter.samplers的SampleResult类。
参见:
https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
5.2 常用方法
5.2.1 getResponseCode
- 方法
public String getResponseCode()
- 功能
获取响应状态码
sc = prev.getResponseCode()
log.info('status code is: ' + sc)
//output
status code is: 200
5.2.2 setResponseCodeOK
- 方法
public void setResponseCodeOK()
- 功能
设置响应状态码为OK对应的状态码(OK)
prev.setResponseCodeOK()
sc = prev.getResponseCode()
log.info('status code is: ' + sc)
//output
status code is: 200
5.2.3 setResponseCode
- 方法
public void setResponseCode(String code)
- 功能
设置响应状态码
prev.setResponseCode("888")
sc = prev.getResponseCode()
log.info('status code is: ' + sc)
//output
status code is 888
5.2.4 isResponseCodeOK
- 方法
public boolean isResponseCodeOK()
- 功能
判断响应状态码是否为OK对应的状态码(200)
prev.setResponseCode("888")
yn = prev.isResponseCodeOK()
log.info('yn is: ' + yn)
//ok
yn is false
5.2.5 getResponseMessage
- 方法
public String getResponseMessage()
- 功能
获取响应消息
prev.setResponseCode("888") //不会影响响应消息
rm = prev.getResponseMessage()
log.info('rm is: ' + rm)
//output
rm is OK
5.2.6 setResponseMessage
- 方法
public void setResponseMessage(String msg)
- 功能
设置响应消息
prev.setResponseMessage("not see it")
rm = prev.getResponseMessage()
log.info('rm is: ' + rm)
//output
rm is: not see it
5.2.7 setResponseMessageOK
- 方法
public void setResponseMessageOK()
- 功能
设置响应消息为OK
prev.setResponseMessageOK()
rm = prev.getResponseMessage()
log.info('rm is: ' + rm)
//output
rm is: OK
5.2.8 setResponseOK
- 方法
public void setResponseOK()
- 功能
设置响应成功(状态码、消息、处理结果)
prev.setResponseOK()
sc = prev.getResponseCode()
rm = prev.getResponseMessage()
log.info('sc is: ' + sc + ',rm is: ' + rm)
//output
sc is: 200,rm is: OK
5.2.9 getThreadName
- 方法
public String getThreadName()
- 功能
获取线程名
tname = prev.getThreadName()
log.info('tname is: ' + tname)
//output
tname is: Thread Group 1-1
//编号规则:
//线程组名 线程组编号-线程组下线程编号
5.2.10 setThreadName
- 方法
public void setThreadName(String threadName)
- 功能
设置线程名
prev.setThreadName("tg_1_1")
tname = prev.getThreadName()
log.info('tname is: ' + tname)
//output
tname is tg_1_1
5.2.11 getSampleLabel
- 方法
public String getSampleLabel()
- 功能
获取取样器名称
5.2.12 getSampleLabel
- 方法
public String getSampleLabel(boolean includeGroup)
- 功能
获取取样器名称(包含线程组)
sname = prev.getSampleLabel()
snameg = prev.getSampleLabel(true)
log.info('sname is: ' + sname + ',snameg is: ' + snameg)
//output
sname is: HTTP Request,snameg is: Thread Group:HTTP Request
5.2.13 setSampleLabel
- 方法
public void setSampleLabel(String label)
- 功能
设置取样器名称
prev.setSampleLabel("HTTP_Request")
sname = prev.getSampleLabel()
snameg = prev.getSampleLabel(true)
log.info('sname is: ' + sname + ',snameg is: ' + snameg)
//output
sname is: HTTP_Request,snameg is: Thread Group:HTTP_Request
5.2.14 getAssertionResults
- 方法
public AssertionResult[] getAssertionResults()
- 功能
获取取样器断言结果
ars = prev.getAssertionResults()
ars.each{
log.info(it.getName() + ': ' + it.getFailureMessage())
}
//output
Response Assertion: Test failed: code expected to contain /304/
Response Assertion: null
5.2.15 setResponseData
- 方法
public void setResponseData(byte[] response)
- 功能
prev.setResponseData([97,98,99,100] as byte[])
rd = prev.getResponseData()
rds = new String(rd,"UTF-8")
log.info('rds is: ' + rds)
//output
rds is: abcd
5.2.16 setResponseData
- 方法
public void setResponseData(String response, String encoding)
- 功能
设置响应数据。response为设置的响应字符串,encoding为字符编码,若为空则默认为操作系统字符集。
prev.setResponseData("报文数据","UTF-8")
rd = prev.getResponseDataAsString()
log.info('rd is: ' + rd)
//output
rd is: 报文数据