《精通QTP与自动化测试框架设计实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张斌编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115223302
  • 页数:448 页
图书介绍:本书主要以功能测试实战技术为主线,并借助QTP提供的方法去快速完成自动化脚本的开发,以及如何在QTP嵌入客户化的脚本满足业务的需求。同时,通过贯穿全书的大量精心挑选的实例进行描叙,作者期望能给读者带来更多的功能测试的体会与体验。

第一篇 在实践中熟悉自动化测试过程 1

第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.3QTP录制的技巧 12

2.3.1QTP支持的浏览器版本 12

2.3.2QTP Event的设置 13

2.3.3Java应用录制设置过程 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.1QTP关于动态控件判别函数 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功能详解 57

第7章 QTP安装、运行及常见错误处理 57

7.1QTP安装中常见问题解决策略 58

7.1.1安装提示InstallShield 1607错误 58

7.1.2重复安装QTP不同的版本导致QTP安装出错 59

7.1.3QTP安装时提示Command错误 60

7.2QTP运行常见问题 60

7.2.1QTP无法正常识别对象 60

7.2.2无法启动IE浏览器进行录制 62

7.2.3QTP在连续运行长时间后出现内存耗尽解决策略 63

7.2.4解决QTP 9.X不支持IE8浏览器兼容性的问题 64

7.3小结 64

第8章 QTP的工作流程与录制及运行模式 65

8.1QTP结构整体介绍 66

8.1.1QTP视窗 66

8.1.2QTP的工作流程 67

8.2QTP录制过程 68

8.2.1QTP三种录制模式 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.2GetRoProperty与GetToProperty函数 88

9.3Action参数传递 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.1DataTable整体结构图 97

10.2DataTable Sheet的管理 97

10.2.1两种类型的DataTable Sheet 97

10.2.2创建Sheet 98

10.2.3删除Sheet 99

10.2.4获取Sheet对象 100

10.3DataSheet Parameter管理 100

10.3.1图形化参数管理 101

10.3.2AddParameter函数 101

10.3.3DeleteParameter函数 102

10.3.4GetParameter函数 103

10.4DataSheet行号控制与获取及设置参数值 103

10.4.1设置、获取当前行 103

10.4.2设置上移与下移行号 104

10.4.3获取或者设置参数值 106

10.5小结 109

第11章 QTP过程校验 110

11.1QTP提供的检查点类型与对不同的环境的支持力度 111

11.2数据校验 112

11.2.1标准检查点 112

11.2.2文本检查点 114

11.2.3文本区域检查点 115

11.2.4XML检查点 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.2CheckProperty函数 125

11.6小结 127

第12章 QTP对象采集、回放与管理过程 128

12.1QTP对象采集 129

12.1.1对象属性采集设置流程 129

12.1.2对象属性设置方法 129

12.1.3Order Identifier功能详解 131

12.1.4Smart Identifier(智能标识)操作流程 133

12.2脚本运行过程中对象识别过程 135

12.2.1QTP对象识别的流程图 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.1QTP控件函数自定义扩展策略 149

13.1.1RegisterUserFunc函数介绍与图形化的操作 149

13.1.2扩展QTP控件中提供的默认函数功能 151

13.1.3添加新的方法到指定的控件 152

13.2QTP自定义编程策略 152

13.2.1调用控件内部方法 153

13.2.2描述性编程 154

13.2.3DotNetFactory接口 157

13.3QTP自定义错误处理 159

13.3.1QTP错误处理循环控制四种策略 159

13.3.2Recovery策略 160

13.3.3自定义错误处理程序 164

13.4小结 165

第14章 QTP自动化测试对象模型介绍 166

14.1自动化测试对象控制模型(AOM)介绍 167

14.1.1自动化测试对象控制模型(AOM)接口的分类 167

14.1.2AOM接口调用所支持的开发语言 168

14.1.3C#与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实战技术应用 189

第15章 QTP与Ajax测试 189

15.1Ajax技术简介 190

15.2案例讲解—Ajax应用分析 190

15.2.1应用框架介绍 190

15.2.2应用的元素分析 191

15.2.3采用第三方工具捕获隐藏对象 192

15.2.4编写脚本思路与脚本实现 193

15.3Ajax自动化测试分析 197

第16章 QTP与PDF文件测试 198

16.1PDF文件测试技术简介 199

16.2案例讲解:如何获取PDF文件的页数 199

16.3Adobe COM接口介绍 200

16.3.1注册表信息 200

16.3.2Adobe OLE Automation DOM结构图 201

16.3.3Acrobat对象详解 201

16.4案例讲解:PDF格式文件文本检查以及按钮状态检查 202

16.4.1封装Adobe调用接口 202

16.4.2QTP脚本调用 203

16.5测试结果分析 204

第17章 QTP与DOS命令行程序的测试 206

17.1DOS命令行操作简介 207

17.2通过SystemUtil对象模拟DOS操作 208

17.2.1SystemUtil对象介绍 208

17.2.2QTP对象属性分析 208

17.2.3键盘模拟操作特殊键值 209

17.3输出的捕获与校验 210

17.3.1GetVisibleText函数介绍 210

17.3.2结果输出与校验 210

17.3.3GetVisibleText函数的局限性 211

17.4利用WSH对象进行DOS结果校验 212

17.4.1WshScriptExec对象 212

17.4.2环境变量的设置 213

17.4.3WSH方法的结果输出与校验 213

17.5案例讲解:测试WorkingSetDOS程序 214

17.5.1Working Set程序介绍 214

17.5.2程序测试用例 215

17.5.3自动化测试程序实现 215

17.6DOS测试思路分析 216

第18章 QTP与Win 32 API测试 217

18.1Win 32 API测试简介 218

18.2QTP调用Win 32 API的方法 218

18.2.1Win32 API函数声明格式 218

18.2.2QTP中调用Win 32 API函数介绍 219

18.2.3案例讲解:调用FindWindow函数 219

18.2.4Win 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.4QTP调用自定义动态链接库 226

18.4QTP调用第三方链接库思路分析 227

第19章 Telnet和SSH远程操作自动化测试 228

19.1远程操作技术简介 229

19.2SecureCrt ActiveX介绍 229

19.2.1ActiveX接口结构图 229

19.2.2接口对象介绍 230

19.2.3SecureCrt支持的语言及调用方法 230

19.2.4脚本运行方法 230

19.2.5SecureCrt错误处理方法 232

19.3SecureCrt关键对象详解 232

19.3.1Session对象 232

19.3.2Connect函数的语法 233

19.3.3Screen对象 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.1WSH技术简介 243

20.1.1WSH引擎定义 243

20.1.2WSH的主要用途 243

20.2WSH对象详解 244

20.2.1WSH对象结构图 244

20.2.2WSH内嵌对象说明 245

20.2.3CreateObject与GetObject 245

20.3什么是WMI 246

20.4在QTP中不支持的WScript的属性和方法 247

20.5WSH常用对象介绍 248

20.5.1Wshell对象 248

20.5.2Wshell主要功能 249

20.5.3Wshell常用的方法与属性 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.6WSH其他相关对象 262

20.6.1网络映射 262

20.6.2增加快捷栏标识 263

20.7WSH总结 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.1QTP应用技巧简介 280

22.2巧用QTP中Web脚本回放类型 280

22.2.1QTP中Web两种回放类型 280

22.2.2UI修改回放类型的方法 280

22.2.3程序修改回放类型的方法 280

22.2.4类型设置不当引发的错误 281

22.2.5案例讲解:回放类型适用范围 282

22.2.6回放类型选择的思路分析 284

22.3QTP脚本无法保存 284

22.3.1脚本无法保存的表象 284

22.3.2挖掘问题的原因 284

22.3.3问题的三种解决策略 285

22.4QTP与Java程序测试 285

22.4.1QTP无法录制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.1WSC技术简介 295

22.5.1.1WSC含义 295

22.5.1.2WSC结构 295

22.5.1.3生成GUID的值 297

22.5.2WSC文件生成向导 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.2QTP中调用预先设定的保留关键对象 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.2QTP原始脚本与回放存在的问题 310

22.7.2.3脚本问题分析 311

22.7.3自定义控件的测试解决策略 311

22.7.4总结 316

第四篇 自动化测试框架设计与实践 317

第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.4QTP调用实例 368

24.10C#实现数据管理程序实例 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.7COM数据调用接口简介 376

24.10.8QTP即插即用接口与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.2XML存储结构 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