我有一个包含帖子列表的页面,每个帖子都有一个评论链接,点击它,它显示一个文本区域(使用javascript),用户填充这个文本区域,然后按回车键发布评论(使用ajax),这里是我在发布评论后在浏览器中看到的表单数据:
feedForm:feedForm
feedForm:j_idt221:0:j_idt222:j_idt286:commentText:hi
feedForm:j_idt221:1:j_idt222:j_idt286:commentText:
javax.faces.ViewState:-1278084094245361929:-1028657209799449340
javax.faces.source:feedForm:j_idt221:0:j_idt222:j_idt286:commentText
javax.faces.partial.event:keypress
javax.faces.partial.execute:feedForm:j_idt221:0:j_idt222:j_idt286:commentText feedForm:j_idt221:0:j_idt222:j_idt286:commentText
javax.faces.partial.render:feedForm:j_idt221:0:j_idt222:j_idt286:commentText feedForm:j_idt221:0:j_idt222:j_idt286:feedcomments
javax.faces.behavior.event:keypress
javax.faces.partial.ajax:true
我所做的是我在Jmeter中创建了一个post HTTP请求,并将上述表单数据作为参数添加,当运行测试计划时,我没有得到错误,但没有添加注释。
这是我发布评论的JSF代码:
<h:inputTextarea id="commentText" placeholder="#{msg['writeacomment.text']}" title="#{msg['writeacomment.text']}"
onkeypress="if(event.keyCode == 13 && !event.shiftKey){event.preventDefault();return true;}else{return false;}"
value="#{feedBean.commentText}" maxlength="2000" onkeyup="countChar(this, '#{msg['remaining.text']}')">
<f:ajax event="keypress" listener="#{feedBean.postComment(cc.attrs.value)}" render="commentText feedcomments" />
</h:inputTextarea>
请告知如何修复
问题是我在我的post请求中传递了javax.faces.ViewState
硬编码,这是错误的,所以我必须在之前的请求中为视图状态创建User defined variable
和CSS/JQuery Extractor
,以便能够提取视图状态并在下一个请求中使用它(当然在同一页面中)。
引用:http://anahorny.blogspot.in/2011/03/jmeter-handling-dynamic-viewstate.html
http://jmeter.apache.org/usermanual/component_reference.html CSS/JQuery_Extractor