使用Jmeter进行需登录的Web页面性能压力测试
使用Jmeter进行需登录的Web页面性能压力测试,首先必须解决登录的问题。要登录,应该模拟登录过程,即传递用户名和密码请求登录处理URL进行登录,然后让Jmeter维护会话Session,在同一个会话Session里,继续请求目标测试页面,进行测试。在Jmeter里有两种机制可以维护Session会话,一是新建HTTP URL Re-writing Modifier,一个是新建HTTP Cookie 管理器。在HTTP URL Re-writing Modifier需要指定session参数名称,有的是jsessionid、JSESSIONID,有的是其他名字,所以我觉得还是HTTP Cookie Manager好,它会自动地维护一个会话Session。
摘自IBM网站文章使用 JMeter 完成常用的压力测试的一段话:
在servlet/jsp规范中对于session的状态跟踪有2种方式:
- 使用cookie,保留和传递sessionid。它不要求程序对于url有什么特殊的处理,但是要求浏览器允许cookie。在这个例子中,就是这种情形。
- 使用url重写,每次显式的在浏览器和服务器之间传递sessionid。它要求程序对url进行编码,对浏览器没有要求。
对于第二种情形,可以使用JMeter前置管理器中的http url重写修饰符来完成。对于Tomcat,Session参数是jsessionid,路径扩展使用";"。使用url编码时需要注意,必须将浏览器的 cookie功能关闭。因为url编码函数,如encodeURL,会判断是否需要将sessionid编码到url中。当浏览器允许cookie时,就不会进行编码。
如果cookie而不是session来保存用户安全信息,那么直接使用http cookie管理器就行了。此时,需要将使用的cookie参数和值直接写到管理器中,由它负责管理。对于其它的cookie使用,也是如此操作。