我想用Jmeter对我的jsf应用程序(使用Primefaces)进行压力测试,我遇到了一个奇怪的(但意料之中的)问题。
我使用的jmeter设置是好的和工作的,它使用正则表达式提取器来获取视图状态,JSESSIONID的HTTP URL重写修饰符,HTTP Cookie管理器和记录控制器。
我想使用的记录场景是去一个页面与一些Primefaces 动态 tabviews和内部的选项卡有PF命令按钮,用于保存数据。
现在的问题是这样的:当我用保存正则表达式提取的变量替换记录的ViewState时,带有表视图的页面无法导航到其他选项卡(并且无法呈现保存按钮),因此页面无法模拟保存。
我发现的是,当你在动态tabview中改变选项卡时,Primefaces会用一个新的视图状态做一个ajax请求,随后的POST请求必须使用这个视图状态来理解改变的选项卡。
还有其他人以某种方式解决了这个问题吗?
提前感谢!
在您发送请求之前,我使用get方法获得第一个屏幕,使用正则表达式保留id。然后我会发送请求。对于打开的每个新屏幕,必须重新保存覆盖前一个屏幕的viewState。
- (简单的控制器)
- [html请求]打开视图e保存viewState(方法GET)
- [正则表达式提取器]extract ${myViewState}
- [html request]你的请求发送${myViewState}
- 。
- [html请求]其他打开视图e保存viewState(方法GET)
- [正则表达式提取器]extract ${myViewState}
- [html request]你的其他请求发送${myViewState}
- [html请求]打开视图e保存viewState(方法GET)
…对于打开的每个新屏幕,必须重新保存覆盖前一个的viewState