本文通过badboy录制脚本,操作内容是在tapd上创建缺陷,并更改缺陷状态。具体内容涉及录制脚本,脚本调试,常见问题解决,以及会用到的请求关联。
1.打开badboy,点击红色按钮,开始录制脚本。在空白行输入要访问网址,见下图。输入账户,密码进行登录,登录后开始创建缺陷,缺陷状态为新,此时将缺陷状态更改为拒绝,进行流转,此时缺陷状态为已拒绝。只需要在右边进行操作即可,badboy会根据操作自动录制脚本。
2.录制结束后,关闭上图红色按钮。已录制好脚本见左图,此时需要将改脚本保存为.jmx格式,以便在jmeter中打开。点击文件——Export to jmeter ,然后将录制好的脚本test1.jmx保存桌面即可。
3.打开jmeter——文件——打开,选择桌面上的test1.jmx
4.打开后见下图,会有很多请求。很多都是.js文件,而这些和业务流程无关,并不会影响操作。为了清新明了,可以先删除或者禁用。
5.这里为了看的清楚,把这些js文件,都删掉了。然后添加监听器——察看结果树,方便调试看结果。
6.这时候,可以先大致看一下请求文件,会不会出现jmeter常见的几个问题(乱码码,请求重定向等),如果存在需要手动修改。
下面,是通过查看请求发现的几个常见问题:
(1)**重定向方式:**登录会传送账户名密码,为了安全一般都是post请求,此时需要手动修改重定向方式为跟随重定向(可自行了解两者的区别)。
(2)**编码问题:**创建缺陷提交内容中有乱码,需要将内容编码填写UTF-8支持中文,并将提交字段编码?下打钩,否则不会生效。
7.此时,可以线运行脚本,根据结果再进行调试。结果返回都为绿色,并不代表脚本运行成功,需要去tadp看是否创建了缺陷。结果,并没有创建缺陷。
8.根据请求结果调试脚本,经过多次调试,最后发现问题,将HTTP Cookie Manager中的cookie policy值rfc2109改为compatibility(相关内容自行了解)。
清空结果树内容,重新运行,发现已经创建了缺陷,但状态是新,而不是拒绝。继续调试。
9.最后发现创建缺陷id与修改状态的url中id不一致,最后发现修改状态的id是要从创建缺陷响应页面中获得bugid。此时需要做请求关联,即后面请求需要使用前面请求的响应数据作为变量值。
10.在创建缺陷页面后面添加后置处理器——正则表达式提取器,来提取响应数据中的bug_id。在创建缺陷的响应数据中,搜索bug_id,然后用正则表达式提取。
变量名称id,下次引用时使用 ${id}即可。最简单的正则表达式:左边界值(.+?)右边界值(相关内容自行学习)
11.然后将修改缺陷状态的bugid 用正则中变量更换。
12.清空结果树,再次运行。可见修改缺陷状态的请求bugid为创建的id,缺陷状态也更新为已解决。
13.已成功创建缺陷,并成功修改状态为已拒绝。
14.这样一个小小的脚本就创建完成,为了使脚本更灵活,可以使用参数,这里就不详细说明了。另,将脚本冗余的请求,已删除,最终简化如下。