软件测试中的一个ajax的经典测试用例

[1]写index.jsp文件
 <%@ page contentType="text/html;charset=gb2312"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>

<title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="description" content="This is my page">
 <link rel="stylesheet" type="text/css" href="styles.css">
 </head>

<body>
 <script type="text/javascript">
 var req;

function validate() {
 var idField = document.getElementById("userid");
 var url = "servlet/ValidateServlet?id=" + escape(idField.value);
 if (window.XMLHttpRequest) {
 alert("0");
 req = new XMLHttpRequest();
 }else if (window.ActiveXObject) {
 alert("1");
 req = new ActiveXObject("Microsoft.XMLHTTP");
 }
 if(req){
 req.open("GET", url, true);
 req.onreadystatechange = callback;
 req.send(null);
 }
 }
 function callback() {
 if (req.readyState == 4) {
 if (req.status == 200) {
 parseMessage();
 // update the HTML DOM based on whether or not message is valid
 }else{
 alert ("Not able to retrieve description" + req.statusText);
 }
 }
 }
 function parseMessage() {
 var message = req.responseXML.getElementsByTagName("message")[0];
 var name = req.responseXML.getElementsByTagName("name")[0];
 setMessage(message.firstChild.data,name.firstChild.data);
 }
 function setMessage(message,name) {
 var userMessageElement = document.getElementById("userIdMessage");
 userMessageElement.innerHTML = "<font color="red">" + message + " you "+name+"</font>";
 }
 </script>
 <div id="userIdMessage"></div>
 <input type="text"
 size="20"
 id="userid"
 name="id"
 onkeyup="validate();">
 </body>
 </html>
 
 [2] 写servlet/ValidateServlet.java类
 /*
 * 创建日期 2005-8-3
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 项 - Java - 代码样式 - 代码模板
 */
 package com;//com包需要自己创建.

import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.HashMap;

import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

/**
 * @author Administrator
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 项 - Java - 代码样式 - 代码模板
 */
 public class ValidateServlet extends HttpServlet {

/**
 * Constructor of the object.
 */

private ServletContext context;
 private HashMap users = new HashMap();

public ValidateServlet() {
 super();
 }