从BadBoy导入脚本并调试
一、 利用BadBoy录制自动化脚本,录制事件为禅道中创建bug
在badboy地址栏输入被访问的URL地址
录制成功后截图如下:
录制完成后在badboy窗口中回放确定脚本录制的正确性,回放成功后清除响应,然后导出为JMeter脚本。
清除响应: Setp1 (右键)->clear Response
导出JMeter脚本: File->Export to JMeter
第二步: 在JMeter窗口中打开BadBoy中录制的.jmx的脚本文件
打开后如下所示:
第三步: 添加“察看结果树”并调试脚本
1. 添加监视器->“察看结果树”
2. 运行脚本,在“察看结果树”中查看运行情况
从上图可以看到回放的结果,绿色表示通过,红色表示失败。 看到这些失败的红色不要害怕,我们来分析一下。
3. 选择“察看结果图”中的HTML视图能够更加直观的查看运行结果
4. 删除无用的http请求
可以看到红色对应项的请求均为null, 且响应结果为java异常。对应到step中的请求步骤,可以发现图中红色标示的http请求项为":///...",对应的"服务器名称为IP"为空。
度娘告诉我这可能是禅道系统请求的本地资源,至于是与不是,我们不管它,因为它不影响我们的脚本运行结果,直接在step1下选中这些项,删除即可。
清除后的HTTP请求如下所示,是不是干净多了?
5. 继续调试->回放结果
此时可以再次回放,查看回放结果。为了回放结果更加直观,按上图红线标识所示,选中添加bug的页面,给bug 的标题(title)取名为NewBugByJMeter;
6. 清除结果树的log
按如下步骤清除结果树中的log
7.点击回放按钮,回放脚本, 查看禅道的bug列表
至此, bug添加成功,说明JMeter脚本没有问题了。
补充两个我遇到的问题:
1. Jmeter中查看HTML时的乱码问题
解决办法:
Jmeter安装目录/bin/jmeter.properties中sampleresult.default.encoding默认为ISO-8859-1,将参数修改为
sampleresult.default.encoding=utf-8 即可,注意将注释符号#去掉。
2. Jmeter脚本回放成功,但禅道系统中并没有增加相用的bug,也就是bug添加失败。
解决办法:
将“添加bug”页面的结果树-响应结果(选择text视图)复制到一个txt文件中,并重命名为html, 用浏览器打开就能够很直观到看到这个页面的情况。
从页面中我发现有一个sql插入错误,其中有一项"HTTP-X-REQUEST"值为true,但数据库中的bug表里面是没有这个字段的,初步估计为Jmeter自带的。
删除该项之后,重新运行脚本成功。
删除Jmeter自带的"HTTP-X-REQUEST"项后的结果如下所示