
Proficient QTP and software automation testing framework design practice
副标题:无
作 者:张斌编著
分类号:
ISBN:9787115223302
微信扫一扫,移动浏览光盘
简介
本书从测试自动化工具QTP应用、开源测试自动化工具实践、测试自动
化框架设计与实现几个方面来讲解测试自动化的实战知识,同时,为了达到
学以致用的目的,书中给出了大量实例,方便读者把所学应用到自己的软件
测试项目中。
本书以循序渐进的方式讲解了自动化功能测试的全部知识,包括4篇和
附录部分,第一篇在实践中熟悉自动化测试过程(第1~6章),主要围绕一个
自动化测试项目的开展过程来讲解,介绍了如何采取QTP去实现自动化测试
;第二篇QTP功能详解(第7~14章),主要是围绕着QTP各个功能的应用进行
讲解,并对相关的知识点给予深入探讨;第三篇QTP实战技术应用(第15~22
章),主要是围绕着软件测试实际需求来讲解自动化测试中的各种测试实战
知识,如Ajax、PDF、DOS、UNIX、Win32 API、WSH COM等自动化测试技术;
第四篇自动化测试框架与实践(第23~25章),首先对测试自动化框架基础知
识进行了概要介绍,然后从数据管理、控制管理、错误管理、报告管理、第
三方组件管理5个方面来讲解如何去设计和实施测试自动化的框架,并通过
讲解自己编写的一个测试自动化框架来阐述如何在项目测试中具体使用框架
。
本书通过详细的例子进行分析和讲解,让读者可以通过示例进行理解,
并且可以自己进行尝试,非常适合独立学习和研究自动化测试技术的初、中
级读者使用,也适合希望了解功能测试自动化方法和过程的测试工程师阅读
,同时也可以作为各类培训学校相关专业的教材和大专院校的参考书。
目录
第一篇 在实践中熟悉自动化测试过程
第1章 自动化测试基础 1
1.1 什么是软件功能测试自动化 2
1.2 增量式测试 3
1.3 订票系统做了什么 3
1.3.1 测试用例 3
1.3.2 页面流 4
1.4 测试 4
第2章 搭建基础性测试脚本 5
2.1 自动化测试相关概念 6
2.1.1 对象 6
2.1.2 关键字 7
2.2 根据案例录制脚本 7
2.2.1 创建不同的action 8
2.2.2 修改ie浏览器配置 9
2.2.3 录制脚本 9
2.2.4 让脚本跑起来 12
2.3 qtp录制的技巧 12
2.3.1 qtp支持的浏览器版本 12
2.3.2 qtp event的设置 13
.2.3.3 java应用录制设置过程 15
2.4 总结 16
第3章 完善登录模块测试脚本 17
3.1 数据池 18
3.2 参数化用户名和密码数据 18
3.2.1 参数化login action的用户
名和密码 19
3.2.2 参数化技巧 21
3.2.3 参数化relogin action的
用户名和密码 22
3.3 页面流程控制 23
3.3.1 判别单击登录按钮页面
流转 23
3.3.2 如何控制脚本调用流程 24
3.3.3 如何在页面参数校验 27
3.4 我们做了什么 29
第4章 完善订票模块测试脚本 30
4.1 往返城市的动态选择 31
4.1.1 qtp关于动态控件判别
函数 32
4.1.2 随机获取往返城市 33
4.2 找出脚本原因 34
4.3 如何修正脚本 35
4.3.1 脚本修正思路 35
4.3.2 编写技巧 36
4.3.3 脚本实现分析 36
第5章 完善删票模块测试脚本 38
5.1 删除模块运行出错的原因 39
5.2 如何随机删除一张或者多张机票 39
5.2.1 对象信息分析 39
5.2.2 如何获取页面票号并随机
选择 40
5.2.3 如何动态生成票号对象 42
5.2.4 删除随机选择的票号 42
5.3 我们做了什么 43
第6章 让测试脚本灵活起来 44
6.1 工作流程的维护 45
6.1.1 工作流程的变化 45
6.1.2 工作流程的设置方法 46
6.2 测试数据维护的便捷性 47
6.2.1 测试数据维护分析 47
6.2.2 测试数据输入编写技巧 48
6.3 错误处理机制 50
6.3.1 错误处理的约定 50
6.3.2 错误处理程序实践 51
6.4 我们做了什么 55
第二篇 qtp功能详解
第7章 qtp安装、运行及常见错误处理 57
7.1 qtp安装中常见问题解决策略 58
7.1.1 安装提示installshield 1607
错误 58
7.1.2 重复安装qtp不同的版本
导致qtp安装出错 59
7.1.3 qtp安装时提示command
错误 60
7.2 qtp 运行常见问题 60
7.2.1 qtp无法正常识别对象 60
7.2.2 无法启动ie浏览器进行
录制 62
7.2.3 qtp在连续运行长时间后
出现内存耗尽解决策略 63
7.2.4 解决qtp 9.x不支持ie8
浏览器兼容性的问题 64
7.3 小结 64
第8章 qtp的工作流程与录制及运行模式
65
8.1 qtp结构整体介绍 66
8.1.1 qtp视窗 66
8.1.2 qtp的工作流程 67
8.2 qtp录制过程 68
8.2.1 qtp三种录制模式 68
8.2.2 三种录制策略 71
8.2.3 影响qtp录制和脚本更改
的属性 73
8.3 运行设置 76
8.3.1 三种运行模式 76
8.3.2 运行并更新属性 77
8.4 脚本调试 78
8.4.1 设置/取消断点的方法 78
8.4.2 调试的三种模式 78
8.4.3 调试信息跟踪 79
8.5 小结 80
第9章 脚本的参数化处理过程 81
9.1 输入参数 82
9.1.1 图形化参数化设置 82
9.1.2 参数输入来源 84
9.2 输出参数过程 86
9.2.1 图形化参数输出过程 87
9.2.2 getroproperty与
gettoproperty函数 88
9.3 action参数传递 89
9.3.1 通过parameter函数进行
参数传递 89
9.3.2 采取environment函数进行
参数传递 91
9.3.3 采取datatable进行参数
传递 91
9.3.4 三种模式参数传递的异同 92
9.4 数据驱动运行模式 92
9.4.1 图形化运行控制设置 93
9.4.2 动态控制运行模式 94
9.5 小结 95
第10章 数据池技术(datatable) 96
10.1 datatable整体结构图 97
10.2 datatable sheet的管理 97
10.2.1 两种类型的datatable
sheet 97
10.2.2 创建sheet 98
10.2.3 删除sheet 99
10.2.4 获取sheet对象 100
10.3 datasheet parameter管理 100
10.3.1 图形化参数管理 101
10.3.2 addparameter函数 101
10.3.3 deleteparameter函数 102
10.3.4 getparameter函数 103
10.4 datasheet行号控制与获取及
设置参数值 103
10.4.1 设置、获取当前行 103
10.4.2 设置上移与下移行号 104
10.4.3 获取或者设置参数值 106
10.5 小结 109
第11章 qtp过程校验 110
11.1 qtp提供的检查点类型与对不同
的环境的支持力度 111
11.2 数据校验 112
11.2.1 标准检查点 112
11.2.2 文本检查点 114
11.2.3 文本区域检查点 115
11.2.4 xml检查点 116
11.3 图片校验 118
11.3.1 图片检查点设置方法 119
11.3.2 图片检查结果校验 120
11.4 数据库校验 121
11.4.1 数据检查点案例分析 121
11.4.2 设置数据库检查点 121
11.4.3 结果校验 124
11.5 手工校验模式 124
11.5.1 校验控件是否存在
(exist) 124
11.5.2 checkproperty函数 125
11.6 小结 127
第12章 qtp对象采集、回放与
管理过程 128
12.1 qtp对象采集 129
12.1.1 对象属性采集设置流程 129
12.1.2 对象属性设置方法 129
12.1.3 order identifier功能详解 131
12.1.4 smart identifier(智能
标识)操作流程 133
12.2 脚本运行过程中对象识别过程 135
12.2.1 qtp对象识别的流程图 135
12.2.2 影响运行过程中对象识别
能力的设置 136
12.3 对象信息管理 138
12.3.1 两种类型的对象库
(local、share)异同 139
12.3.2 混合对象库的对象存储
流程 140
12.3.3 更新共享库中的对象
信息 142
12.3.4 比较与合并对象 144
12.4 小结 147
第13章 qtp自定义模式 148
13.1 qtp控件函数自定义扩展策略 149
13.1.1 registeruserfunc函数
介绍与图形化的操作 149
13.1.2 扩展qtp控件中提供的
默认函数功能 151
13.1.3 添加新的方法到指定的
控件 152
13.2 qtp自定义编程策略 152
13.2.1 调用控件内部方法 153
13.2.2 描述性编程 154
13.2.3 dotnetfactory接口 157
13.3 qtp自定义错误处理 159
13.3.1 qtp错误处理循环控制
四种策略 159
13.3.2 recovery策略 160
13.3.3 自定义错误处理程序 164
13.4 小结 165
第14章 qtp自动化测试对象
模型介绍 166
14.1 自动化测试对象控制模型
(aom)介绍 167
14.1.1 自动化测试对象控制模型
(aom)接口的分类 167
14.1.2 aom接口调用所支持的
开发语言 168
14.1.3 c#与vbscript调用aom
接口的方法 168
14.2 对qtp脚本进行各类自定义
设置操作 171
14.2.1 通过程序来设置插件
属性 171
14.2.2 通过程序动态设置脚本
资源文件 174
14.2.3 通过程序动态设置对象
标识属性 175
14.3 通过程序控制脚本的运行与
datatable设置 178
14.3.1 通过程序来控制qtp
脚本运行 178
14.3.2 通过程序进行管理
datatable操作 181
14.4 通过程序进行控制脚本参数的
传输 182
14.4.1 手工设置脚本参数 182
14.4.2 通过aom使得外部程序
与qtp进行数据交互 184
14.5 在c#中调用aom关注事项 187
14.5.1 在c#中启动qtp注意
事项 187
14.5.2 在c#中无法直接调用
aom对象的一些方法 187
14.6 小结 188
第三篇 qtp实战技术应用
第15章 qtp与ajax测试 189
15.1 ajax技术简介 190
15.2 案例讲解—ajax应用分析 190
15.2.1 应用框架介绍 190
15.2.2 应用的元素分析 191
15.2.3 采用第三方工具捕获隐藏
对象 192
15.2.4 编写脚本思路与脚本
实现 193
15.3 ajax自动化测试
分析 197
第16章 qtp与pdf文件测试 198
16.1 pdf文件测试技术简介 199
16.2 案例讲解:如何获取 pdf文件
的页数 199
16.3 adobe com接口介绍 200
16.3.1 注册表信息 200
16.3.2 adobe ole automation dom结构图 201
16.3.3 acrobat对象详解 201
16.4 案例讲解:pdf格式文件文本
检查以及按钮状态检查 202
16.4.1 封装adobe调用接口 202
16.4.2 qtp脚本调用 203
16.5 测试结果分析 204
第17章 qtp与dos命令行程序的
测试 206
17.1 dos命令行操作简介 207
17.2 通过systemutil对象模拟dos
操作 208
17.2.1 systemutil对象介绍 208
17.2.2 qtp对象属性分析 208
17.2.3 键盘模拟操作特殊键值 209
17.3 输出的捕获与校验 210
17.3.1 getvisibletext函数
介绍 210
17.3.2 结果输出与校验 210
17.3.3 getvisibletext函数的
局限性 211
17.4 利用wsh对象进行dos结果
校验 212
17.4.1 wshscriptexec对象 212
17.4.2 环境变量的设置 213
17.4.3 wsh方法的结果输出与
校验 213
17.5 案例讲解:测试workingset
dos程序 214
17.5.1 working set程序介绍 214
17.5.2 程序测试用例 215
17.5.3 自动化测试程序
实现 215
17.6 dos测试思路分析 216
第18章 qtp与win 32 api测试 217
18.1 win 32 api测试简介 218
18.2 qtp调用win 32 api的方法 218
18.2.1 win32 api函数声明
格式 218
18.2.2 qtp中调用win 32 api
函数介绍 219
18.2.3 案例讲解:调用
findwindow函数 219
18.2.4 win 32 api参数类型的
转化 219
18.2.5 自动生成qtp调用函数
工具介绍 221
18.2.6 案例讲解:qtp脚本回放
时控件状态自动校验并高
亮显示控件 221
18.3 自定义动态链接库并发布接口在qtp中调用 223
18.3.1 动态链接库技术简介 223
18.3.2 在visual c++中如何编写
动态链接库 223
18.3.3 如何校验动态链接库发布
出来的接口 225
18.3.4 qtp调用自定义动态
链接库 226
18.4 qtp调用第三方链接库思路
分析 227
第19章 telnet和ssh远程操作自动化
测试 228
19.1 远程操作技术简介 229
19.2 securecrt activex介绍 229
19.2.1 activex接口结构图 229
19.2.2 接口对象介绍 230
19.2.3 securecrt支持的语言及
调用方法 230
19.2.4 脚本运行方法 230
19.2.5 securecrt错误处理
方法 232
19.3 securecrt关键对象详解 232
19.3.1 session对象 232
19.3.2 connect函数的语法 233
19.3.3 screen对象 234
19.3.4 多样的检查点 235
19.3.5 获取指定位置的字符 237
19.3.6 请求的发送 238
19.4 案例讲解:远程登录unix服务
器自动化测试 239
19.4.1 测试案例 239
19.4.2 脚本实现 240
19.5 远程服务自动测试思路分析 241
第20章 windows脚本宿主(wsh)
应用 242
20.1 wsh技术简介 243
20.1.1 wsh引擎定义 243
20.1.2 wsh的主要用途 243
20.2 wsh对象详解 244
20.2.1 wsh对象结构图 244
20.2.2 wsh内嵌对象说明 245
20.2.3 createobject与
getobject 245
20.3 什么是wmi 246
20.4 在qtp中不支持的wscript的
属性和方法 247
20.5 wsh常用对象介绍 248
20.5.1 wshell对象 248
20.5.2 wshell主要功能 249
20.5.3 wshell常用的方法与
属性 249
20.5.4 案例讲解:结合qtp来
获取系统中相关的环境
变量值 251
20.5.5 案例讲解:判别某一
程序是否被激活 252
20.5.6 案例讲解:获取、写操作
系统日志 253
20.5.7 案例讲解:定时弹出
窗口 254
20.5.8 案例讲解:注册表操作 255
20.5.9 案例讲解:模拟键盘发送
快捷方法 258
20.6 wsh其他相关对象 262
20.6.1 网络映射 262
20.6.2 增加快捷栏标识 263
20.7 wsh总结 264
第21章 正则表达式应用 265
21.1 正则表达式技术简介 266
21.1.1 结果校验的两种方法 266
21.1.2 正则表达式应用
无处不在 266
21.2 正则表达式使用 267
21.2.1 正则表达式的用途 267
21.2.2 元字符 267
21.2.3 特殊字符 268
21.2.4 非打印字符 269
21.2.5 普通字符 269
21.2.6 字符匹配 270
21.2.7 括号表达式 270
21.2.8 限定符 272
21.2.9 定位符 273
21.2.10 选择与编组 275
21.2.11 向后引用 276
第22章 qtp实用技巧 279
22.1 qtp应用技巧简介 280
22.2 巧用qtp中web脚本回放
类型 280
22.2.1 qtp中web两种回放
类型 280
22.2.2 ui修改回放类型的方法 280
22.2.3 程序修改回放类型的
方法 280
22.2.4 类型设置不当引发的
错误 281
22.2.5 案例讲解:回放类型适用
范围 282
22.2.6 回放类型选择的思路
分析 284
22.3 qtp脚本无法保存 284
22.3.1 脚本无法保存的表象 284
22.3.2 挖掘问题的原因 284
22.3.3 问题的三种解决策略 285
22.4 qtp与java程序测试 285
22.4.1 qtp无法录制java applet
程序解决策略 286
22.4.2 在qtp脚本中调用java
程序run time的方法 287
22.4.2.1 调用java控件
提供的方法 287
22.4.2.2 识别java runtime
方法 288
22.4.2.3 创建java新的
方法实例 289
22.4.2.4 解决qtp无法接
收java runtime
返回数组 290
22.4.3 隐藏的qtp java插件
调试方法 291
22.4.3.1 通过环境变量
设定跟踪级别 291
22.4.3.2 通过环境变量修改
日志输出路径 292
22.4.3.3 通过注册表修改日
志输出 293
22.5 巧用wsc编写vbscript com
组件与qtp保留组件调用 295
22.5.1 wsc技术简介 295
22.5.1.1 wsc含义 295
22.5.1.2 wsc结构 295
22.5.1.3 生成guid的值 297
22.5.2 wsc文件生成向导 297
22.5.3 添加com组件实现方法 298
22.5.4 注册wsc文件 299
22.5.5 使用qtp保留对象调用
com组件 300
22.5.5.1 注册表中增加
reserved对象 300
22.5.5.2 qtp中调用预先
设定的保留关键
对象 301
22.6 解决qtp对象无法识别的
问题 301
22.6.1 对象无法识别分析 302
22.6.1.1 问题表现与分析 302
22.6.1.2 案例讲解:录制属
性无法标识对象 302
22.6.1.3 解决程序录制时
对象属性无法
标识的策略 303
22.6.2 录制时对象能被识别,
但是回放失败(应用程
序发生变更) 304
22.6.3 无法录制应用自定义
对象 304
22.6.3.1 自定义对象分析 304
22.6.3.2 设定对象映射
关系 305
22.6.4 无法识别web页面自定义
的事件 306
22.6.4.1 问题的表现 306
22.6.4.2 问题原因分析 306
22.6.4.3 添加预定义web
事件方法 307
22.6.4.4 添加未预定的
事件方法 307
22.7 无法录制自定义控件的执行
方法 309
22.7.1 自定义控件问题分析 309
22.7.2 案例讲解:无法录制自定义
treeview控件的checkbox
操作方法 309
22.7.2.1 案例程序实现
逻辑 309
22.7.2.2 qtp原始脚本与
回放存在的问题 310
22.7.2.3 脚本问题分析 311
22.7.3 自定义控件的测试解决
策略 311
22.7.4 总结 316
第四篇 自动化测试框架设计与实践
第23章 测试自动化框架设计基础 317
23.1 测试与自动化测试 318
23.1.1 测试 318
23.1.2 自动化测试 319
23.2 测试自动化特点 319
23.3 测试自动化的限制 320
23.3.1 测试自动化无法智能化 320
23.3.2 测试自动化无法完全
替代手工测试 321
23.3.3 测试自动化无法提升
测试的有效性 321
23.3.4 测试自动化将制约了开发
的效率 321
23.4 测试自动化过程 321
23.4.1 测试自动化前期过程 321
23.4.2 输入 322
23.4.3 执行 322
23.4.4 输出 323
23.4.5 比较 323
23.4.6 缺陷发布与影像回放 323
23.5 小结 325
第24章 测试数据自动化管理的设计 326
24.1 测试数据自动化管理设计要素 327
24.2 测试数据的维度 328
24.3 测试数据的分类 329
24.3.1 业务数据 329
24.3.2 待测的对象 330
24.4 测试数据之间的关系 331
24.4.1 数据的权重 331
24.4.2 数据的内在约束 332
24.4.3 数据的惟一性 333
24.5 测试字段之间的关联与组合 334
24.5.1 字段之间的约束 336
24.5.2 字段之间的组合 337
24.6 测试数据设计要素 337
24.7 数据运行控制 338
24.7.1 手工测试数据运行控制
模式 338
24.7.2 测试数据关系提炼角度 339
24.7.3 测试数据运行控制导图 341
24.7.4 数据运行控制设计所
涉及的问题 342
24.8 测试数据自动化设计 343
24.8.1 测试数据保存约定 344
24.8.2 数据字典 344
24.8.3 数据运行控制模型 345
24.8.4 数据关系运算模式 347
24.8.5 数据关系运算 349
24.9 数据处理模型的实现 352
24.9.1 数据存储层实现 353
24.9.2 数据关系处理实现 360
24.9.3 数据格式定义与实例
调用 366
24.9.4 qtp调用实例 368
24.10 c#实现数据管理程序实例 369
24.10.1 设计结构简介 370
24.10.2 案例管理控制过程 371
24.10.3 数据关系设计 371
24.10.4 数据组合生成过程 373
24.10.5 自动生成用例 375
24.10.6 修改用例 375
24.10.7 com数据调用接口
简介 376
24.10.8 qtp即插即用接口与
vbs调用方法 379
24.11 小结 380
第25章 案例解析:自动化测试框架设计
与实践 381
25.1 初识案例解析技术 383
25.1.1 案例解析技术产生
的原因 383
25.1.1.1 传统的自动化测试过程 384
25.1.1.2 案例解析技术自动化测试过程 384
25.1.1.3 两种自动化测试技术的异同 384
25.1.2 案例解析技术的优势 386
25.1.2.1 由“被动”变为
“主动” 386
25.1.2.2 脚本的“原子
化” 387
25.1.2.3 脚本的高扩展性 387
25.1.3 案例解析技术的缺点 388
25.2 案例解析技术脚本形成要素 389
25.2.1 测试脚本结构分析 389
25.2.2 操作三种类型的数据
分析 390
25.2.2.1 数据的预知 390
25.2.2.2 测试数据预知的
意义 391
25.2.2.3 三类测试数据的
内在分析 391
25.3 案例解析技术设计蓝图 391
25.3.1 案例解析技术所涵盖的
模块 392
25.3.2 案例解析技术设计
结构图 393
25.4 自动化测试案例编写规则设计 393
25.4.1 自动化测试案例规则
提炼 393
25.4.1.1 规则设定的意义 393
25.4.1.2 原始案例内在
特性分析 393
25.4.1.3 测试脚本与测试
案例 394
25.4.2 自动化测试案例的规则
映射 394
25.4.2.1 直接映射 394
25.4.2.2 间接映射 395
25.4.3 自动化测试案例编写
设计 395
25.4.4 自动化案例管理媒介 397
25.4.5 自动化测试案例编写的
基本模式 397
25.4.6 待测对象与案例关系的
映射 398
25.5 自动化测试对象管理 399
25.5.1 获取待测对象属性以及
对象之间的模式 400
25.5.1.1 最佳的控制模式 400
25.5.1.2 递进的控制模式 402
25.5.2 对象采集的两种策略 404
25.5.2.1 程序采集 404
25.5.2.2 二类应用模式的
程序采集实例 404
25.5.2.3 手工采集模式 416
25.5.3 对象的保存模式和读取 418
25.5.3.1 对象的保存格式
与物理存储方式 418
25.5.3.2 xml存储结构 419
25.5.3.3 数据库存储格式 421
25.5.3.4 对象的读取 422
25.6 错误处理与缺陷发送 423
25.6.1 传统的错误处理模式 423
25.6.1.1 传统的错误处理
模式的不足 424
25.6.1.2 改进的策略 424
25.6.2 错误处理模式三种测试
设计技术 424
25.6.2.1 图片处理技术 424
25.6.2.2 伪视频技术 425
25.6.2.3 视频技术 426
25.6.3 错误处理程序实例讲解 427
25.6.3.1 错误处理程序
设计思路 427
25.6.3.2 图片处理技术
实例 428
25.6.3.3 错误处理程序
调用方式 431
25.6.3.4 如何获取到错误
控件的位置 431
25.6.4 缺陷发送处理技术 431
25.6.4.1 缺陷发送模式 432
25.6.4.2 什么是同步模式、异步模式 432
25.6.4.3 两种模式的异同 432
25.6.4.4 异步模式两种操
作方式 433
25.6.4.5 缺陷发送接口的
实例 433
25.7 自动化测试运行调度 438
25.7.1 作业的调度 438
25.7.1.1 作业调度的两种
模式 439
25.7.1.2 作业调度最容易
忽视的问题 439
25.7.1.3 作业调度信息交互
的过程 440
25.7.2 调度的前置任务 440
25.7.2.1 什么是前置任务 440
25.7.2.2 前置任务的类型 440
25.7.2.3 为什么要自动化
前置处理 441
25.7.3 运行控制 441
25.7.3.1 运行控制简介 441
25.7.3.2 自动化测试运行
控制过程 441
25.7.3.3 运行控制内容 442
25.7.3.4 循环控制部分
设计 443
25.7.3.5 运行控制代码
实例 444
25.7.3.6 传递请求、获取
返回值以及日志
系统 445
25.7.3.7 日志控制信息 446
25.7.4 调度的后置任务 447
25.7.4.1 后置任务的分类 447
25.7.4.2 后置任务的意义 447
25.8 小结 448
附录a 各类数据库odbc连接字符串 449
附录b 错误处理c#版本程序 453
第1章 自动化测试基础 1
1.1 什么是软件功能测试自动化 2
1.2 增量式测试 3
1.3 订票系统做了什么 3
1.3.1 测试用例 3
1.3.2 页面流 4
1.4 测试 4
第2章 搭建基础性测试脚本 5
2.1 自动化测试相关概念 6
2.1.1 对象 6
2.1.2 关键字 7
2.2 根据案例录制脚本 7
2.2.1 创建不同的action 8
2.2.2 修改ie浏览器配置 9
2.2.3 录制脚本 9
2.2.4 让脚本跑起来 12
2.3 qtp录制的技巧 12
2.3.1 qtp支持的浏览器版本 12
2.3.2 qtp event的设置 13
.2.3.3 java应用录制设置过程 15
2.4 总结 16
第3章 完善登录模块测试脚本 17
3.1 数据池 18
3.2 参数化用户名和密码数据 18
3.2.1 参数化login action的用户
名和密码 19
3.2.2 参数化技巧 21
3.2.3 参数化relogin action的
用户名和密码 22
3.3 页面流程控制 23
3.3.1 判别单击登录按钮页面
流转 23
3.3.2 如何控制脚本调用流程 24
3.3.3 如何在页面参数校验 27
3.4 我们做了什么 29
第4章 完善订票模块测试脚本 30
4.1 往返城市的动态选择 31
4.1.1 qtp关于动态控件判别
函数 32
4.1.2 随机获取往返城市 33
4.2 找出脚本原因 34
4.3 如何修正脚本 35
4.3.1 脚本修正思路 35
4.3.2 编写技巧 36
4.3.3 脚本实现分析 36
第5章 完善删票模块测试脚本 38
5.1 删除模块运行出错的原因 39
5.2 如何随机删除一张或者多张机票 39
5.2.1 对象信息分析 39
5.2.2 如何获取页面票号并随机
选择 40
5.2.3 如何动态生成票号对象 42
5.2.4 删除随机选择的票号 42
5.3 我们做了什么 43
第6章 让测试脚本灵活起来 44
6.1 工作流程的维护 45
6.1.1 工作流程的变化 45
6.1.2 工作流程的设置方法 46
6.2 测试数据维护的便捷性 47
6.2.1 测试数据维护分析 47
6.2.2 测试数据输入编写技巧 48
6.3 错误处理机制 50
6.3.1 错误处理的约定 50
6.3.2 错误处理程序实践 51
6.4 我们做了什么 55
第二篇 qtp功能详解
第7章 qtp安装、运行及常见错误处理 57
7.1 qtp安装中常见问题解决策略 58
7.1.1 安装提示installshield 1607
错误 58
7.1.2 重复安装qtp不同的版本
导致qtp安装出错 59
7.1.3 qtp安装时提示command
错误 60
7.2 qtp 运行常见问题 60
7.2.1 qtp无法正常识别对象 60
7.2.2 无法启动ie浏览器进行
录制 62
7.2.3 qtp在连续运行长时间后
出现内存耗尽解决策略 63
7.2.4 解决qtp 9.x不支持ie8
浏览器兼容性的问题 64
7.3 小结 64
第8章 qtp的工作流程与录制及运行模式
65
8.1 qtp结构整体介绍 66
8.1.1 qtp视窗 66
8.1.2 qtp的工作流程 67
8.2 qtp录制过程 68
8.2.1 qtp三种录制模式 68
8.2.2 三种录制策略 71
8.2.3 影响qtp录制和脚本更改
的属性 73
8.3 运行设置 76
8.3.1 三种运行模式 76
8.3.2 运行并更新属性 77
8.4 脚本调试 78
8.4.1 设置/取消断点的方法 78
8.4.2 调试的三种模式 78
8.4.3 调试信息跟踪 79
8.5 小结 80
第9章 脚本的参数化处理过程 81
9.1 输入参数 82
9.1.1 图形化参数化设置 82
9.1.2 参数输入来源 84
9.2 输出参数过程 86
9.2.1 图形化参数输出过程 87
9.2.2 getroproperty与
gettoproperty函数 88
9.3 action参数传递 89
9.3.1 通过parameter函数进行
参数传递 89
9.3.2 采取environment函数进行
参数传递 91
9.3.3 采取datatable进行参数
传递 91
9.3.4 三种模式参数传递的异同 92
9.4 数据驱动运行模式 92
9.4.1 图形化运行控制设置 93
9.4.2 动态控制运行模式 94
9.5 小结 95
第10章 数据池技术(datatable) 96
10.1 datatable整体结构图 97
10.2 datatable sheet的管理 97
10.2.1 两种类型的datatable
sheet 97
10.2.2 创建sheet 98
10.2.3 删除sheet 99
10.2.4 获取sheet对象 100
10.3 datasheet parameter管理 100
10.3.1 图形化参数管理 101
10.3.2 addparameter函数 101
10.3.3 deleteparameter函数 102
10.3.4 getparameter函数 103
10.4 datasheet行号控制与获取及
设置参数值 103
10.4.1 设置、获取当前行 103
10.4.2 设置上移与下移行号 104
10.4.3 获取或者设置参数值 106
10.5 小结 109
第11章 qtp过程校验 110
11.1 qtp提供的检查点类型与对不同
的环境的支持力度 111
11.2 数据校验 112
11.2.1 标准检查点 112
11.2.2 文本检查点 114
11.2.3 文本区域检查点 115
11.2.4 xml检查点 116
11.3 图片校验 118
11.3.1 图片检查点设置方法 119
11.3.2 图片检查结果校验 120
11.4 数据库校验 121
11.4.1 数据检查点案例分析 121
11.4.2 设置数据库检查点 121
11.4.3 结果校验 124
11.5 手工校验模式 124
11.5.1 校验控件是否存在
(exist) 124
11.5.2 checkproperty函数 125
11.6 小结 127
第12章 qtp对象采集、回放与
管理过程 128
12.1 qtp对象采集 129
12.1.1 对象属性采集设置流程 129
12.1.2 对象属性设置方法 129
12.1.3 order identifier功能详解 131
12.1.4 smart identifier(智能
标识)操作流程 133
12.2 脚本运行过程中对象识别过程 135
12.2.1 qtp对象识别的流程图 135
12.2.2 影响运行过程中对象识别
能力的设置 136
12.3 对象信息管理 138
12.3.1 两种类型的对象库
(local、share)异同 139
12.3.2 混合对象库的对象存储
流程 140
12.3.3 更新共享库中的对象
信息 142
12.3.4 比较与合并对象 144
12.4 小结 147
第13章 qtp自定义模式 148
13.1 qtp控件函数自定义扩展策略 149
13.1.1 registeruserfunc函数
介绍与图形化的操作 149
13.1.2 扩展qtp控件中提供的
默认函数功能 151
13.1.3 添加新的方法到指定的
控件 152
13.2 qtp自定义编程策略 152
13.2.1 调用控件内部方法 153
13.2.2 描述性编程 154
13.2.3 dotnetfactory接口 157
13.3 qtp自定义错误处理 159
13.3.1 qtp错误处理循环控制
四种策略 159
13.3.2 recovery策略 160
13.3.3 自定义错误处理程序 164
13.4 小结 165
第14章 qtp自动化测试对象
模型介绍 166
14.1 自动化测试对象控制模型
(aom)介绍 167
14.1.1 自动化测试对象控制模型
(aom)接口的分类 167
14.1.2 aom接口调用所支持的
开发语言 168
14.1.3 c#与vbscript调用aom
接口的方法 168
14.2 对qtp脚本进行各类自定义
设置操作 171
14.2.1 通过程序来设置插件
属性 171
14.2.2 通过程序动态设置脚本
资源文件 174
14.2.3 通过程序动态设置对象
标识属性 175
14.3 通过程序控制脚本的运行与
datatable设置 178
14.3.1 通过程序来控制qtp
脚本运行 178
14.3.2 通过程序进行管理
datatable操作 181
14.4 通过程序进行控制脚本参数的
传输 182
14.4.1 手工设置脚本参数 182
14.4.2 通过aom使得外部程序
与qtp进行数据交互 184
14.5 在c#中调用aom关注事项 187
14.5.1 在c#中启动qtp注意
事项 187
14.5.2 在c#中无法直接调用
aom对象的一些方法 187
14.6 小结 188
第三篇 qtp实战技术应用
第15章 qtp与ajax测试 189
15.1 ajax技术简介 190
15.2 案例讲解—ajax应用分析 190
15.2.1 应用框架介绍 190
15.2.2 应用的元素分析 191
15.2.3 采用第三方工具捕获隐藏
对象 192
15.2.4 编写脚本思路与脚本
实现 193
15.3 ajax自动化测试
分析 197
第16章 qtp与pdf文件测试 198
16.1 pdf文件测试技术简介 199
16.2 案例讲解:如何获取 pdf文件
的页数 199
16.3 adobe com接口介绍 200
16.3.1 注册表信息 200
16.3.2 adobe ole automation dom结构图 201
16.3.3 acrobat对象详解 201
16.4 案例讲解:pdf格式文件文本
检查以及按钮状态检查 202
16.4.1 封装adobe调用接口 202
16.4.2 qtp脚本调用 203
16.5 测试结果分析 204
第17章 qtp与dos命令行程序的
测试 206
17.1 dos命令行操作简介 207
17.2 通过systemutil对象模拟dos
操作 208
17.2.1 systemutil对象介绍 208
17.2.2 qtp对象属性分析 208
17.2.3 键盘模拟操作特殊键值 209
17.3 输出的捕获与校验 210
17.3.1 getvisibletext函数
介绍 210
17.3.2 结果输出与校验 210
17.3.3 getvisibletext函数的
局限性 211
17.4 利用wsh对象进行dos结果
校验 212
17.4.1 wshscriptexec对象 212
17.4.2 环境变量的设置 213
17.4.3 wsh方法的结果输出与
校验 213
17.5 案例讲解:测试workingset
dos程序 214
17.5.1 working set程序介绍 214
17.5.2 程序测试用例 215
17.5.3 自动化测试程序
实现 215
17.6 dos测试思路分析 216
第18章 qtp与win 32 api测试 217
18.1 win 32 api测试简介 218
18.2 qtp调用win 32 api的方法 218
18.2.1 win32 api函数声明
格式 218
18.2.2 qtp中调用win 32 api
函数介绍 219
18.2.3 案例讲解:调用
findwindow函数 219
18.2.4 win 32 api参数类型的
转化 219
18.2.5 自动生成qtp调用函数
工具介绍 221
18.2.6 案例讲解:qtp脚本回放
时控件状态自动校验并高
亮显示控件 221
18.3 自定义动态链接库并发布接口在qtp中调用 223
18.3.1 动态链接库技术简介 223
18.3.2 在visual c++中如何编写
动态链接库 223
18.3.3 如何校验动态链接库发布
出来的接口 225
18.3.4 qtp调用自定义动态
链接库 226
18.4 qtp调用第三方链接库思路
分析 227
第19章 telnet和ssh远程操作自动化
测试 228
19.1 远程操作技术简介 229
19.2 securecrt activex介绍 229
19.2.1 activex接口结构图 229
19.2.2 接口对象介绍 230
19.2.3 securecrt支持的语言及
调用方法 230
19.2.4 脚本运行方法 230
19.2.5 securecrt错误处理
方法 232
19.3 securecrt关键对象详解 232
19.3.1 session对象 232
19.3.2 connect函数的语法 233
19.3.3 screen对象 234
19.3.4 多样的检查点 235
19.3.5 获取指定位置的字符 237
19.3.6 请求的发送 238
19.4 案例讲解:远程登录unix服务
器自动化测试 239
19.4.1 测试案例 239
19.4.2 脚本实现 240
19.5 远程服务自动测试思路分析 241
第20章 windows脚本宿主(wsh)
应用 242
20.1 wsh技术简介 243
20.1.1 wsh引擎定义 243
20.1.2 wsh的主要用途 243
20.2 wsh对象详解 244
20.2.1 wsh对象结构图 244
20.2.2 wsh内嵌对象说明 245
20.2.3 createobject与
getobject 245
20.3 什么是wmi 246
20.4 在qtp中不支持的wscript的
属性和方法 247
20.5 wsh常用对象介绍 248
20.5.1 wshell对象 248
20.5.2 wshell主要功能 249
20.5.3 wshell常用的方法与
属性 249
20.5.4 案例讲解:结合qtp来
获取系统中相关的环境
变量值 251
20.5.5 案例讲解:判别某一
程序是否被激活 252
20.5.6 案例讲解:获取、写操作
系统日志 253
20.5.7 案例讲解:定时弹出
窗口 254
20.5.8 案例讲解:注册表操作 255
20.5.9 案例讲解:模拟键盘发送
快捷方法 258
20.6 wsh其他相关对象 262
20.6.1 网络映射 262
20.6.2 增加快捷栏标识 263
20.7 wsh总结 264
第21章 正则表达式应用 265
21.1 正则表达式技术简介 266
21.1.1 结果校验的两种方法 266
21.1.2 正则表达式应用
无处不在 266
21.2 正则表达式使用 267
21.2.1 正则表达式的用途 267
21.2.2 元字符 267
21.2.3 特殊字符 268
21.2.4 非打印字符 269
21.2.5 普通字符 269
21.2.6 字符匹配 270
21.2.7 括号表达式 270
21.2.8 限定符 272
21.2.9 定位符 273
21.2.10 选择与编组 275
21.2.11 向后引用 276
第22章 qtp实用技巧 279
22.1 qtp应用技巧简介 280
22.2 巧用qtp中web脚本回放
类型 280
22.2.1 qtp中web两种回放
类型 280
22.2.2 ui修改回放类型的方法 280
22.2.3 程序修改回放类型的
方法 280
22.2.4 类型设置不当引发的
错误 281
22.2.5 案例讲解:回放类型适用
范围 282
22.2.6 回放类型选择的思路
分析 284
22.3 qtp脚本无法保存 284
22.3.1 脚本无法保存的表象 284
22.3.2 挖掘问题的原因 284
22.3.3 问题的三种解决策略 285
22.4 qtp与java程序测试 285
22.4.1 qtp无法录制java applet
程序解决策略 286
22.4.2 在qtp脚本中调用java
程序run time的方法 287
22.4.2.1 调用java控件
提供的方法 287
22.4.2.2 识别java runtime
方法 288
22.4.2.3 创建java新的
方法实例 289
22.4.2.4 解决qtp无法接
收java runtime
返回数组 290
22.4.3 隐藏的qtp java插件
调试方法 291
22.4.3.1 通过环境变量
设定跟踪级别 291
22.4.3.2 通过环境变量修改
日志输出路径 292
22.4.3.3 通过注册表修改日
志输出 293
22.5 巧用wsc编写vbscript com
组件与qtp保留组件调用 295
22.5.1 wsc技术简介 295
22.5.1.1 wsc含义 295
22.5.1.2 wsc结构 295
22.5.1.3 生成guid的值 297
22.5.2 wsc文件生成向导 297
22.5.3 添加com组件实现方法 298
22.5.4 注册wsc文件 299
22.5.5 使用qtp保留对象调用
com组件 300
22.5.5.1 注册表中增加
reserved对象 300
22.5.5.2 qtp中调用预先
设定的保留关键
对象 301
22.6 解决qtp对象无法识别的
问题 301
22.6.1 对象无法识别分析 302
22.6.1.1 问题表现与分析 302
22.6.1.2 案例讲解:录制属
性无法标识对象 302
22.6.1.3 解决程序录制时
对象属性无法
标识的策略 303
22.6.2 录制时对象能被识别,
但是回放失败(应用程
序发生变更) 304
22.6.3 无法录制应用自定义
对象 304
22.6.3.1 自定义对象分析 304
22.6.3.2 设定对象映射
关系 305
22.6.4 无法识别web页面自定义
的事件 306
22.6.4.1 问题的表现 306
22.6.4.2 问题原因分析 306
22.6.4.3 添加预定义web
事件方法 307
22.6.4.4 添加未预定的
事件方法 307
22.7 无法录制自定义控件的执行
方法 309
22.7.1 自定义控件问题分析 309
22.7.2 案例讲解:无法录制自定义
treeview控件的checkbox
操作方法 309
22.7.2.1 案例程序实现
逻辑 309
22.7.2.2 qtp原始脚本与
回放存在的问题 310
22.7.2.3 脚本问题分析 311
22.7.3 自定义控件的测试解决
策略 311
22.7.4 总结 316
第四篇 自动化测试框架设计与实践
第23章 测试自动化框架设计基础 317
23.1 测试与自动化测试 318
23.1.1 测试 318
23.1.2 自动化测试 319
23.2 测试自动化特点 319
23.3 测试自动化的限制 320
23.3.1 测试自动化无法智能化 320
23.3.2 测试自动化无法完全
替代手工测试 321
23.3.3 测试自动化无法提升
测试的有效性 321
23.3.4 测试自动化将制约了开发
的效率 321
23.4 测试自动化过程 321
23.4.1 测试自动化前期过程 321
23.4.2 输入 322
23.4.3 执行 322
23.4.4 输出 323
23.4.5 比较 323
23.4.6 缺陷发布与影像回放 323
23.5 小结 325
第24章 测试数据自动化管理的设计 326
24.1 测试数据自动化管理设计要素 327
24.2 测试数据的维度 328
24.3 测试数据的分类 329
24.3.1 业务数据 329
24.3.2 待测的对象 330
24.4 测试数据之间的关系 331
24.4.1 数据的权重 331
24.4.2 数据的内在约束 332
24.4.3 数据的惟一性 333
24.5 测试字段之间的关联与组合 334
24.5.1 字段之间的约束 336
24.5.2 字段之间的组合 337
24.6 测试数据设计要素 337
24.7 数据运行控制 338
24.7.1 手工测试数据运行控制
模式 338
24.7.2 测试数据关系提炼角度 339
24.7.3 测试数据运行控制导图 341
24.7.4 数据运行控制设计所
涉及的问题 342
24.8 测试数据自动化设计 343
24.8.1 测试数据保存约定 344
24.8.2 数据字典 344
24.8.3 数据运行控制模型 345
24.8.4 数据关系运算模式 347
24.8.5 数据关系运算 349
24.9 数据处理模型的实现 352
24.9.1 数据存储层实现 353
24.9.2 数据关系处理实现 360
24.9.3 数据格式定义与实例
调用 366
24.9.4 qtp调用实例 368
24.10 c#实现数据管理程序实例 369
24.10.1 设计结构简介 370
24.10.2 案例管理控制过程 371
24.10.3 数据关系设计 371
24.10.4 数据组合生成过程 373
24.10.5 自动生成用例 375
24.10.6 修改用例 375
24.10.7 com数据调用接口
简介 376
24.10.8 qtp即插即用接口与
vbs调用方法 379
24.11 小结 380
第25章 案例解析:自动化测试框架设计
与实践 381
25.1 初识案例解析技术 383
25.1.1 案例解析技术产生
的原因 383
25.1.1.1 传统的自动化测试过程 384
25.1.1.2 案例解析技术自动化测试过程 384
25.1.1.3 两种自动化测试技术的异同 384
25.1.2 案例解析技术的优势 386
25.1.2.1 由“被动”变为
“主动” 386
25.1.2.2 脚本的“原子
化” 387
25.1.2.3 脚本的高扩展性 387
25.1.3 案例解析技术的缺点 388
25.2 案例解析技术脚本形成要素 389
25.2.1 测试脚本结构分析 389
25.2.2 操作三种类型的数据
分析 390
25.2.2.1 数据的预知 390
25.2.2.2 测试数据预知的
意义 391
25.2.2.3 三类测试数据的
内在分析 391
25.3 案例解析技术设计蓝图 391
25.3.1 案例解析技术所涵盖的
模块 392
25.3.2 案例解析技术设计
结构图 393
25.4 自动化测试案例编写规则设计 393
25.4.1 自动化测试案例规则
提炼 393
25.4.1.1 规则设定的意义 393
25.4.1.2 原始案例内在
特性分析 393
25.4.1.3 测试脚本与测试
案例 394
25.4.2 自动化测试案例的规则
映射 394
25.4.2.1 直接映射 394
25.4.2.2 间接映射 395
25.4.3 自动化测试案例编写
设计 395
25.4.4 自动化案例管理媒介 397
25.4.5 自动化测试案例编写的
基本模式 397
25.4.6 待测对象与案例关系的
映射 398
25.5 自动化测试对象管理 399
25.5.1 获取待测对象属性以及
对象之间的模式 400
25.5.1.1 最佳的控制模式 400
25.5.1.2 递进的控制模式 402
25.5.2 对象采集的两种策略 404
25.5.2.1 程序采集 404
25.5.2.2 二类应用模式的
程序采集实例 404
25.5.2.3 手工采集模式 416
25.5.3 对象的保存模式和读取 418
25.5.3.1 对象的保存格式
与物理存储方式 418
25.5.3.2 xml存储结构 419
25.5.3.3 数据库存储格式 421
25.5.3.4 对象的读取 422
25.6 错误处理与缺陷发送 423
25.6.1 传统的错误处理模式 423
25.6.1.1 传统的错误处理
模式的不足 424
25.6.1.2 改进的策略 424
25.6.2 错误处理模式三种测试
设计技术 424
25.6.2.1 图片处理技术 424
25.6.2.2 伪视频技术 425
25.6.2.3 视频技术 426
25.6.3 错误处理程序实例讲解 427
25.6.3.1 错误处理程序
设计思路 427
25.6.3.2 图片处理技术
实例 428
25.6.3.3 错误处理程序
调用方式 431
25.6.3.4 如何获取到错误
控件的位置 431
25.6.4 缺陷发送处理技术 431
25.6.4.1 缺陷发送模式 432
25.6.4.2 什么是同步模式、异步模式 432
25.6.4.3 两种模式的异同 432
25.6.4.4 异步模式两种操
作方式 433
25.6.4.5 缺陷发送接口的
实例 433
25.7 自动化测试运行调度 438
25.7.1 作业的调度 438
25.7.1.1 作业调度的两种
模式 439
25.7.1.2 作业调度最容易
忽视的问题 439
25.7.1.3 作业调度信息交互
的过程 440
25.7.2 调度的前置任务 440
25.7.2.1 什么是前置任务 440
25.7.2.2 前置任务的类型 440
25.7.2.3 为什么要自动化
前置处理 441
25.7.3 运行控制 441
25.7.3.1 运行控制简介 441
25.7.3.2 自动化测试运行
控制过程 441
25.7.3.3 运行控制内容 442
25.7.3.4 循环控制部分
设计 443
25.7.3.5 运行控制代码
实例 444
25.7.3.6 传递请求、获取
返回值以及日志
系统 445
25.7.3.7 日志控制信息 446
25.7.4 调度的后置任务 447
25.7.4.1 后置任务的分类 447
25.7.4.2 后置任务的意义 447
25.8 小结 448
附录a 各类数据库odbc连接字符串 449
附录b 错误处理c#版本程序 453
Proficient QTP and software automation testing framework design practice
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!
