使用HttpUnit进行集成测试

合集下载

单元测试和集成测试的概念

单元测试和集成测试的概念

单元测试和集成测试的概念1. 什么是单元测试?单元测试,顾名思义,就是对软件中的“单元”进行测试。

哎,说到这里,你可能会想:“单元?什么玩意儿?”其实啊,这里的“单元”就是程序中的最小部分,比如一个函数或者一个方法。

我们可以把它想象成拼图中的一块,单独拿出来看看,能不能完美地拼上去。

单元测试的目的是确保每一块拼图都能正常工作。

想象一下,你在拼一幅画,结果发现一块拼图坏了,那可真是让人心烦意乱啊!1.1 单元测试的好处说到单元测试的好处,简直就像是在给你一瓶神奇的药水,喝了之后精神焕发!首先,单元测试可以提前发现问题。

你要知道,程序在开发过程中,bug就像过街老鼠,人人喊打。

通过单元测试,我们可以在早期阶段就把这些“老鼠”赶走,免得到后期麻烦更大。

其次,单元测试还可以提高代码的可维护性。

就像你打理花园,平时多浇水、施肥,长出来的花草自然旺盛。

代码也是一样,经过单元测试后,维护起来顺手多了,改动代码时也不怕把其他地方搞坏了。

1.2 怎么写单元测试?那么,如何写单元测试呢?其实没什么复杂的,首先你需要用一些测试框架,比如JUnit、pytest这些就很常见。

写个测试就像写作文,先列个提纲,再详细展开。

你需要定义输入、预期输出,然后用代码来验证。

这一过程就像在试探你的朋友,看他能不能按时还钱,如果能,那就放心了;如果不能,那就得考虑下次借不借了。

2. 什么是集成测试?集成测试则是另一个层面的东西。

说白了,集成测试就是把已经经过单元测试的“拼图块”拿到一起,看看它们能不能拼成一幅完整的画。

这就像你和朋友们一起去聚会,单独每个人都很优秀,但你得看看大家能不能和谐相处,不然聚会现场就尴尬了。

2.1 集成测试的目的集成测试的主要目的是验证模块之间的接口和交互。

就像你做菜,有些材料搭配得很好,有些则可能味道奇怪。

我们需要通过集成测试,确保所有模块在一起运行时不会出现不和谐的音符。

这样,整个系统的表现才能更加流畅。

软件测试阶段中集成测试阶段常用的方法

软件测试阶段中集成测试阶段常用的方法

软件测试阶段中集成测试阶段常用的方法集成测试是软件开发过程中的一个重要阶段,其目的是将已经测试通过的单元模块组合起来,进行集成测试。

在集成测试阶段,可以使用多种不同的方法来验证系统的正确性、稳定性和可靠性。

在下面的文章中,我将介绍一些常用的集成测试方法。

1. 自顶向下测试方法(Top-down Testing):这种方法从系统的最高级别开始测试,在系统的不同层级逐渐向下进行测试。

一开始,只有系统的外部接口能够被调用和测试。

然后,逐渐添加下一级别的模块,直到遍历整个系统。

这种方法的优点是易于实施和理解,可以尽早地发现系统级别的问题。

然而,它的缺点是需要有一个模拟的下层模块来进行测试。

2. 自底向上测试方法(Bottom-up Testing):这种方法从系统的最低级别开始测试,先对单元模块进行测试,再逐渐将模块组合成更高级别的模块,最后测试整个系统。

这种方法的优点是可以尽早地发现单个模块的问题,并且不依赖于其他模块的可用性。

然而,它的缺点是需要有一个模拟的上层模块来进行测试。

3. 渐增集成测试方法(Incremental Integration Testing):这种方法将模块逐渐地添加到系统中,进行逐步的集成测试。

首先,只有一个模块被添加到系统中,然后逐渐添加更多的模块,每次都进行测试。

这种方法在每个步骤中都可以发现和修复问题。

这种方法的优点是可以逐步测试系统的不同部分,逐步发现和修复问题。

然而,它的缺点是需要有一个模拟的上层模块或外部接口来进行测试。

4. 并发测试方法(Concurrent Testing):这种方法通过模拟并发的用户请求、相互冲突的操作和资源竞争等情况,来测试系统在并发环境下的可靠性和性能。

在这种测试方法中,可以使用多个线程或进程来模拟并发操作。

这种方法的优点是可以发现系统在并发环境下的潜在问题。

然而,它的缺点是实施和分析结果可能较为复杂。

5. 回归测试方法(Regression Testing):这种方法主要用于检查在添加新功能或修复缺陷后,系统的其他部分是否正常工作,是否引入了新的问题。

代码单元测试与集成测试最佳实践

代码单元测试与集成测试最佳实践

代码单元测试与集成测试最佳实践代码单元测试和集成测试是软件开发中非常重要的两个环节。

单元测试是针对软件中最小的可测试单元进行测试,通过独立的测试用例对其进行验证。

而集成测试则是在多个单元模块组合后对整个系统进行测试,验证各模块之间的交互是否正常。

本文将介绍代码单元测试和集成测试的最佳实践。

1.单元测试最佳实践-测试覆盖率:单元测试应该尽可能覆盖代码中的各个分支和边界条件,以确保代码的准确性和鲁棒性。

使用工具来评估单元测试的覆盖率,并在每次测试后分析结果来优化测试用例。

-持续集成:将单元测试作为持续集成流程的一部分,每次提交代码后,自动运行单元测试来确保新的修改没有引入错误。

这有助于早期发现和修复问题,避免问题扩散到其他模块。

- Mock和Stub:在单元测试中,涉及到外部依赖的模块可以使用Mock或Stub来模拟这些依赖,以避免测试用例变得复杂和不稳定。

这样可以更好地隔离被测模块,使测试更加可控和可靠。

-独立性和可重复性:每个单元测试用例都应该是独立的,并且可以在任何环境下重复运行,确保结果的可验证性和一致性。

这可以通过在每次测试前清除状态,使用随机值或固定种子来实现。

2.集成测试最佳实践-边界测试:集成测试应该着重于模块之间的交互和集成,对边界条件进行充分的测试,以确保在不同情况下系统的行为符合预期。

这包括测试模块之间的正确输入输出、异常处理等。

-自动化测试:对于大型系统,编写和运行手动集成测试是非常耗时和低效的。

因此,集成测试应该尽量自动化,使用适当的测试框架和工具来自动执行测试用例、生成测试报告和收集测试覆盖率等信息。

-构建和部署:集成测试应该与构建和部署流程紧密集成,例如,在每次部署到测试环境之前运行集成测试,以确保新的代码与已有代码的兼容性。

这也有助于快速发现和解决集成问题。

-并行执行:为了加快测试的执行速度,可以采用并行执行的方式来运行集成测试。

这可以通过将测试用例分成多个组,并使用不同的机器或线程并行运行,以提高测试效率。

软件研发如何进行集成测试与部署

软件研发如何进行集成测试与部署

软件研发如何进行集成测试与部署在软件研发的过程中,集成测试和部署是非常重要的环节。

集成测试是为了验证不同模块之间的交互是否正常,而部署则是把开发完成的软件部署到目标环境中,以供最终用户使用。

本文将介绍集成测试和部署的步骤与注意事项。

一、集成测试1. 制定测试计划在进行集成测试之前,需要制定详细的测试计划。

测试计划应包括测试的范围、测试的目标、测试的策略和测试的资源等内容。

通过制定测试计划,可以确保测试的有序进行。

2. 搭建测试环境在进行集成测试之前,需要搭建好测试环境。

测试环境应尽可能接近实际使用环境,以保证测试结果的准确性。

同时,还需要配置好测试所需的硬件设备和相关软件。

3. 设计测试用例测试用例是集成测试的核心,它描述了测试的输入、输出和预期结果。

在设计测试用例时,需要考虑各种不同的情况和边界条件,以确保测试的全面性和可靠性。

4. 执行测试在执行测试时,需要按照设计好的测试用例,逐一测试每个功能模块的集成情况。

测试过程中需要记录测试结果,并对测试结果进行评估,以确定是否符合预期。

5. 修复缺陷在测试过程中,有可能会发现一些缺陷。

这些缺陷需要及时修复,并重新进行测试。

修复缺陷后,还需要进行回归测试,以确保修复过程中没有引入新的问题。

6. 完成测试当所有的测试用例都通过,并且没有发现新的缺陷时,集成测试可以认为是完成的。

此时,需要记录测试的总结和评估,并将测试结果报告给相关的开发人员和项目经理。

二、部署1. 确定部署环境在进行部署之前,首先需要确定部署的目标环境。

目标环境可能是一个服务器、一个客户机或者一个移动设备等。

根据目标环境的不同,部署的方式也有所不同。

2. 准备部署材料准备部署材料是部署过程中的一项重要工作。

部署材料包括软件安装包、配置文件、用户手册等。

在准备部署材料时,需要确保它们是完整的且正确的,以免在部署过程中出现问题。

3. 进行安装和配置根据部署材料和部署的目标环境,进行软件的安装和配置。

软件测试中的接口测试与集成测试

软件测试中的接口测试与集成测试

软件测试中的接口测试与集成测试在软件开发过程中,经过系统设计、编码和单元测试等阶段后,接下来的步骤就是进行软件测试。

软件测试是为了发现潜在的错误、缺陷以及确保软件的质量和稳定性。

在软件测试中,接口测试和集成测试是两个重要的测试方法。

一、接口测试接口测试是指对软件系统各个模块之间的接口进行测试的过程。

在软件开发过程中,不同模块之间的接口很重要,因为这些接口关系到模块之间的数据传递、通信协议、参数传递等。

接口测试的目的就是验证这些接口是否能够正常工作,是否能实现数据的准确传递和相互通信。

在进行接口测试时,首先需要明确每个接口的功能和预期的输出。

然后,根据接口的设计,编写测试用例并执行。

接口测试的重点在于对输入和输出进行验证,确保接口的正确性和稳定性。

如果发现接口出现错误或者异常,需要及时与开发人员沟通,并进行错误的修复和验证。

二、集成测试集成测试是指对整个软件系统进行测试的过程。

在软件开发过程中,开发人员会将各个单元模块集成在一起形成一个完整的系统,集成测试就是为了验证这个系统的功能和性能。

集成测试的目的是发现各个模块之间的集成问题和接口问题,确保系统能够正常运行。

在进行集成测试时,首先需要明确系统的功能需求和系统架构。

然后,根据系统设计和功能需求编写测试用例并执行。

集成测试的重点在于验证系统的功能完整性和模块之间的相互协作。

如果发现系统出现错误或者异常,需要及时与开发人员沟通,并进行错误的修复和验证。

接口测试与集成测试之间存在一定的关联。

接口测试是对单个接口进行测试,而集成测试是对整个系统进行测试。

接口测试是集成测试的一个子集,集成测试也包含了接口测试的内容。

在进行集成测试时,需要对各个模块之间的接口进行测试,并验证模块之间的正确性和稳定性。

综上所述,接口测试和集成测试都是软件测试中重要的环节。

接口测试关注模块之间的接口正确性和稳定性,而集成测试关注整个系统的功能完整性和性能。

通过合理安排接口测试和集成测试,可以帮助开发人员发现和解决潜在的问题,提高软件的质量和稳定性。

软件开发中的单元测试和集成测试

软件开发中的单元测试和集成测试

软件开发中的单元测试和集成测试在软件开发领域,单元测试和集成测试是其中两个非常重要的测试方法。

本文旨在介绍这两种测试方法的基本概念、作用、实施步骤和常见误区,希望能够对软件开发人员在实践中的工作有所裨益。

一、单元测试1. 基本概念单元测试(Unit Testing)指的是对软件中的最小可测试单元进行测试的过程。

这个最小单元可以是函数、方法、类或模块等。

单元测试的目的在于验证每个单元的行为是否符合预期,以确保单元的正确性。

2. 作用(1)提高代码质量。

单元测试可以帮助开发人员尽早发现和解决代码中的错误,从而避免这些错误在后续的开发过程中造成更大的影响。

(2)提高代码可维护性。

单元测试可以帮助开发人员更好地了解代码的功能和结构,从而更容易进行维护和重构。

(3)提高代码可重用性。

单元测试可以帮助开发人员更好地了解每个单元的功能和使用方法,从而更容易将其重用到其他项目中。

3. 实施步骤(1)选择测试框架。

在进行单元测试前,开发人员需要选择合适的测试框架,如JUnit、NUnit、pytest等。

这些测试框架提供了各种测试工具和库,可以帮助开发人员更方便地进行单元测试。

(2)编写测试用例。

根据每个单元的功能和预期结果,开发人员需要编写相应的测试用例。

测试用例是一组输入和期望输出的集合,用于验证程序是否按预期运行。

(3)运行测试用例。

运行测试用例时,测试框架会自动将输入值传递给相应的单元,并比较其输出结果是否与预期结果一致。

(4)分析测试结果。

根据测试结果对程序进行修正。

当测试失败时,开发人员需要重新检查代码,并修正错误。

4. 常见误区(1)测试覆盖率过于追求。

测试覆盖率是指测试用例覆盖代码的百分比。

虽然高测试覆盖率有助于发现更多的错误,但并不意味着覆盖率越高程序就越正确。

因此,开发人员应该根据实际情况合理选择测试用例,而不必追求过高的测试覆盖率。

(2)测试只能在开发完成后进行。

开发人员经常会认为,单元测试只是一个后验性的工作,只有在代码编写完成之后才能进行。

软件测试中接口集成测试说明

软件测试中接口集成测试说明关键信息项:1、接口测试范围2、测试环境要求3、测试用例设计原则4、测试执行流程5、缺陷管理与跟踪6、测试报告内容与格式11 接口测试范围接口集成测试应涵盖软件系统中所有对外暴露的接口,包括但不限于以下类型:111 HTTP/HTTPS 接口112 Web Service 接口113 消息队列接口114 数据库接口12 测试环境要求121 硬件环境应明确所需的服务器配置、客户端设备性能等硬件要求,以确保测试的准确性和稳定性。

122 软件环境包括操作系统、数据库管理系统、中间件、相关依赖软件及其版本。

123 网络环境描述网络带宽、延迟、丢包率等网络参数的要求。

13 测试用例设计原则131 功能覆盖测试用例应覆盖接口的所有功能特性,包括正常流程和异常流程。

132 参数组合对接口的输入参数进行各种有效的和无效的组合测试。

133 边界值分析针对接口参数的边界值进行测试,如最小值、最大值、空值等。

134 安全性测试检查接口是否存在 SQL 注入、跨站脚本攻击等安全漏洞。

135 性能测试用例设计用于评估接口性能的用例,如并发处理能力、响应时间等。

14 测试执行流程141 测试准备完成测试环境搭建、测试数据准备、测试用例编写与评审。

142 测试执行按照测试用例依次执行测试,并记录测试结果。

143 问题反馈在测试过程中发现的问题及时反馈给开发团队。

144 回归测试对修复后的问题进行回归测试,确保问题得到解决。

15 缺陷管理与跟踪151 缺陷定义与分类明确缺陷的严重程度(如致命、严重、一般、轻微)和类型(如功能错误、性能问题、界面缺陷等)。

152 缺陷报告缺陷报告应包含详细的缺陷描述、重现步骤、预期结果和实际结果。

153 缺陷跟踪建立缺陷跟踪机制,及时更新缺陷状态,确保缺陷得到妥善处理。

16 测试报告内容与格式161 测试概述包括测试目的、范围、测试时间和参与人员。

162 测试环境描述实际使用的测试环境配置。

集成测试案例

集成测试案例在软件开发过程中,集成测试是非常重要的一环。

它是指将各个单元或模块组合在一起,进行整体功能测试的过程。

在进行集成测试时,需要编写一些测试案例来验证系统的功能是否符合需求。

下面,我们将以一个虚拟的电商网站为例,来编写一些集成测试案例。

1. 用户登录。

输入正确的用户名和密码,验证是否能成功登录系统。

输入错误的用户名或密码,验证是否会提示登录失败。

输入正确的用户名,但错误的密码,验证是否会提示密码错误。

2. 商品搜索。

在搜索框中输入关键词,验证是否能正确显示相关商品列表。

在搜索框中输入不存在的关键词,验证是否会提示“未找到相关商品”。

3. 购物车功能。

将商品加入购物车,验证购物车中是否正确显示该商品信息。

修改购物车中商品的数量,验证是否能正确更新购物车总价。

删除购物车中的商品,验证是否能成功删除并更新购物车商品数量。

4. 下单功能。

选择商品后进行结算,验证是否能正确跳转至订单确认页面。

在订单确认页面填写收货信息,验证是否能成功生成订单并跳转至支付页面。

在支付页面选择支付方式并完成支付,验证是否能成功生成支付订单并跳转至支付成功页面。

5. 订单管理。

在订单列表中查看已完成订单,验证是否能正确显示订单详情和状态。

在订单列表中查看未完成订单,验证是否能正确显示订单详情和状态。

对已完成订单进行退款操作,验证是否能成功退款并更新订单状态。

以上是针对电商网站的一些集成测试案例,通过这些测试案例的执行,可以验证系统在不同功能场景下的表现是否符合预期。

在实际的软件开发中,集成测试案例的编写是非常重要的,它能够帮助开发人员和测试人员全面地了解系统的功能和性能,及时发现和解决问题,保证系统的稳定性和可靠性。

因此,我们应该充分重视集成测试案例的编写和执行,以确保软件产品的质量和用户体验。

学习计算机编程的单元测试和集成测试

学习计算机编程的单元测试和集成测试概述:在计算机编程中,测试是一个至关重要的环节。

它能够确保代码的质量和可靠性,减少后续出现的错误和问题。

在本文中,我们将探讨学习计算机编程时,如何进行单元测试和集成测试。

一、单元测试单元测试是指对程序中最小可测试单元进行的测试。

它对代码的每个独立组件进行独立测试,以确保它们的行为与预期一致。

单元测试可以帮助程序员提高代码质量,减少错误和漏洞的出现。

1.1 编写可测试的代码在进行单元测试之前,我们需要首先编写可测试的代码。

可测试的代码应该具备以下特点:- 代码模块化:将代码分成小的、相互独立的模块,有利于单元测试的编写。

- 易于测试:代码应该容易进行测试。

例如,可以将复杂的逻辑分解成可测试的函数,避免依赖其他外部因素。

- 适当的输入和输出:代码的输入和输出应该明确,以便进行验证和测试。

1.2 选择适当的测试框架选择适当的测试框架是进行单元测试的关键之一。

常见的测试框架包括JUnit、PyTest和Mocha等。

选择框架时,应考虑以下几个因素:- 语言兼容性:测试框架应该与编程语言兼容,以便方便地进行测试。

- 功能丰富性:测试框架应该提供丰富的功能,如断言、测试组织和测试报告等。

- 社区活跃度:选择一个拥有活跃社区的测试框架,可以获得更好的支持和维护。

1.3 编写测试用例编写测试用例是进行单元测试不可或缺的一步。

测试用例应该涵盖代码的各种场景和边界条件,以验证代码的正确性。

编写测试用例时,应该注意以下几个方面:- 边界条件:测试用例应该包括最大值、最小值、边界情况和异常情况等。

- 正常场景:测试用例应该覆盖代码的正常执行路径,以验证代码的基本功能正常。

- 异常情况:测试用例应该包括输入错误、超出内存限制和耗时过长等异常情况。

1.4 运行测试并进行调试在编写完测试用例后,我们可以运行测试并进行调试。

如果测试发现代码存在问题,我们可以通过调试工具逐步排查错误原因,并进行修复。

前端开发中的单元测试和集成测试技术

前端开发中的单元测试和集成测试技术随着互联网技术的快速发展,前端开发在当今的软件开发中扮演着越来越重要的角色。

为了保证前端代码的质量,单元测试和集成测试成为前端开发中常用的技术手段。

本文将介绍前端开发中的单元测试和集成测试技术,并探讨其应用和优势。

1. 单元测试的概念和原理单元测试是指对软件系统中的最小可测试单元进行测试的方法。

在前端开发中,单元测试主要是对前端组件、函数或模块等独立单元进行测试,以验证其功能是否正常。

单元测试的核心原理是“先测再写”,即在编写代码之前就编写相应的测试用例,并在开发过程中不断完善和修改测试用例,确保代码的正确性。

2. 单元测试的工具和框架在前端开发中,常用的单元测试工具和框架有Jest、Mocha、Karma等。

这些工具和框架提供了丰富的测试功能和易用的API,使得开发人员能够快速编写、运行和调试单元测试代码。

同时,它们还支持测试覆盖率的统计和报告生成,帮助开发人员全面了解测试覆盖情况。

3. 单元测试的应用场景单元测试在前端开发中有广泛的应用场景。

例如,在开发一个复杂的前端组件时,可以通过单元测试来保证组件的各种状态和交互行为的正确性;在开发一个公共函数时,可以通过单元测试来验证函数的输入输出是否符合预期;在重构或优化代码时,可以通过单元测试来确保代码的正确性不会受到影响。

4. 集成测试的概念和原理集成测试是指将各个独立模块组合在一起进行测试,以验证它们之间的接口和协作是否正常。

在前端开发中,由于前端应用通常由多个组件、模块和服务构成,集成测试可以确保它们之间的整合和交互是否正确。

集成测试的核心原理是模拟用户的操作流程,测试整个应用的行为和功能。

5. 集成测试的工具和框架在前端开发中,常用的集成测试工具和框架有Selenium、Cypress、Puppeteer 等。

这些工具和框架提供了模拟用户操作的API和工具,可以自动化执行各个测试用例,并生成详细的测试报告。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用HttpUnit进行集成测试 作者: 肖菁

内容摘要 HttpUnit是一个集成测试工具,主要关注Web应用的测试,提供的帮助类让测试者可以通过Java类和服务器进行交互,并且将服务器端的响应当作文本或者DOM对象进行处理。HttpUnit还提供了一个模拟Servlet容器,让你可以不需要发布Servlet,就可以对Servlet的内部代码进行测试。本文中作者将详细的介绍如何使用HttpUnit提供的类完成集成测试。

1 HttpUnit简介 HttpUnit是SourceForge下面的一个开源项目,它是基于JUnit的一个测试框架,主要关注于测试Web应用,解决使用JUnit框架无法对远程Web内容进行测试的弊端。当前的最新版本是1.5.4。为了让HtpUnit正常运行,你应该安装JDK1.3.1或者以上版本。

1.1 工作原理 HttpUnit通过模拟浏览器的行为,处理页面框架(frames),cookies,页面跳转(redirects)等。通过HttpUnit提供的功能,你可以和服务器端进行信息交互,将返回的网页内容作为普通文本、XML Dom对象或者是作为链接、页面框架、图像、表单、表格等的集合进行处理,然后使用JUnit框架进行测试,还可以导向一个新的页面,然后进行新页面的处理,这个功能使你可以处理一组在一个操作链中的页面。

1.2 和其他商业工具的对比 商业工具一般使用记录、回放的功能来实现测试,但是这里有个缺陷,就是当页面设计被修改以后,这些被记录的行为就不能重用了,需要重新录制才能继续测试。

举个例子:如果页面上有个元素最先的设计是采用单选框,这个时候你开始测试,那么这些工具记录的就是你的单项选择动作,但是如果你的设计发生了变化,比如说我改成了下拉选择,或者使用文本框接受用户输入,这时候,你以前录制的测试过程就无效了,必须要重新录制。

而HttpUnit因为关注点是这些控件的内容,所以不管你的外在表现形式如何变化,都不影响你已确定测试的可重用性。

更多的关于httpunit的信息请访问httpunit的主页http://httpunit.sourceforge.net 2 作者的演示环境 系统平台:Windows 2000 Server 应用服务器:深圳金蝶的apusic3.0 开发工具: eclipse 2.1.2 3 HttpUnit安装、环境配置 3.1 安装 1. 到HttpUnit的主页http://httpunit.sourceforge.net下载最新的包文件,当前的最新版本是1.5.4。

2. 将下载的Zip包解压缩到c:/httpunit(后面将使用%httpunit_home%引用该目录)

3.2 环境配置 作者的演示程序都是在eclipse中开发、执行的,所以环境配置都是以eclipse为例,如果你使用其他的开发工具,请根据这些步骤进行环境配置。

启动eclipse,建立一个java工程 将%httpunit_home%/lib/*.jar; %httpunit_home%/jars/*.jar加入到该java工程的Java build Path变量中 4 如何使用httpunit处理页面的内容

WebConversation类是HttpUnit框架中最重要的类,它用于模拟浏览器的行为。其他几个重要的类是:

WebRequest类,模仿客户请求,通过它可以向服务器发送信息。 WebResponse类,模拟浏览器获取服务器端的响应信息。 4.1 获取指定页面的内容 4.1.1 直接获取页面内容 System.out.println("直接获取网页内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation();

//向指定的URL发出请求,获取响应 WebResponse wr = wc.getResponse( "http://localhost:6888/HelloWorld.html" );

//用getText方法获取相应的全部内容 //用System.out.println将获取的内容打印在控制台上 System.out.println( wr.getText() );

4.1.2 通过Get方法访问页面并且加入参数 System.out.println("向服务器发送数据,然后获取网页内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation(); //向指定的URL发出请求 WebRequest req = new GetMethodWebRequest( "http://localhost:6888/HelloWorld.jsp" ); //给请求加上参数 req.setParameter("username","姓名"); //获取响应对象 WebResponse resp = wc.getResponse( req );

//用getText方法获取相应的全部内容 //用System.out.println将获取的内容打印在控制台上 System.out.println( resp.getText() );

4.1.3 通过Post方法访问页面并且加入参数 System.out.println("使用Post方式向服务器发送数据,然后获取网页内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation(); //向指定的URL发出请求 WebRequest req = new PostMethodWebRequest( "http://localhost:6888/HelloWorld.jsp" ); //给请求加上参数 req.setParameter("username","姓名"); //获取响应对象 WebResponse resp = wc.getResponse( req );

//用getText方法获取相应的全部内容 //用System.out.println将获取的内容打印在控制台上 System.out.println( resp.getText() );

大家关注一下上面代码中打了下划线的两处内容,应该可以看到,使用Get、Post方法访问页面的区别就是使用的请求对象不同。 4.2 处理页面中的链接 这里的演示是找到页面中的某一个链接,然后模拟用户的单机行为,获得它指向文件的内容。比如在我的页面HelloWorld.html中有一个链接,它显示的内容是TestLink,它指向我另一个页面TestLink.htm. TestLink.htm里面只显示TestLink.html几个字符。

下面是处理代码: System.out.println("获取页面中链接指向页面的内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation(); //获取响应对象 WebResponse resp = wc.getResponse( "http://localhost:6888/HelloWorld.html" ); //获得页面链接对象 WebLink link = resp.getLinkWith( "TestLink" ); //模拟用户单击事件 link.click(); //获得当前的响应对象 WebResponse nextLink = wc.getCurrentPage();

//用getText方法获取相应的全部内容 //用System.out.println将获取的内容打印在控制台上 System.out.println( nextLink.getText() );

4.3 处理页面中的表格 表格是用来控制页面显示的常规对象,在HttpUnit中使用数组来处理页面中的多个表格,你可以用resp.getTables()方法获取页面所有的表格对象。他们依照出现在页面中的顺序保存在一个数组里面。

[注意] Java中数组下标是从0开始的,所以取第一个表格应该是resp.getTables()[0],其他以此类推。

下面的例子演示如何从页面中取出第一个表格的内容并且将他们循环显示出来: System.out.println("获取页面中表格的内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation(); //获取响应对象 WebResponse resp = wc.getResponse( "http://localhost:6888/HelloWorld.html" ); //获得对应的表格对象 WebTable webTable = resp.getTables()[0]; //将表格对象的内容传递给字符串数组 String[][] datas = webTable.asText(); //循环显示表格内容 int i = 0 ,j = 0; int m = datas[0].length; int n = datas.length; while (i j=0; while(j System.out.println("表格中第"+(i+1)+"行第"+ (j+1)+"列的内容是:"+datas[i][j]); ++j; } ++i; }

4.4 处理页面中的表单 表单是用来接受用户输入,也可以向用户显示用户已输入信息(如需要用户修改数据时,通常会显示他以前输入过的信息),在HttpUnit中使用数组来处理页面中的多个表单,你可以用resp.getForms()方法获取页面所有的表单对象。他们依照出现在页面中的顺序保存在一个数组里面。

[注意] Java中数组下标是从0开始的,所以取第一个表单应该是resp.getForms()[0],其他以此类推。

下面的例子演示如何从页面中取出第一个表单的内容并且将他们循环显示出来: System.out.println("获取页面中表单的内容:"); //建立一个WebConversation实例 WebConversation wc = new WebConversation(); //获取响应对象 WebResponse resp = wc.getResponse( "http://localhost:6888/HelloWorld.html" ); //获得对应的表单对象 WebForm webForm = resp.getForms()[0]; //获得表单中所有控件的名字 String[] pNames = webForm.getParameterNames(); int i = 0; int m = pNames.length; //循环显示表单中所有控件的内容

相关文档
最新文档