テストに次のコードがあります。
WebResponse response = webConversation.getResponse(loginUrl);
System.err.println("Session ID:" + webConversation.getCookieValue("JSESSIONID"));
WebForm form = response.getFormWithID(loginFormId);
for(String parmName: form.getParameterNames()){
if(loginDayName.equals(parmName)){
form.setParameter(parmName, day);
}
else if(loginMonthName.equals(parmName)){
form.setParameter(parmName, month);
}
else if(loginYearName.equals(parmName)){
form.setParameter(parmName, year);
}
else if(loginPersonIdName.equals(parmName)){
form.setParameter(parmName, person.getPersonId());
}
}
response = form.submit();
System.err.println(response.getText());
したがって、ログイン URL への最初の呼び出しはフォームを返す必要があります。次に、パラメーターを変更し、フォームを送信元と同じサーブレットに送信します。
コントローラーのデバッグは、2 つのセッション ID でフォーム データを 2 回取得していることを示しています。2 番目は私の webConversation と一致するセッション ID であり、最初の ID が実際にその人をログインさせるため、常に失敗します。
これは、現時点で私のテストで唯一の form.submit() です。
私は当惑しています。ツールの使い方が間違っていませんか?それともこれはバグですか?