使用JMeter进行压力测试

JMeter是一款优秀的开源压力测试工具。网上有不少介绍的文章,比如DeveloperWorks上有一篇。不过脚本的制作比较麻烦,自己手动输入参数比较不实际。cnblog上有一测试达人在这里介绍了一个免费工具Badboy,可以录制在IE上的操作并导出JMeter脚本。Badboy本身是一个Web自动化测试工具。不足的是,一些Badboy录制的动作JMeter并不支持,比如多窗口操作。在导出jmx文件的时候Badboy会提示不能导出的内容。Badboy也有一些不够智能的地方,比如写死了服务器地址,而不是创建一个默认的HTTP访问器。
一开始使用JMeter进行压力测试完全是冲着JMeter的Cookie Manager功能去的。如果使用简单的工具,比如apache自带的ab工具,则要想方设法绕过应用程序的登录机制。使用Cookie Manager虽然不需要配置,但要注意的是,要把发来初始cookie的地址给包括进来。我测试的系统在/login.do这里发放cookie,但我直接访问/acegi_login登录,结果就丢掉了cookie,导致后续步骤失败。

开始学用Selenium

今天终于知道了Selenium到底是怎么一个原理。以前只是看过一些Java代码的片断,觉得用Java测试Web的主意很好,可惜没有深究。今天用一个多小时的时间看了看,基本上明白了。也理清了Selenium Core, Selenium RC和Selenium IDE的关系。
要看入门文章的话,这里有三篇:透明的江南白衣的,还有developworks的。再加上主页上的usage,就差不多了。核心部分的Selenium Core,其实是一些javascript代码和类库,底层用了JSUnit,这个以后再研究。TestSuite通过一个表格把一堆TestCase组合起来。TestCase同样通过表格把一些指令组合起来。这就写好了测试用例。而我看到的那些java代码的片断,实际上是Selenium Remote Control。通过启动一个Firefox作为Test Server,然后再发送指令过去。而Selenium IDE的作用主要是录制一些Web操作动作,有点WinRunner的意思。具体的操作可以查阅Reference。
另外,在持续集成方面,除了通过使用Selenium RC,还可以自动启动程序,最后的结果被Post到一个预先设定的URL。
P.S. CSDN blog是怎么做到弹出像IE那样对话框却不会像以前那样所有的FF窗口缩小的?还是FF自己改进了?