Skip to content
Calvin Xiao edited this page Aug 5, 2013 · 8 revisions

Run me quickly

  • 要用Non-GUI的形式跑
jmeter -n -t demo.jmx -p demo.properties
  • 调正JVM启动参数,默认最大只用512M内存,可以搞大点。

  • 不要放显示结果的listener,只放一个“Generate Summary Results”,隔几分钟打印一次平均值就够了。当然,在GUI调试脚本时可以打开“View Result Tree”和“Summary Reports”

  • Http请求最好用HttpClient4 + Keep Alive

定义变量

像线程数,目标地址等定义成变量,可以随时修改非常方便,写到一个properties文件里,启动jmeter时用-p file 指定:

TARGET_HOST=localhost
TARGET_PORT=8080
THREAD_COUNT=50
THREAD_LOOP=2000

放一个User Defined Variables 里面定义 TARGET_HOST = ${__P(TARGET_HOST,localhost)},用户自定义变量TARGET_HOST的值取属性TARGET_HOST的值,如果不存在取默认值localhost。然后后面用到的地方${TARGET_HOST}直接使用。

但有个特例是THREAD_COUNT,可能是变量作用域的缘故,不能定义成用户变量,所以必须直接在threadGroud里写${__P(THREAD_COUNT,50)}。

Http Proxy

如果要用JMeter压页面,这是个很有用的功能。也页面一轮狂点,就能生成相应的脚本,不用从头开始写。

  1. 在工作台那里放一个HTTP Proxy Server,修改端口为8082什么的,然后启动它,还可以在Url Pattern to exclude里把*.jpg之类静态内容的屏蔽掉。

  2. 在工作台里再放一个Logic Controller->Recording Controller,然后什么脚本都会记录在这里。

  3. 在浏览器的代理服务器一栏,指向localhost的,你之前设定的端口。

  4. 一轮狂点,搞定。

Http测试Tips

  1. Restful与GUI就用Http Request了,SOAP用SOAP/XML-RPC request。

  2. 每个线程组里放一个Cookie Manager 和 放公共值的Http请求默认值。

返回参考手册