发表于: 2020-06-20 23:27:43
1 1807
今天完成的事情:
1. 熟悉 jmeter
遇到的问题:
1. badboy 录制的脚本完整的无法导出为 jmeter 能识别的格式
在 badboy 内录制测试好了脚本才发现导出到 jmeter 里只有一部分。
解决方式:直接用 jmeter 录制脚本
2. 脚本的 csrf 校验无法通过
解决方法:使用正则表达式提取 csrf 信息再注入登录页的 post 参数中
3. 正则表达式提取信息错误
原因:
我的 csrf 验证信息是一个小于 1 的随机小数。原来的正则表达式是这样写的 0\.(\d){10,} 结果发现每次都只能提取到一个数字。因为 jmeter 默认只取 () 内的值,所以只拿到了一个数字。
解决方法:
重写正则表达式 (0\.[0-9]{10,})
这样的话正则表达式只有一个括号,括号内的值就是我想提取的内容。
4. cookie 无法获取
解决方法:修改 jmeter 配置文件 jmeter.properties
CookieManager.check.cookies=true
去掉上面这行的注释。
收获:
1. 了解了 jmeter 的基本用法
a,首先 jmeter 的脚本录制需要使用第三方浏览器,设置浏览器代理为 127.0.0.1:8888 (jmeter 的代理)
b,然后打开 jmeter,开始设置进入录制流程
c,开始录制脚本
然后就可以开始再浏览器中进行各种网页操作
录制完成后停止,回到 jmeter 中。
d,回到 jmeter 就可以开始编辑刚刚录制好的脚本
由于我的登录表单中使用了 csrf 校验(其实是没必要的),我需要使用正则表达式从表单页提取出 csrf 信息填入 post 数据中。
首先我在登录页添加了一个正则表达式提取器:
可能我们不知道提取的信息对不对,同样我们可以在登录页添加一个查看结果树的监听器,在这里实验一下正则表达式:(注意,这里的正则表达式实验并不能反映出我今天日报中遇到的那个问题,使用原来的正则表达式一样实验成功,可是提取的数据是不对的)
实验好了之后我们开始编辑之前添加的正则表达式提取器:
然后在提交的表单中我们就可以引用刚刚正则提取的参数:
跑一下测试,用查看结果树发现能够访问到需要登录的网页就是成功了。
2. 使用 jmeter 完成了脚本的录制,脚本中添加了用户的自动登录
脚本录制了网站的用户登录与登出以及各种其他的跳转。
明天的计划:
1. 使用脚本完整的做依次压测
今天一开始做过一次,但是当时使用的脚本没有登录功能。
评论