Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败

一.问题描述
Jmeter导入badboy的jmx文件后,新增后置处理器的正则表达式提取器提取URL板块ID作为变量提供给POST发帖链接作为参数,但是该参数并没有提取到预期的论坛板块ID,导致无法在该板块正常发帖。

二.问题详细描述
1.Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
2.通过上面的POST消息从服务器返回如下URL链接,其他1.page和3.page是两个论坛板块的ID,现在需要获取这2个ID作为变量来实现随机选取其中的1个ID来自动发帖。
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败

3.Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
4.通过上面的正则表达式提取器(正则表达式href=".show/(.).page,模板template是$0$表示对服务器返回的response body全文匹配,匹配数字match No是0表示随机匹配)获取两个论坛板块的ID并将ID定义为变量moduleID。
5.Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
6.通过在上面的POST消息中定义forum_id为${moduleID}来自动获取论坛板块ID,但是在发送POST消息后,从服务器返回的response body中发现错误提示如下:
Caused by: java.lang.NumberFormatException: For input string: "href="/jforum-2.1.9/forums/show/3.page"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at net.jforum.context.web.WebRequestContext.getIntParameter(WebRequestContext.java:343)
at net.jforum.view.forum.PostAction.insertSave(PostAction.java:944)
... 32 more

URL is: /jforum-2.1.9/jforum.page?null
END ERROR STACK TRACE-->
7.通过查看POST消息,并和正确的POST消息对比发现了问题,forum_id提取错误。
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
错误
POST http://127.0.0.1:8080/jforum-2.1.9/jforum.page
POST data:
action=insertSave&module=posts&preview=0&forum_id=href%3D%22%2Fjforum-2.1.9%2Fforums%2Fshow%2F3.page&start=&subject=post33&addbbcode24=%23444444&addbbcode26=12&helpbox=%E9%8E%BB%E6%84%AE%E3%81%9A%3A+%E9%8F%8D%E7%85%8E%E7%B4%A1%E9%8D%99%EE%88%99%E4%BA%92%E8%B9%87%EE%82%A6%E2%82%AC%E7%86%B7%EE%9A%9C%E9%90%A2%E3%84%A5%E6%B9%AA%E9%96%AB%E5%A4%8B%E5%AB%A8%E9%90%A8%E5%8B%AC%E6%9E%83%E7%80%9B%E6%A4%BE%E7%AC%82&message=post33&disable_html=on&attach_sig=on&notify=on&topic_type=0&poll_label=&poll_option=&poll_option_count=1&poll_option_1=&poll_length=0&edit_attach_ids=&delete_attach=&total_files=1&comment_0=

正确
POST http://127.0.0.1:8080/jforum-2.1.9/posts/list/0/49.page
POST data:
action=insertSave&module=posts&preview=0&forum_id=1&start=&subject=post33&addbbcode24=%23444444&addbbcode26=12&helpbox=%E9%8E%BB%E6%84%AE%E3%81%9A%3A+%E9%8F%8D%E7%85%8E%E7%B4%A1%E9%8D%99%EE%88%99%E4%BA%92%E8%B9%87%EE%82%A6%E2%82%AC%E7%86%B7%EE%9A%9C%E9%90%A2%E3%84%A5%E6%B9%AA%E9%96%AB%E5%A4%8B%E5%AB%A8%E9%90%A8%E5%8B%AC%E6%9E%83%E7%80%9B%E6%A4%BE%E7%AC%82&message=post33&disable_html=on&attach_sig=on&notify=on&topic_type=0&poll_label=&poll_option=&poll_option_count=1&poll_option_1=&poll_length=0&edit_attach_ids=&delete_attach=&total_files=1&comment_0=

8.为什么forum_id提取错误了呢?通过查看Regester(正则表达式分析工具)和debug sample取样器,发现在引用变量moduleID的时候,变量名填写错误,应该填写${moduleID_g1},这里g1表示匹配URL中的数字1,g0表示匹配的整个URL路径
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
debug sample取样器显示如下:
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败

9.将引用变量${moduleID}修改为${moduleID_g1}后,问题解决。
Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败

Jmeter导入badboy的jmx文件后,使用后置处理器的正则表达式提取器提取URL论坛板块ID失败

上一篇:python3.x内置函数


下一篇:mysql—Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.