内容简介
第一部分 关键概念介绍
第1章 Extreme Programming介绍
1.1 极限编程概览
1.1.1 极限编程开发方法的四大价值
1.1.2 极限编程的五个原则
1.2 极限编程的12个实践原则
1.2.1 计划的制定
1.2.2 小版本
1.2.3 简单设计
1.2.4 测试
1.2.5 持续整合
1.2.6 重构
1.2.7 配对编程
1.2.8 代码共享
1.2.9 每周只工作40小时
1.2.10 现场客户
1.2.11 隐喻
1.2.12 编码标准
1.3 采用极限编程吗
1.4 小结
第2章 J2EE部署
2.1 概述
2.2 JAR文件
2.2.1 JAR文件和applet
2.2.2 可执行的JAR文件
2.3 Web应用程序和WAR文件
2.4 EJB和EJB JAR文件
2.5 企业级应用程序和EAR文件
2.6 小结
第3章 应用程序范例
3.1 概述
3.2 简单范例:基于Model2的HelloWorld
3.3 范例:宠物商店
3.4 宠物商店的最初版本
3.4.1 model类(公共的接口)
3.4.2 dbmodel类(实现)
3.4.3 数据库模型
3.4.4 Web接口
3.4.5 构建系统
3.5 用测试数据设置数据库:Ant小试牛刀
3.6 完整的代码清单
3.6.1 model包的完整代码清单
3.6.2 dbmodel包的完整代码清单
3.6.3 test包的完整代码清单
3.6.4 JSP和Web.xml的完整代码清单
3.7 小结
第二部分 掌握工具
第4章 使用Ant进行持续整合
4.1 概述
4.2 Ant使用基础
4.3 标准目标
4.3.1 简单的范例
4.3.2 使用特性一起运作
4.3.3 路径设置和fileset设置
4.3.4 条件性目标
4.3.5 使用过滤器
4.3.6 嵌套构建
4.4 小结
第5章 使用Ant建立Java应用程序
5.1 概述
5.2 Hello World Model项目
5.2.1 model类概览
5.2.2 为Model建立项目目录结构
5.2.3 为共享类库建立构建文件
5.2.4 model项目构建文件的分析
5.2.5 运行Ant构建文件
5.3 Hello World应用程序项目
5.3.1 应用程序的Java类概览
5.3.2 为应用程序建立项目目录结构
5.3.3 为独立应用程序建立清单文件
5.3.4 为独立应用程序建立Ant构建文件
5.4 Hello World主项目
5.4.1 建立主构建文件
5.4.2 关于主构建文件的分析
5.5 applet项目
5.5.1 applet类概览
5.5.2 为applet程序建立构建文件
5.5.3 使用Ant构建applet程序
5.6 Hello World功能翻新
5.7 小结
第6章 使用Ant建立J2EE应用程序
6.1 概述
6.2 Hello World
6.3 Web应用程序项目
6.3.1 Web应用程序项目的目录结构
6.3.2 HelloWorldServlet.java
6.3.3 HelloWorldServlet分析
6.3.4 HelloWorld.jsp
6.3.5 HelloWorld Web应用程序的部署描述符
6.3.6 HelloWorld Web应用程序的构建文件
6.3.7 构建和部署Web应用程序
6.3.8 运行Web应用程序
6.3.9 HelloWorld.jsp applet传递
6.3.10 在WAR文件中包含applet
6.4 企业级JavaBean
6.4.1 企业级Bean项目的目录结构
6.4.2 HelloWorld实体Bean
6.4.3 会话Bean
6.4.4 Shadow代理Bean
6.4.5 企业级JavaBean部署描述符
6.4.6 企业级Bean的构建文件
6.4.7 企业级Bean构建文件的分析
6.4.8 在Web应用程序构建文件中定义ejb特性
6.4.9 运行构建文件
6.5 EAR企业级应用程序
6.5.1 HelloWorld主项目构建文件
6.5.2 企业级应用程序构建文件的分析
6.5.3 企业应用程序部署描述符
6.6 宠物商店案例学习
6.7 小结
第7章 使用JUnit进行单元测试
7.1 JUnit概述
7.1.1 编写一个测试案例
7.1.2 使用Ant整合JUnit
7.2 案例研究:在宠物商店案例中加入实体Bean
7.2.1 现有的JUnit测试概述
7.2.2 在宠物商店案例中加入EJB
7.2.3 建立一个Ant构建文件用以部署我们的实体Bean
7.2.4 修改Test构建文件用以测试我们的实体Bean
7.2.5 学习案例的小结
7.3 小结
第8章 使用Cactus测试容器服务
8.1 概述
8.2 为什么要做容器内测试
8.2.1 隔离测试:模拟对象
8.2.2 上下文测试:整合测试
8.2.3 一个混合手法
8.3 为什么使用Cactus
8.4 安装Cactus
8.4.1 服务器端安装
8.4.2 客户端安装
8.4.3 一个简单的范例
8.5 Cactus系统架构
8.5.1 开始执行
8.5.2 beginXXX()方法
8.5.3 调用转向器Servlet
8.5.4 服务器端安装
8.5.5 服务器端执行
8.5.6 结果集合和后处理
8.6 编写Cactus测试
8.6.1 被测试的代码
8.6.2 继承适当的类
8.6.3 beginXXXQ方法
8.6.4 隐含对象
8.6.5 setUp()和tearDown()
8.6.6 testXXX()
8.6.7 endXXX()
8.7 Cactus与Ant的使用
8.8 Filter测试
8.9 JSPTestCase和自定义标记
8.10 案例学习:使用自定义标记的宠物商店程序
8.10.1 业务需求
8.10.2 寻找一个开始点
8.10.3 测试案例
8.11 小结
第9章 使用HttpUnit进行功能测试
9.1 为什么要做功能测试
9.2 为什么要使用HttpUnit
9.3 HttpUnit基础
9.3.1 WebClient(客户端)功能介绍
9.3.2 响应检查和多页面处理
9.4 HttpUnit的高级话题
9.4.1 DOM检查
9.4.2 Header和Cookies
9.4.3 框架页面
9.4.4 SSL
9.4.5 HttpUnitOptions
9.4.6 技术局限性
9.5 蜘蛛范例程序
9.5.1 蜘蛛程序开发:第一个循环
9.5.2 蜘蛛程序开发:二次循环
9.5.3 蜘蛛工具将来的工作
9.6 小结
第10章 使用JMeter测试应用程序性能
10.1 概述
10.2 JMeter概述
10.3 JMeter概念
10.4 使用JMeter测试Web应用程序浏览程序
10.5 使用JMeter测试Web应用程序的表单条目
10.6 使用JMeter测试我们的RDBMS的性能
10.7 案例学习:宠物商店
10.7.1 业务需求
10.7.2 建立测试
10.7.3 分析
10.7.4 结论
10.8 小结
第11章 使用JUnitPerf进行负载测试
11.1 概述
11.2 JUnitPerf概念
11.3 TimedTest范例
11.4 LoadTest范例
11.5 案例学习
11.5.1 HTTPUnit测试
11.5.2 JMeter配置
11.5.3 将它们放在一块
11.5.4 结论
11.6 小结
第三部分 API和标记参考
第12章 Ant标记参考
12.1 Ant命令行选项
12.2 Ant的父元素
12.2.1 project标记
12.2.2 target标记
12.2.3 path标记
12.2.4 filter标记
12.2.5 tstamp标记
12.3 Ant关键任务
12.3.1 Ant任务
12.3.2 antcall任务
12.3.3 available任务
12.3.4 echo任务
12.3.5 fail任务
12.3.6 property任务
12.3.7 taskdef任务
12.4 目录和文件系统任务
12.4.1 chmod任务
12.4.2 copy任务
12.4.3 delete任务
12.4.4 mkdir任务
12.4.5 move任务
12.4.6 touch任务
12.5 外部执行任务
12.5.1 apply任务
12.5.2 exec任务
12.5.3 execon任务
12.5.4 java任务
12.5.5 javac任务
12.5.6 sql任务
12.6 文件库任务
12.6.1 jar任务
12.6.2 war任务
12.6.3 zip任务
12.6.4 unjar、unzip和unwar任务
12.7 文件读写和控制
12.7.1 replace任务
12.7.2 mail任务
12.8 源代码控制任务
12.8.1 cvs任务
12.8.2 get任务
12.9 一些关键的可选任务
12.9.1 junit任务
12.9.2 junitReport任务
12.10 常用的嵌套参数和元素
12.10.1 classpath元素
12.10.2 mapper元素
12.10.3 fileset元素
12.10.4 patternset元素
12.10.5 zipfileset元素
第13章 Ant API参考
13.1 概述
13.2 org.apache.tools.ant包
13.2.1 AntClassLoader类
13.2.2 BuildEvent类
13.2.3 BuildException类
13.2.4 BuildListener接口
13.2.5 BuildLogger接口
13.2.6 DefaultLogger类
13.2.7 DesirableFilter类
13.2.8 DirectoryScanner类
13.2.9 FileScanner接口
13.2.10 IntrospectionHelper类
13.2.11 Location类
13.2.12 Main类
13.2.13 PathTokenizer类
13.2.14 Project类
13.2.15 ProjectHelper类
13.2.16 RuntimeConfigurable类
13.2.17 Target类
13.2.18 Task类
13.2.19 TaskAdapter类
13.2.20 UnknownElement类
13.2.21 XmlLogger类
13.3 小结
第14章 JUnit API参考
14.1 junit.framework包
14.1.1 Assert类
14.1.2 Protectable接口
14.1.3 Test接口
14.1.4 TestCase类
14.1.5 TestListener接口
14.1.6 TestFailure类
14.1.7 TestResult类
14.1.8 TestSuite类
14.2 junit.extensions包
14.2.1 ActiveTestSuite类
14.2.2 ExceptionTestCase类
14.2.3 RepeatedTest类
14.2.4 TestDecorator类
14.2.5 TestSetup类
第15章 Cactus API参考
15.1 概述
15.2 org.apache.cactus包
15.2.1 AbstractTestCase类
15.2.2 Cookie类
15.2.3 FilterTestCase类
15.2.4 JspTestCase类
15.2.5 ServiceDefinition类
15.2.6 ServiceEnumeration类
15.2.7 ServletTestCase类
15.2.8 ServletTestRequest类 不推荐
15.2.9 ServletURL类
15.2.10 WebRequest类
15.2.11 WebResponse类
15.2.12 WebTestResult类
15.3 org.apache.cactus.util包
15.3.1 AssertUtils类 不推荐
15.3.2 ClientCookie类 不推荐
15.4 org.apache.cactus.server包
15.4.1 FilterConfigWrapper类
15.4.2 HttpServletRequestWrapper类
15.4.3 PageContextWrapper类
15.4.4 RequestDispatcherWrapper类
15.4.5 ServletConfigWrapper类
15.4.6 ServletContextWrapper类
第16章 HttpUnit API参考
16.1 概述
16.2 com.meterware.httpunit包
16.2.1 AuthorizationRequired-Exception类
16.2.2 GetMethodWebRequest类
16.2.3 HTMLSegment接口
16.2.4 HttpException类
16.2.5 HttpInternalErrorException类
16.2.6 HttpNotFoundException类
16.2.7 HttpUnitOptions类
16.2.8 HttpUnitUtils类
16.2.9 IllegalRequestParameterException类
16.2.10 MessageBodyWebRequest类
16.2.11 PostMethodWebRequest类
16.2.12 PutMethodWebRequest类
16.2.13 SubmitButton类
16.2.14 TableCell类
16.2.15 WebClient类
16.2.16 WebConversation类
16.2.17 WebForm类
16.2.18 WebLink类
16.2.19 WebRequest类
16.2.20 WebResponse类
16.2.21 WebTable类
第17章 JUnitPerf API参考
17.1 com.clarkware.junitperf包
17.1.1 ConstantTimer类
17.1.2 LoadTest类
17.1.3 RandomTimer类
17.1.4 ThreadBarrier类
17.1.5 ThreadedTest类
17.1.6 ThreadedTestGroup类
17.1.7 TimedTest类
17.1.8 Timer接口