http采样器用来向web服务器发送HTTP/HTTPS请求。并且可以控制jmeter是否解析图像或其他HTML的嵌入式资源,并且通过http请求获取他们。jmeter支持的嵌入式类型如下:
- images
- applets
- stylesheets (CSS) and resources referenced from those files
- external scripts
- background images (body,table, TD, TR)
- background sound
http的 默认解析器是“org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser”
可以通过“jmeter.properties”文件中的”htmlparser.className”属性改变。
如果你要发送多个请求,考虑使用“HTTP Request Defaults”配置元件;
如果需要手动添加请求,请参考“ HTTP(S) Test Script Recorder”,当请求有很多参数的时候,这个脚本可以帮助你节省时间。
jmeter有两种不同类型的重点内容请求方式:
AJP/1.3 Sampler
使用Tomcat mod_jk 协议(在不需要Apache httpd的情况下使用AJP模式测试Tomcat),AJP采样器不支持混合文件上传;只有第一个文件被使用。
HTTP Request
http请求使用下拉列表来选择哪种方式来实现HTTP协议:
Java
通过JVM来实现HTTP请求。这种方式和下面要讲的HttpClient 比较有一定的局限性。
HTTPClient4
使用Apache HttpComponents HttpClient 4.x。
Blank Value
选择空项,主要根据jmeter的默认设置或者根据jmeter.properties中的设置
java方式的一些局限:
- 连接的重用不受控制。当连接被JMeter释放后,它可能被同一个线程重用,也可能被重用。
- 这种API最适合单线程使用—通过系统属性定义多种设置来应用于所有连接。 不支持虚拟hosts。
- 仅支持如下方式的请求:GET, POST, HEAD, OPTIONS, PUT, DELETE 和TRACE 不支持秘钥测试
如果请求需要服务器或者代理登陆授权,你可以添加HTTP Authorization Manager Configuration Element控件。对于正常的登陆,你可以找到表单的submit 按钮,然后创建HTTP请求,使用适当的方式(通常是POST请求),然后添加表单参数。如果页面使用HTTP,你可以通过JMeter Proxy 的方式登陆。
SSL上下文被每一个线程使用。如果你想使用单独的SSL上下文,配置如下:
https.sessioncontext.shared=true
默认情况下,SSL上下文在整个测试过程中被保留。SSL session可以通过设置使每次迭代都被重置。
https.use.cached.ssl.context=false
默认情况,jmeter使用SSL协议的TLS级别。如果服务器需要不同的等级,例如SSLv3,可以通过如下设置
https.default.protocol=SSLv3
如果请求需要使用cookies,你可以添加HTTP Cookie Manager。你既可以添加这些组件都Thread Group也可以添加到HTTP Request。如果多个请求公用授权或者cookies。可以添加到Thread Group中,这样所有请求可以共用授权和cookies。
参考内容:http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request