小编shl*_*pse的帖子

Jmeter和JSF,未调用commandLink操作的托管bean方法

我试图强调一个使用身份验证的相当简单的JSF Web应用程序,jMeter从不调用与按下的按钮关联的动作方法(在托管bean中).多个用户的身份验证(从CSV文件加载)完美运行(或者我认为).我将测试计划减少到最低限度,以便尝试调试这种情况.我有一个登录,一个带有commandLink的简单页面,其动作是ManagedBean中的一个方法(带有requestScope).

我的xpath提取器值是://input [@id ='javax.faces.ViewState']/@ value

我也试过一个正则表达式提取器,使用表达式id = \"javax.faces.ViewState \"value = \"(.+?)\与其中任何一个,它似乎工作正常(我曾经有一些viewState相关问题.

在他的POST请求(包含javax.faces.ViewState)上,我有$ {jsfViewState}作为值(jsfViewState是一个用户定义的变量,它保存从前一个GET方法保存的viewState).

带有commandLink的页面是(注意我故意硬编码了这个值,以便更容易地识别问题):

<h:body>
    <ui:composition template="/template/template.xhtml">
        <ui:define name="content">
            <c:set value="Category" target="#{menu}" property="title"/>
            <ui:repeat value="#{category.list}" var="cat">
                <h:form id="categoryForm">
                    <h:commandLink id="btnOrd" action="#{product.placeOrder(1)}">COMPRAR</h:commandLink>
                </h:form>
                <br/>
            </ui:repeat>

        </ui:define>
    </ui:composition>
</h:body>
Run Code Online (Sandbox Code Playgroud)

managedBean:

@Named("product")
@RequestScoped
public class ProductMBean {

    @Inject
    private ProductEBean productEBean;
    @Inject
    private UserProductEBean userProductEBean;

    public List<Product> getList(){
        return productEBean.findAll();
    }

    private void addMessage(FacesMessage message){
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

    public String placeOrder(long id){
        userProductEBean.createNewOrder(id);
        Product product = productEBean.findById(id);
        addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Your order of …
Run Code Online (Sandbox Code Playgroud)

java viewstate jsf jmeter managed-bean

6
推荐指数
0
解决办法
649
查看次数

标签 统计

java ×1

jmeter ×1

jsf ×1

managed-bean ×1

viewstate ×1