开源Web自动化测试指南.doc_第1页
开源Web自动化测试指南.doc_第2页
开源Web自动化测试指南.doc_第3页
开源Web自动化测试指南.doc_第4页
开源Web自动化测试指南.doc_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

秘密秘密 第 1 页 共 32 页 开源开源WEB自动化测试自动化测试 实施指南实施指南 说明 1 本文件中 中内容为举例和说明文字 请在文件拟制时替换或删除 2 若文中某章节内容可省略 不需要或适用 请保留该标题 并根据实际在内容部分写明 略 勿需 或 不适用 等 同时适当说明原因 3 请作者注意在文档右上角修改该文档的密级 秘密秘密 第 2 页 共 32 页 文件修订历史 修订时间修订时间修订说明修订说明作者作者审核审核 2011 8 5创建目录岑海菊温素剑 2011 8 17章节 1 2 4 岑海菊温素剑 章节 3李颖 陈建红 岑海菊温素剑 章节 5李颖温素剑 模板修订历史 版本版本生效时间生效时间变更概要变更概要作者作者审核审核批准批准 1 0 02011 8 5创建自动化测试方法文档岑海菊 秘密秘密 第 3 页 共 32 页 目录目录 1引言与概述引言与概述 4 1 1背景 4 1 2开源 WEB自动化测试的优势 4 1 2 1Selenium简介 4 1 2 2Selenium的优势 4 2开源开源 WEB 自动化测试架构自动化测试架构 6 2 1基于 SELENIUM 2 0 的自动化测试框架 6 2 2新 WEB自动化测试代码架构 7 3WEB 自动化测试编写自动化测试编写 8 3 1集成开发环境搭建 8 3 1 1选择底层实现方法 8 3 1 2eclipse配置 9 3 1 3项目环境配置 10 3 2测试案例编写 13 3 2 1Selenese语法 14 3 2 2XPath介绍 14 3 2 3测试案例框架 16 4管理测试案例管理测试案例 19 4 1测试工程目录结构 19 4 2使用 ANT运行测试案例 20 4 2 1Ant介绍 20 4 2 2Ant基本语法 20 4 2 3输出测试报告样式 21 4 2 4Ant Build 21 4 3使用 JENKINS管理自动化测试任务 22 4 3 1Jenkins介绍 22 4 3 2Jenkins任务创建 22 4 3 3Jenkins任务执行 24 4 3 4Jenkins执行结果查看 24 5数据管理数据管理 25 5 1 1自动化测试流程图 25 5 1 2JDBC连接数据库代码范例 26 5 1 3数据回滚脚本 28 5 1 4数据初始化脚本 28 5 1 5配置文件管理 29 6疑难手册疑难手册 31 附录附录A SELENIUM 2 0常用命令常用命令 32 附录附录B 案例文件 配置文件 案例文件 配置文件DEMO 32 附录附录C CC使用及培训资料使用及培训资料 32 秘密秘密 第 4 页 共 32 页 1引言与概述引言与概述 1 1背景背景 目前 QTP 是我司使用最广泛的自动化测试工具 在实际使用中发现 QTP 存在以下 不足之处 1 QTP 基于测试对象库来识别测试对象 其内部机制是不透明的 在实际工作中 对测试对象库的维护工作量很大 耗费了测试人员大量的精力 效果却并不好 2 QTP 的设计架构决定了当前测试脚本可复用性差 很难积累可重复使用的函数 组件 包等测试资产 3 使用 QTP 的描述性编程来创建测试脚本 严重依赖于测试人员的个人经验和技巧 难以大规模推广 4 自动化测试数据经常失效 原因在于没有统一的数据回滚措施 基于商业自动化测试工具 QTP 的录制 回放模式 无法构建健壮的自动化测试脚本 所以我们迫切地需要新的工具来替换 QTP 当前有多种开源自动化测试工具可供选择 Selenium 2 0 便是目前使用最广泛的开源测试工具之一 1 2 开源开源 Web 自动化测试的优势自动化测试的优势 1 2 1Selenium 简介简介 Selenium 是一系列基于 Web 的自动化测试工具 Selenium 提供了一系列测试函数用 于支持 Web 自动化测试 这些函数非常灵活 他们能够通过多种方式定位 UI 元素 并将 预期结果与系统实际表现相比较 测试人员通过这些测试函数来模拟用户操作 从而实现 Web 自动化测试 Selenium 2 0 集成了 WebDriver API 解决了 Selenium 1 0 的局限 二者相互弥补 提 供了更多可选的编程接口 1 2 2Selenium 的优势的优势 QTP 的测试对象库 对与测试人员来说是不透明的 图 1 1 为构建 QTP 自动化测试 脚本的流程 在使用 QTP 录制测试脚本的时候 测试人员根本不清楚测试对象库中的测 试对象是否有效 能否满足需求 这给使用者带来很大的困扰 秘密秘密 第 5 页 共 32 页 图 1 1 构建 QTP 自动化测试脚本的流程 Selenium 2 0 具有很强的灵活性和很好的扩展性 测试人员从页面数据中提取对象 引入测试逻辑构建测试脚本 通过这样的方式 测试人员能够确保测试对象的有效性 对 测试对象的维护也更容易 图 1 2 构建 Selenium 2 0 自动化测试脚本的流程 对比 QTP 和 Selenium2 0 构建自动化测试脚本的流程图 我们可以发现 Selenium 不 再基于录制 回放模式来创建自动化测试脚本 弥补了 QTP 的不足 1 开源测试工具识别测试对象的机制是透明的 可以减少测试人员的维护工作量 2 采用开源测试工具 可以将需要重用的测试代码打包到 jar 中 后续计划引入配置 管理 保证可重用 jar 包的质量 3 采用 java 语言来编写测试脚本 在测试对象识别得到保证的前提下 这并不是一 秘密秘密 第 6 页 共 32 页 件充满技巧性的工作 4 针对自动化测试数据经常失效的问题 新渠道目前的做法是将恢复测试数据的 SQL 放在定时 JOB 中 在自动化测试运行前恢复相关测试数据 除此之外 Selenium 2 0 在很多方面都优于 QTP 如表 1 1 所示 表 1 1 QTP 与 Selenium 2 0 的对比 Selenium 2 0 开源 对比项QTP 商业 SeleniumWebDriver 购置成本昂贵免费免费 测试对象识别 机制 不透明透明透明 编码语言VBS Java Python Ruby 等多 种语言 Java 代码可重用性低高高 脚本维护工作 量 高低低 是否支持录制 回放模式 是是 功能较弱 否 执行效率低一般高 测试脚本是否 支持配置管理 不支持支持支持 是否支持订制否是是 2开源开源 Web 自动化测试架构自动化测试架构 2 1基于基于 Selenium 2 0 的自动化测试框架的自动化测试框架 图 2 1 是基于 Selenium 2 0 的自动化测试的整体框架 虚线代表尚未实现的功能 步骤 1 在开发人员提交代码后 持续集成引擎 Jenkins 会对最新的代码进行编译 和部署 步骤 2 Jenkins 从配置管理工具 SVN CC 获取测试脚本 步骤 3 Jenkins 调用 Ant 编译测试脚本 步骤 4 Jenkins 调用 Ant 去运行 Junit 测试案例 步骤 5 Junit 通过 Selenium 2 0 操作浏览器 步骤 6 Jenkins 输出测试报告 并以邮件的形式向测试人员发送自动化测试结果 秘密秘密 第 7 页 共 32 页 持续集成引擎 Jenkins Ant Junit Mail WebDriver Selenium Client Selenium RC 浏览器 Browser Selenium 2 0 开发持续集成Report 配置管理工具 SVN CC 测试结果输出 图 2 1 新 Web 自动化测试整体框架 2 2新新 Web 自动化测试代码架构自动化测试代码架构 基于 Selenium 2 0 的 Web 自动化测试 每个测试案例就是一个 Junit Test Case Junit 测试案例 由测试数据和测试逻辑两部分组成 测试逻辑最底层的实现是 Selenium2 0 库 通过抽象和扩展出 webtest 类 测试人员通过调用 webtest 类的方法 来构建测试逻辑 关 秘密秘密 第 8 页 共 32 页 于测试数据 请参考第 5 章数据管理 Junit Test Case Test Logic Webtest Class Jar Selenium 2 0 lib Test Data 图 2 2 新 Web 自动化测试代码框架 3Web 自动化测试编写自动化测试编写 3 1 集成开发环境搭建集成开发环境搭建 3 1 1选择底层实现方法选择底层实现方法 前面提到 Selenium 2 0 集成了 WebDriver 的 API 因此我们首先需要选择底层的实 现方法是 Selenium 还是 WebDriver 二者对比如表 3 1 所示 Selenium 提供了丰富的方法 支持多种浏览器 可以满足各种各样的测试逻辑需求 所以 一般情况下优先选择 Selenium 但有些系统比较特殊 某些功能 Selenium 无法支持 此时可考虑使用 WebDriver WebDriver 提供的方法虽不及 Selenium 多 如截屏等功能 但是也基本能满 足系统的要求 最主要的是它的执行速度非常的快 这点是 Selenium 所望尘莫及的 总 而言之 还是要根据系统的实际情况 选择合适的实现方法 秘密秘密 第 9 页 共 32 页 表 3 1 Selenium 与 WebDriver 的对比 对比项SeleniumWebDriver 编码语言 Java Python Ruby 等多 种语言 Java 是否支持录制 回放模式 是否 执行效率一般高 支持的浏览器 IE Firefox Chrome Safari Opera IE Firefox Chrom e 提供的测试方 法 多基本 3 1 2eclipse 配置配置 新标装的电脑 Eclipse 配置已经完成 请按照下述步骤检查配置是否正确 步骤 1 设置电脑环境变量 JAVA HOME 我的电脑 右键 属性 高级 环境变量 系统变量 新建 进行如下 编辑 变量名 JAVA HOME 变量值 java 安装的目录 C Program Files Java jdk1 6 0 20 步骤 2 设置电脑环境变量 CLASSPATH 我的电脑 右键 属性 高级 环境变量 系统变量 新建 进行如下编 辑 变量名 CLASSPATH 变量值 java 安装的目录 JAVA HOME lib JAVA HOME lib dt jar JAVA HOME lib tools jar 步骤 3 在 eclipse 中配置 java 点击 eclipse 菜单中 Window Preferences Java Installed JREs 配置如图 3 1 图 3 1 Eclipse 中 JRES 配置图 秘密秘密 第 10 页 共 32 页 3 1 3项目环境配置项目环境配置 1 新建 Eclipse 项目 File New Project 参见图 3 2 Java Project Next 参见图 3 3 Project Name 项目名 Webtest Project 参见图 3 4 Next Finish 参见图 3 5 图 3 2 图 3 3 输入创建的工程名字 秘密秘密 第 11 页 共 32 页 图 3 4 图 3 5 2 导入自动化测试的 jar 包和相应的 lib 库 秘密秘密 第 12 页 共 32 页 Classpath Build Path Configure Buid path 参见图 3 6 Libraries Add External JARs 加入 jar OK 参见图 3 7 图 3 6 图 3 7 从官网上下载的 selenium 包含了 selenium java 2 0b3 jar selenium java 2 0b3 srcs jar 和 libs 其中 selenium java 2 0b3 srcs jar 是源文件的 jar 包 不需要导入工程 其他包都要 导入 所有需导入工程的 jar 包已整理在 Selenium0 2 0 中 详细说明如下 a webtest selenium jar webtest webdirver jar 参见 3 1 1 章节 根据选择的实现 方法加入对应的 jar 包 b 加入 selenium java 2 0b3 jar c 加入 selenium java 2 0b3 文件夹下 libs 里面的所有 jar 3 新建 package 包 在 src 包文件夹下面建立一个属于自己系统的 Web 自动化测试的 package 包 包 package 的命名规范 全部小写 测试代码 package 为 com paic 例如 com paic its demo 选中 src 资源包 右键单击 New Package 参见图 3 8 name com paic its demo Finish 参见图 3 9 图 3 8 图 3 9 3 2 测试案例编写测试案例编写 秘密秘密 第 14 页 共 32 页 3 2 1Selenese 语法语法 Selenium 提供了一套丰富的命令来测试你的 web 应用 这套命令通常叫 Selenese 它可以用于测试基于 HTML 标签的页面元素 例如 链接 输入框 下拉框 提交表单 表格数据等 具体常用命令可以参见附录 A Selenese 命令调用格式主要包括三部分 Command 命令 Target 目标 Value 值 下面通过个简单的例子说明 selenium type j username username 此命令的目的是输入登陆用户名 具体解析如图 3 10 所示 Command 命令 命令 Target 目标 目标 Value 值 值 例 1 selenium type j username username 图 3 11 Selenese 命令调用格式图 Selenese 命令可以转变为编程代码 他可以同时支持包括 C java php Perl 在内 的多种语言 这里我以 java 语言为例举一个简单的例子 这是一个系统登陆的案例 实现 的功能包括 打开登陆界面 输入登陆用户名 密码 点击登陆 通过这个案例我们可以很容易的理解 selenium 如何运行 Selenese 命令 同时细心的人 应该注意到了 在 Selenese 命令中 Target 目标 或者 Value 值 有时是可以省略的 例如 selenium open selenium waitForPageToLoad public void testLogin throws Exception String username gtdtest115 登陆用户名 String password vvvvv88888 登陆密码 selenium open nets tmr life login jsp 打开登陆界面 selenium waitForPageToLoad 30000 等待页面加载 selenium type j username username 输入登陆用户名 selenium type j password password 输入登陆密码 selenium click Submit 点击登陆按钮 selenium waitForPageToLoad 60000 等待加载界面 selenium stop 关闭selenium 3 2 2XPath 介绍介绍 XPath 是一门在 XML 文档中查找信息的语言 XPath 用于在 XML 文档中通过元 素和属性进行导航 它包含一个标准函数库 使用路径表达式来选取 这些路径表达式和 我们在常规的电脑文件系统中看到的表达式非常相似 Selenium 用 XPath 技术来记录网页元素的位置和属性 下面通过个简单的例子说明 在这个案例中我们要做的操作是选择查询结果中的第一条数据 系统界面图和代码解 秘密秘密 第 15 页 共 32 页 析图见图 3 11 和图 3 12 XPath 路径为 table id questResult tbody tr 1 td 1 input 图 3 12 系统界面图 图 3 13 代码解析图 解析如下 1 路径以双斜线 开头 则表示选择文档中所有满足双斜线 之后规则的元素 无论 层级关系 即寻找 table 下面所有满足此路径条件的数据 2 前缀 用于指定属性 table id questResult 则表示在 table 下面查询到满足 id questResult 的数据 如图 3 13 图 3 14 代码解析图 3 以斜线 开始 那么该路径就表示到一个元素的绝对路径 在此案例中 tbody tr 1 td 1 input 则表示选择在 tbody 下面第一行第一列的 input 数据 如图 3 14 秘密秘密 第 16 页 共 32 页 图 3 15 代码解析图 3 2 3测试案例框架测试案例框架 Selenium 的开发提供的 SeleneseTestCase 是 Junit3 风格的 所以我们的自动化测试案 例要符合 Junit3 的框架 Junit3 的测试案例 包括三个部分 测试方法 test 初始化函数 setUp 和结束初 始化函数 tearDown 这三者的执行顺序是 setUp test tearDown 此外 Junit3 在命名规范和继承层次上有严格的要求 1 测试类 测试类必须继承 TestCase SeleneseTestCase 是 TestCase 的子类 所以在新建的测试 类直接继承 SeleneseTestCase 即可 2 测试方法 测试方法必须是 Public 且以 test 开头 为了使命名更为规范 测试方法名应与测试 案例的功能模块相关 如 测试保单查询功能的测试方法写为 testPolicySerch 3 初始化函数 测试案例中 必须包含初始化函数 setUp 和 tearDown setUp 执行在测试方法之前 我们统一将初始化浏览器 登陆测试系统的操作放在这一函数中 在每次测试方法运行前 执行 tearDown 函数中统一放置关闭浏览器的操作 在测试方法之后执行 结束当前测 试案例 新建测试案例的步骤如下 选中新建的 Package 右键 New Junit Test Case 参见图 3 15 Name Finish 参见图 3 16 秘密秘密 第 17 页 共 32 页 图 3 16 图 3 17 建好的 SeleneseTestCase 会提示 The type SeleneseTestCase is deprecated 根据提 示增加 SuppressWarnings deprecation 忽略类已过时的警告 接下来完善我们的测 试案例 根据命名规则 新建测试方法 重写 setUp 和 tearDown 详见模板文件 Demo java 步骤简单介绍如下 1 创建 webtest 类的对象 webtest itsTest new webtest 2 重写 setUp 秘密秘密 第 18 页 共 32 页 setUp 需要完成 webtest 的初始化和测试系统的登陆 相关参数均从配置文件中读取 参见第 5 章 数据管理 范例如下 public void setUp throws Exception 变量赋值 String fileName config xml 配置文件名 String ip itsTest parserFromXml fileName ip ip int port Integer parseInt itsTest parserFromXml fileName port 端口号 String browser itsTest parserFromXml fileName browser 浏览器 String baseUrl itsTest parserFromXml fileName url 基本URL String extendedUrl itsTest parserFromXml fileName extendedUrl 扩展URL String username itsTest parserFromXml fileName user 登陆用户名 String password itsTest parserFromXml fileName pwd 登陆密码 测试初始化 itsTest initialize baseUrl ip port browser 初始化 itsTest login extendedUrl username password 系统登陆 上面的范例是基于 selenium 的 如果是基于 WebDriver 在初始化的时候 只需要传 Url 参数 其他参数不用传 如 itsTest initialize baseUrl null 0 null 初始化 3 重写 tearDown public void tearDown throws Exception itsTest close 关闭浏览器 结束测试 4 新建测试方法 在不同的测试案例中 除了测试方法 其他基本大同小异 编写测试方法的时候 要 以测试逻辑为依据 并结合 selenese 命令去实现测试逻辑 以 NETS ITSADMIN 的名单批 次查询为例 测试方法编写如下 测试方法 throws Exception public void testDemo throws Exception String firMenu Image2 一级菜单 String secMenu link 名单批次查询 二级菜单 String inputBatchName batchName 名单批次 String btnSerch input value 查 询 查询按钮 String resultBatchName tr id row0 td 1 查询结果 String valueBatchName CMP201103021564 03 201103 批次名称 String serchMode1 element itsTest isPresent 10 firMenu serchMode1 验证菜单是否存在 itsTest click firMenu 点击 名单管理 itsTest click secMenu 点击 名单批次查询 itsTest type inputBatchName valueBatchName itsTest click btnSerch 点击查询按钮 assertEquals valueBatchName itsTest getText resultBatchName 秘密秘密 第 19 页 共 32 页 至此 一个测试案例就完成了 参照图 3 17 运行测试案例 需要注意的是 如果使 用的底层实现方法是 Selenium 要先启动Selenium server 启动命令如下 java jar selenium server jar 图 3 18 4管理测试案例管理测试案例 4 1 测试工程目录结构测试工程目录结构 单个测试案例调试完毕之后 需将案例放到执行机下的固定目录 统一运行和管理测 试案例集 现在我们使用的方案是通过 Jenkins 调用 Ant 完成测试案例的编译和运行 如图 4 1 这是一个被测系统在执行机上必须要有的文件和文件夹 src 测试案例源文件 直接复制 Eclipse 工程下的测试案例文件 后续将会统一从配 置管理工具 CC SVN 上取得 lib 需要用到的外部包和配置文件 即在 Eclipse 中加载到 Classpath 中的所有包和文 件 xsl Ant 输出的测试报告样式 待 Jenkins 功能完善后 Ant 不需要输出测试报告 则 该文件夹可以取消 样式模板详见 测试报告样式模板 build xml Ant 的脚本文件 一般不作修改 run properties 配置 Ant 的测试脚本 可以根据实际的目录修改 模板详见 脚本文件 模板 lib xsl src 测试案例源文件 测试报告的样式文件 需要用到的外部jar包和配置文件 build xml run properties Ant的脚本文件 Ant的脚本文件的配置文件 系统名称 图 4 1 秘密秘密 第 20 页 共 32 页 4 2 使用使用 Ant 运行测试案例运行测试案例 4 2 1Ant 介绍介绍 Ant Another Neat Tool 是一个基于 Java 的跨平台构建工具 作为一个优秀的构建工 具 Ant 有如下的优点 1 跨平台 因为 ant 是使用 java 实现的 所以它跨平台 2 使用简单 与 ant 的兄弟 make 比起来 3 语法清晰 同样是和 make 相比 Ant 下载地址 http ant apache org bindownload cgi 4 2 2Ant 基本语法基本语法 1 ant 的编译文件默认为 build xml 一般无需改变 2 build xml 的根节点为 一般格式如下 name 为工程名称 default 为默认的 target 就是任务 basedir 就是基路径 一般为 3 property 可以定义变量 一般格式如下 引用的时候这么引用 test 如果变量是路径的话 则可以这么定义 4 定义 target name 的值为 target 的名称 可以在编译的时候指定是完成哪个 target 否则采用 project 那里定义的 default depends 则定义了依赖关系 值为其他 target 的 name 多个依赖关系用 隔开 顺序执行完定义的依赖关系 才会执行这个 target target 在 build xml 中定义的顺序无所谓 但是 depends 中的顺序必须正确 5 构建文件包括元素 以及其中嵌套的 和 元素 下面是一个通用的构建文件 它很适合作为一个模板 秘密秘密 第 21 页 共 32 页 关于构建文件的注意事项 所有构建文件都要有元素 而且至少有一个 元素 对于 元素的 default 属性并没有默认值 构建文件并不一定要被命名为 build xml 不过 build xml 是 Ant 要搜索的默认文件 名 每个构建文件只能有一个 元素 4 2 3输出测试报告样式输出测试报告样式 将 xsl 文件夹下 测试报告样式模板中的 NETS ITSADMIN 全部替换成当前测试 系统名称即可 4 2 4Ant Build Ant 的 XML 配置文件的结构很简单 这也是 Ant 的一个优点 简单易懂 容易上手 Ant 的配置文件主要由 project target 和 task 三层树型结构组成 一般情况下 工程中的 build xml 不需要修改 只需要根据当前的目录 修改配置文 件 run properties 即可 我们用到的 build xml 其中包含了 4 个任务 target 分别是 Junit Compile RunTest DataClean 且按顺序执行 每个 target 的实现 请结合 4 2 2Ant 基本语法参看模板文件 build xml Junit 完成初始化 Compile 完成测试案例的编译 RunTest 运行测试案例 并生成测试报告 DataClean 清理测试数据 测试人员可根据执行机上的实际目录修改 run properties 配置文件 run properties 中有 6 个参数 如下 testSrc dir 测试案例目录 xsl dir 测试报告样式目录 lib dir 引用外部 jar 包和配置文件目录 reports dir 执行机本地生成的测试报告目录 run classes 编译后的测试案例目录 use jenkins 是否在使用 Jenkins 监控 yes no 秘密秘密 第 22 页 共 32 页 4 3 使用使用 Jenkins 管理自动化测试任务管理自动化测试任务 4 3 1Jenkins介绍介绍 Jenkins 原 Hudson 是一款 Java 平台的开源持续集成 Continuous Integration CI 引擎 它易于安装 配置简单 丰富的插件支持 高度的可扩展性 强大的分布式构建能 力都让它在众多的 CI 引擎中脱颖而出 所以我们选用 Jenkins 来管理测试案例 以便以后 进行持续集成 4 3 2Jenkins任务创建任务创建 在 Jenkins 中创建任务的步骤如下 1 登陆 Jenkins http hcd it 44 8000 jenkins 此地址后续可能会更改 2 新建任务 根据测试系统填写任务名称 选择构建一个多配置项目 点击 OK 参见图 4 2 图 4 2 3 选择执行机 Configuration Matrix Slaves Individual nodes 勾选执行测试案例的 执行机 参见图 4 3 图 4 4 秘密秘密 第 23 页 共 32 页 图 4 3 图 4 4 4 选择构建方式 Build Invoke Ant 参见图 4 5 Targets build xml 文件中的 default Build File 执行机上 build xml 的路径 参见图 4 6 图 4 5 图 4 6 5 选择打印输出结果 Post build Actions Publish JUnit test result report Test report XMLs xml 参见图 4 7 秘密秘密 第 24 页 共 32 页 图 4 7 4 3 3Jenkins任务执行任务执行 选中建好的 Jenkins 任务 NETS ITSADMIN 点击立即构建 即可运行测试案例 参见图 4 8 图 4 8 4 3 4Jenkins执行结果查看执行结果查看 案例执行完之后 可以通过执行状态 查看执行结果 任务状态及描述如图 4 9 秘密秘密 第 25 页 共 32 页 图 4 9 在案例执行的时候 也可进入构建状态 通过查看命令行输出 进行测试案例的监控 参加图 4 10 图 4 10 5数据管理数据管理 5 1 1自动化测试流程图自动化测试流程图 自动化测试的过程包括 测试数据准备 测试脚本运行 生成测试报告 其中测试数 据准备包括两个步骤 JDBC 连接数据库 数据回滚脚本的运行 如图 5 1 所示 秘密秘密 第 26 页 共 32 页 JDBC连接数据库 运行数据回滚脚本 自动化测试报告 自动化测试 开始 自动化测试 结束 运行测试脚本 测 试 数 据 准 备 图 5 1 自动化测试流程图 5 1 2JDBC 连接数据库代码范例连接数据库代码范例 JAVA 的数据库操作 需要先建立 DB 连接 然后在 DB 中执行查询 更新 插入 删除等操作 并从查询操作中获取数据 代码范例如下 public void DBTest throws Exception 秘密秘密 第 27 页 共 32 页 String url Oracel DB URL String username Oracel DB username String password Oracle DB password String fileName config file String cmd select select description from N OTHER TESTING String cmd update update N OTHER TESTING set description NUll String cmd insert insert into N OTHER TESTING String cmd delete delete from N OTHER TESTING String cmd commit commit Fetch parameter from config file fileName config xml url parserFromXml fileName url username parserFromXml fileName ldsuser password parserFromXml fileName ldspwd Load Oracle Server JDBC driver Class forName oracle jdbc driver OracleDriver newInstance Get connection to DB Connection con DriverManager getConnection url user pwd Create statement object Statement st con createStatement Send SQL SELECT statements to the database via the Statement execute Query ResultSet result select st executeQuery cmd select ResultSet result update st executeQuery cmd update ResultSet result insert st executeQuery cmd insert ResultSet result delete st executeQuery cmd delete ResultSet result commit st executeQuery cmd commit Fetch value of description from result select object String description while result select next description result select getString description con close 步骤 1 从配置文件中获取登录数据库的连接串 用户名 密码 fileName config xml url parserFromXml fileName url username parserFromXml fileName ldsuser password parserFromXml fileName ldspwd 步骤 2 加载 oracle 数据库驱动 Class forName oracle jdbc driver OracleDriver newInstance 注 需要加载 oracle JDBC 的 jar 包到 Eclipse 的 lib 中 下载地址 步骤 3 登录 oracle 数据库 Connection con DriverManager getConnection url user pwd 步骤 4 创建 Statement 对象 Statement st con createStatement 秘密秘密 第 28 页 共 32 页 步骤 5 通过 Statement 对象执行 SQL 语句 ResultSet result select st executeQuery cmd select ResultSet result update st executeQuery cmd update ResultSet result insert st executeQuery cmd insert ResultSet result delete st executeQuery cmd delete ResultSet result commit st executeQuery cmd commit 步骤 6 获取测试人员关心的查询结果 String description while result select next description result select getString description 步骤 7 关闭数据库连接 con close 注 如果不关闭数据库连接可能带来一些严重的问题 5 1 3数据回滚脚本数据回滚脚本 数据回滚脚本的基本原则 数据回滚脚本需将自动化数据回滚到初始化状态 测试人员应该屏蔽系统归档 备份功能对测试数据的影响 例如可以通过修改创建日 期使其永远不会被归档或备份 自动化测试新生成的垃圾数据 建议及时清理 如 delete 语句 以免造成系统负载 过大 建议测试逻辑涵盖测试数据的整个生命周期 例如 案例 A 新建测试机构 Dept 案例 B 查询测试机构 Dept 案例 C 修改测试机构 Dept 案例 D 删除测试机构 Dept 数据回滚脚本应在每次执行自动化测试案例前执行 5 1 4数据初始化脚本数据初始化脚本 数据初始化脚本的基本原则 1 自动化测试数据要与手动测试分离 如将自动化测试数据特定到某个特定条件 如某个机构或某天 2 自动化测试数据的命名应该显著区别于手工测试数据 3 数据初始化脚本要有备份 以便在数据库发生变更后快速恢复测试数据 4 数据初始化脚本不需要定期执行 仅在新建测试环境或测试数据库发生变更后执 行 秘密秘密 第 29 页 共 32 页 5 1 5配置文件管理配置文件管理 1 配置文件内容范例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论