《QTP自動化測試進階》是2010年電子工業出版社出版的圖書,作者是陳能技。本書面向使用QTP(Quick Test Professional)測試工具進行自動化功能測試的測試工程師,以及希望了解自動化功能測試的測試員、希望基於QTP開展自動化測試項目的測試團隊。
基本介紹
- 書名:QTP自動化測試進階
- 作者:陳能技 編著
- ISBN:978-7-121-10870-9
- 頁數:512
- 定價:59
- 出版社:電子工業出版社
- 出版時間:2010年6月
- 裝幀:平裝
- 開本:16
內容簡介,前言,目錄,
內容簡介
《QTP自動化測試進階》以循序漸進的方式講解了自動化功能測試的基礎知識,結合最新版本的QTP 10的使用,深入講解了自動化腳本的開發技術,涉及目前流行的數據驅動測試方法、關鍵字驅動測試方法等方面的內容,並且詳細講解了如何使用QTP測試Windows控制項、ActiveX控制項、VB控制項、Web控制項、.NET控制項等,以及碰到一些QTP不能識別的第三方控制項、自定義控制項時的解決辦法。
對於希望了解和使用QTP的外掛程式擴展技術的測試工程師,本書還詳細講解了QTP的.NET外掛程式擴展技術、Web外掛程式擴展技術的套用,以及Extensibility Accelerator的使用。另外,本書還介紹了QTP自動化對象模型(AOM)的使用方法,以及如何基於AOM構建QTP的測試調度執行框架。本書在講解自動化測試腳本開發知識和QTP工具的使用過程中,通過詳細的例子和案例進行分析,讓讀者可以通過例子練習和理解,動手嘗試,非常適合獨立學習和研究自動化測試技術的測試工程師參考使用。
前言
軟體產品的測試與硬體產品的檢測一樣需要認真、嚴格、細緻的工作態度,但是軟體測試似乎比硬體的檢測要複雜得多,並且不能充分利用檢測工具的精確工作能力,依賴測試人員的個人判斷、對業務知識的掌握深度、測試用例的設計能力、智慧和經驗。
最近幾年,軟體測試工具取得了長足的進步,逐步得到套用和普及,在軟體測試的各個領域發揮著應有的作用。各軟體企業也紛紛“上馬”自動化測試項目,自動化功能測試工具作為開展功能自動化測試項目不可或缺的一部分,是每個實施自動化測試的測試團隊需要認真選擇和合理套用的一項內容。
Quick Test Professional(簡稱QTP)是這些測試工具中的佼佼者,被譽為軟體測試人員的“倚天劍”,擁有先進的關鍵字驅動測試能力,以及強大的測試腳本開發能力,關鍵在於測試人員如何使用它。用好了,則是“倚天劍”;用不好,則是“一堆廢鐵”。
很多軟體企業耗費巨資購買了這些測試工具,但是沒有合理地使用,被測試人員擱置在一旁。究其原因是因為沒有充分認識自動化測試的價值,缺乏必要的自動化測試理論培訓和測試工具的使用培訓。
本書是QTP自動化測試暢銷書《QTP自動化測試實踐》的升級版。《QTP自動化測試實踐》在2008年出版後受到廣泛好評,先後印刷多次。本書在《QTP自動化測試實踐》的基礎之上,綜合了廣大讀者的意見和建議,新增了QTP最新版本10的相關內容(例如Extensibility Accelerator的使用),加入了更多的案例分析和項目實戰的內容,增加講解了自動化測試項目過程中經常碰到的一些問題的解決方法(例如第三方控制項、自定義控制項的識別問題),更加詳細和深入地分析講解了目前流行的自動化測試框架的內容,例如數據驅動、關鍵字驅動等。
本書的內容安排
本書共分為4篇,共22章,從軟體測試的基本概念講起,再進一步介紹自動化測試的基本原理和方法,然後基於QTP介紹測試工具的使用方法、測試腳本的開發技巧,以及QTP的高級功能的使用方法。
第1篇(第1章~第3章)自動化測試基礎篇
講述了軟體測試的基礎知識、自動化測試的基礎知識、自動化測試項目的管理方法、自動化測試工具的基本原理、測試工具的選型等。這3章知識是自動化軟體測試工程師必須具備的基礎知識,同時也是軟體測試入門者急需了解和掌握的知識。
第2篇(第4章~第6章)QTP使用基礎篇
講述了QTP的安裝和配置方法、QTP基本功能的使用、測試項目的創建方法、測試腳本的編寫和調試方法等,並且介紹了QTP與其他測試工具(WinRunner、LoadRunner)的整合方法。這3章內容是自動化測試工程師,尤其是採用QTP作為測試腳本開發工具的測試人員必須掌握的基本知識。
第3篇(第7章~第15章)QTP腳本開發篇
深入講解QTP的各種功能,包括關鍵字驅動測試方法的使用、數據驅動測試方法的使用、描述性編程方法的使用,並且深入介紹了QTP的腳本開發語言VBScript的使用,另外還闡述了QTP的Action管理、虛擬對象管理、函式館管理等內容,對於常見的測試對象和控制項類型,也做了相對全面的介紹,包括:Windows標準對象、ActiveX對象、VB對象、Web對象。
第4篇(第16章~第22章)QTP高級技術篇
主要介紹了QTP的外掛程式技術以及.NET外掛程式擴展技術的使用,另外還介紹了QTP的自動化對象模型的使用方法,最后綜合套用各種測試腳本開發技巧介紹如何開發一個“猴子”測試程式。
本書由淺入深,由理論到實踐,尤其適合初級讀者逐步學習和完善自己的自動化測試方面的知識結構,並且結合QTP各種實用的套用技巧介紹如何使用各種測試腳本的開發方法,是QTP自動化測試團隊和自動化測試工程師的案頭指南和最佳實踐指導。
本書的特點
本書在講解自動化測試腳本開發知識和QTP的使用過程中,通過詳細的例子進行分析和講解,讓讀者可以通過例子進行理解,並且可以自己進行嘗試,非常適合獨立學習和研究自動化測試技術的初級測試工程師參考使用。
本書以循序漸進的方式講解了自動化功能測試的基本知識,結合QTP的使用,深入講解自動化測試腳本的開發,涉及目前流行的數據驅動測試方法、關鍵字驅動測試方法等方面的內容,並且詳細講解了如何使用QTP測試Windows控制項、ActiveX控制項、VB控制項、Web控制項等。
對於希望了解和使用QTP的外掛程式技術的測試工程師,還詳細講解了QTP的.NET外掛程式的使用,包括利用.NET外掛程式測試.NET Windows Form、Web Form,以及最新的WPF控制項。同時還介紹了.NET外掛程式的擴展技術,以及QTP的自動化對象模型的使用方法。
適合閱讀本書的讀者
本書面向使用QTP測試工具進行自動化功能測試的測試工程師,以及希望了解自動化功能測試的測試員。
編 者
目錄
第1篇 自動化測試基礎篇
第1章 軟體測試基礎 2
1.1 軟體缺陷與軟體測試 2
1.1.1 軟體缺陷與硬體缺陷的異同 2
1.1.2 如何通過軟體測試發現軟體缺陷 3
1.2 軟體質量與軟體測試 4
1.2.1 軟體質量管理在項目管理中的地位 4
1.2.2 軟體開發模式與軟體測試 4
1.2.3 軟體開發模式與自動化測試 5
1.2.4 軟體測試能保證軟體質量嗎 5
1.3 軟體開發與軟體測試 5
1.3.1 軟體開發與軟體測試的對立統一 6
1.3.2 測試人員需要的開發技術 6
1.3.3 QTP自動化測試工程師需要掌握的技術 7
第2章 軟體自動化測試 8
2.1 手工測試與自動化測試 8
2.1.1 手工測試的缺點 8
2.1.2 什麼時候使用自動化測試 9
2.1.3 自動化測試——你準備好了嗎 9
2.2 如何開展自動化測試 10
2.2.1 選取合適的測試項目來開展自動化測試 10
2.2.2 確定自動化測試介入的時機 11
2.2.3 自動化測試工程師的知識體系 11
2.2.4 考慮自動化測試的成本 13
2.2.5 制訂自動化測試項目計畫 14
2.3 自動化測試方案 15
2.3.1 選擇自動化測試方案 16
2.3.2 自動化測試腳本的編寫方法 16
2.3.3 線性腳本的編寫方法 17
2.3.4 結構化腳本的編寫方法 17
2.3.5 共享腳本的編寫方法 18
2.3.6 數據驅動腳本的編寫方法 18
2.3.7 關鍵字驅動腳本的編寫方法 19
2.3.8 合理選擇自動化測試腳本開發方法 19
2.4 實用性自動化測試策略 20
2.4.1 自動化測試工具的問題 20
2.4.2 自動化測試的管理規範 21
2.4.3 自動化測試中人的因素 22
第3章 軟體自動化測試工具 24
3.1 自動化測試工具類型 24
3.1.1 商業測試工具 25
3.1.2 開源測試工具 25
3.1.3 自主開發測試工具 26
3.2 自動化測試工具選型 27
3.2.1 測試工具評估 27
3.2.2 測試工具試用 27
3.2.3 自動化測試工具的培訓 28
3.3 自動化測試工具的原理 28
3.3.1 基於代碼層面的功能自動化測試工具 29
3.3.2 基於瀏覽器和DOM對象模型的功能自動化測試工具 31
3.3.3 基於GUI對象識別的測試工具原理 35
3.3.4 反射機制在自動化功能測試工具中的使用 37
3.3.5 UI Automation在自動化功能測試工具中的使用 38
3.3.6 QTP對象識別技術介紹 39
3.3.7 QTP的3類順序標識 41
3.3.8 QTP的智慧型識別技術介紹 42
第2篇 QTP使用基礎篇
第4章 QuickTest Professional的安裝和配置 46
4.1 QTP 10的安裝 46
4.1.1 安裝要求 47
4.1.2 QTP 10支持的環境和程式 47
4.1.3 安裝步驟 48
4.1.4 QTP的設定 50
4.1.5 QTP升級補丁包的安裝 51
4.2 開始使用QTP 51
4.2.1 QTP的幫助文檔 51
4.2.2 QTP的視頻教程 52
4.2.3 QTP自帶的樣例程式 52
4.2.4 啟動QTP 54
4.2.5 外掛程式載入設定與管理 54
4.2.6 創建一個空的測試項目 55
4.2.7 錄製和測試運行設定 55
4.2.8 指定需要錄製的應用程式 56
4.2.9 使用QTP編寫第一個自動化測試腳本 57
第5章 QuickTest Professional的基本使用方法 60
5.1 QTP基本功能的使用 60
5.1.1 QTP自動化測試的基本過程 60
5.1.2 在關鍵字視圖中編輯測試腳本 61
5.1.3 在關鍵字視圖中為測試步驟添加注釋 62
5.1.4 在關鍵字視圖中添加測試信息的輸出 62
5.1.5 插入檢查點(Checkpoint) 63
5.1.6 在關鍵字視圖中插入新的測試步驟 64
5.1.7 在專家視圖中編輯測試腳本 66
5.1.8 腳本編輯器的使用 67
5.2 編輯測試腳本 67
5.2.1 識別對象 67
5.2.2 Object Spy的使用 68
5.2.3 對象庫管理 70
5.2.4 把測試對象添加到對象庫中 70
5.2.5 導出對象庫檔案 71
5.2.6 在測試腳本中訪問對象庫的測試對象 72
5.2.7 添加新的Action 73
5.2.8 關聯Action的對象庫 74
5.2.9 編輯新的Action 75
5.2.10 在函式館中創建自定義函式 76
5.3 運行和調試測試腳本 78
5.3.1 語法檢查 78
5.3.2 使用斷點 79
5.3.3 單步調試 79
5.3.4 調試查看器的使用 80
5.3.5 運行整個測試 80
5.3.6 運行部分測試 81
5.3.7 批量運行測試 81
5.3.8 使用MTM批量運行測試 82
5.4 分析測試結果 83
5.4.1 選擇測試運行結果的存儲位置 83
5.4.2 查看概要測試運行結果 83
5.4.3 查看檢查點的結果 84
5.4.4 查看測試過程的截屏 85
5.5 利用Active Screen來編輯測試腳本 86
5.5.1 查看Active Screen 86
5.5.2 Active Screen的設定 86
5.5.3 在Active Screen中選擇並添加對象到對象庫 88
5.5.4 選擇Active Screen中的對象並輸出其對象屬性 90
5.5.5 在Active Screen中插入檢查點 92
5.5.6 在Active Screen中選擇對象並添加測試步驟 93
第6章 QuickTest Professional與其他工具的整合 95
6.1 與WinRunner的整合 95
6.1.1 在QTP中調用WinRunner的測試腳本 95
6.1.2 在QTP中調用WinRunner的函式 98
6.2 QTP與LoadRunner的整合 99
6.2.1 在QTP中為LoadRunner設計測試腳本 99
6.2.2 使用Silent Test Runner模擬LoadRunner的調用 101
6.2.3 在LoadRunner中插入和運行QTP腳本 103
6.2.4 在LoadRunner中運行QTP腳本需要注意的幾點 104
6.3 QTP與QC整合 105
6.3.1 什麼是BPT 105
6.3.2 BPT的工作流程 105
6.3.3 安裝QTP for BPT外掛程式 107
6.3.4 業務專家編寫手工組件 109
6.3.5 把手工組件轉換成自動化組件 109
6.3.6 自動化測試工程師創建應用程式域和對象庫 110
6.3.7 自動化工程師編寫自動化腳本(建立函式館、實現關鍵字) 114
6.3.8 業務專家編輯業務流程(組合組件) 117
6.3.9 業務專家把業務流程測試用例添加到測試集並運行 118
6.4 QTP與其他工具的整合 119
6.4.1 QTP整合AutoIt 119
6.4.2 QTP整合Sikuli 120
第3篇 QTP腳本開發篇
第7章 關鍵字驅動測試 124
7.1 關鍵字驅動測試方法 124
7.1.1 什麼是關鍵字驅動測試方法 124
7.1.2 關鍵字測試驅動框架 125
7.1.3 關鍵字驅動實現自動化測試的階段劃分 126
7.1.4 什麼時候使用關鍵字驅動測試方法 126
7.2 可視化編輯測試步驟 127
7.2.1 編輯對象庫 127
7.2.2 選擇測試對象 127
7.2.3 選擇測試對象相應的操作 128
7.2.4 設定測試邏輯 129
7.3 檢查點的使用 130
7.3.1 為測試添加檢查點 130
7.3.2 檢查點類型 130
7.3.3 添加標準檢查點 131
7.3.4 添加圖像檢查點 132
7.3.5 添加點陣圖檢查點 133
7.3.6 添加表格檢查點 134
7.3.7 添加文本檢查點 136
7.3.8 添加文本區域檢查點 138
7.3.9 添加可訪問性檢查點 139
7.3.10 添加頁面檢查點 141
7.3.11 添加資料庫檢查點 143
7.3.12 添加XML檢查點 145
7.4 關鍵字驅動方法的套用過程實例 147
7.4.1 分析Mercury Tours應用程式 147
7.4.2 定義Action和Test Flow 149
7.4.3 定義對象庫(Object Repository) 150
7.4.4 定義函式館(Function Library) 150
7.4.5 編寫腳本實現業務流程步驟 151
第8章 數據驅動測試 153
8.1 數據驅動測試方法 153
8.1.1 什麼時候使用數據驅動測試方法 153
8.1.2 數據驅動測試的一般步驟 154
8.2 參數化測試 154
8.2.1 通過參數化測試來提高測試的靈活性 155
8.2.2 參數化測試步驟 155
8.2.3 使用隨機數來進行參數化 158
8.2.4 參數化檢查點 159
8.2.5 設定數據表格疊代方式 160
8.3 Action測試輸入的參數化 162
8.3.1 編輯Action的屬性 163
8.3.2 添加Action的輸入參數 164
8.3.3 調用Action 165
8.4 使用環境變數的參數化 167
8.4.1 定義和設定環境變數 168
8.4.2 在測試步驟中綁定環境變數值 169
8.4.3 導出環境變數到XML檔案 170
8.4.4 導入外部環境變數檔案 171
8.5 使用數據驅動器來參數化測試 172
8.5.1 數據驅動器的使用方法 172
8.5.2 數據驅動嚮導 173
8.6 採用其他類型數據源的數據驅動測試 174
8.6.1 文本檔案作為數據源 175
8.6.2 Excel作為數據源 177
8.6.3 資料庫表作為數據源 179
第9章 VBScript基礎 180
9.1 腳本語言簡介 180
9.1.1 Windows腳本語言 180
9.1.2 測試工具的“廠商語言” 181
9.2 VBScript語言基礎 181
9.2.1 VBScript的數據類型 181
9.2.2 變數子類型(Variant Subtypes) 182
9.2.3 VBScript的變數 183
9.2.4 VBScript的運算符 184
9.2.5 VBScript的條件語句 184
9.2.6 VBScript的循環語句 185
9.2.7 VBScript的Sub與Function 186
9.2.8 VBScript的數組 186
9.2.9 VBScript常用函式 187
9.2.10 VBScript的學習 189
9.3 VBScript常用對象 190
9.3.1 WSCript.Shell對象的使用 190
9.3.2 用SendKeys來模擬鍵盤按鍵 190
9.3.3 Scripting.Dictionary對象的使用 192
9.3.4 FileSystemObject對象的使用 193
9.3.5 Microsoft.XMLDOM對象的使用 193
9.4 VBScript與正則表達式 194
9.4.1 正則表達式簡介 194
9.4.2 在VBScript中使用正則表達式 195
9.4.3 正則表達式在自動化測試中的使用 197
9.5 VBScript與WMI 199
9.5.1 WMI簡介 199
9.5.2 在VBScript中訪問WMI 200
9.5.3 利用WMI控制Windows屏保 200
第10章 QTP測試腳本開發 202
10.1 熟練使用專家視圖 202
10.1.1 專家視圖與關鍵字視圖的對應關係 202
10.1.2 在專家視圖中編輯測試腳本的方法 203
10.1.3 輸入代碼注釋 204
10.1.4 自動化VBScript語法識別和完成 205
10.2 QTP的Utility對象的使用 205
10.2.1 使用PathFinder對象查找檔案 206
10.2.2 使用XMLUtil對象檢查XML 207
10.2.3 使用Extern對象載入DLL 207
10.2.4 SystemUtil對象的使用 208
10.2.5 使用Reporter對象寫入測試結果 209
10.2.6 Environment對象的使用 210
10.3 QTP內置函式的使用 213
10.3.1 使用Print函式顯示信息 213
10.3.2 使用Wait函式暫停測試腳本的執行 214
10.3.3 使用ExecuteFile執行VBScript腳本 216
10.4 虛擬對象管理 217
10.4.1 什麼是虛擬對象 217
10.4.2 定義虛擬對象 217
10.4.3 虛擬對象的使用和管理 220
10.5 QTP測試腳本開發技巧 221
10.5.1 在運行過程中設定測試選項 221
10.5.2 巧用Setting對象的Item屬性 223
10.5.3 利用DotNetFactory對象訪問.NET類庫 224
10.5.4 自定義資料庫檢查點 225
10.5.5 TextUtil對象的使用 226
10.6 使用Recovery Scenarios進行場景恢復 227
10.6.1 什麼是Recovery Scenarios 228
10.6.2 什麼時候使用Recovery Scenarios 228
10.6.3 定義Recovery Scenarios 228
10.6.4 關聯Recovery Scenario到測試腳本 234
10.6.5 Recovery Scenario的運行 236
10.7 利用DotNetFactory訪問.NET對象 237
10.7.1 DotNetFactory的使用方法 238
10.7.2 訪問C#編寫的DLL 238
10.8 案例分析——使用ScreenCapture API比較圖片 238
10.8.1 提示對話框的圖示判斷問題 239
10.8.2 圖片比較技術的套用 239
第11章 QTP描述性編程 241
11.1 使用描述性編程的時機 241
11.1.1 錄製方式的測試腳本開發的問題 241
11.1.2 什麼時候使用描述性編程方法 243
11.2 描述性編程的使用方法 244
11.2.1 直接描述的方式 244
11.2.2 直接描述方式的語法格式 246
11.2.3 描述性編程的“後續強迫性” 246
11.2.4 使用描述性編程的技巧 247
11.2.5 使用“With”關鍵字簡化代碼 248
11.2.6 使用Description對象 248
11.2.7 設定Description對象的RegularExpression屬性 248
11.2.8 在ChildObjects對象中使用Description對象 249
11.2.9 兩種描述性編程方式的比較 250
11.2.10 使用對象庫(OR)還是描述性編程(DP) 250
11.3 用編程的方式創建檢查點 251
11.3.1 通過GetROProperty添加對控制項的動態屬性的判斷 251
11.3.2 自定義的檢查點 253
第12章 使用QTP測試標準Windows對象 255
12.1 Desktop對象的使用 255
12.1.1 使用CaptureBitmap方法來截屏 255
12.1.2 使用ChildObjects方法獲取某個對象中包含的對象列表 256
12.1.3 使用RunAnalog方法運行低級錄製過程 256
12.2 SystemUtil對象的使用 257
12.2.1 使用Run方法運行檔案或程式 257
12.2.2 在腳本運行過程中禁止滑鼠和鍵盤 258
12.2.3 關閉進程 258
12.3 Clipboard對象的使用 258
12.3.1 Clipboard對象介紹 259
12.3.2 Clipboard對象的使用方法 259
12.4 標準Windows控制項的基本屬性和方法 259
12.4.1 使用Exist屬性來判斷控制項是否存在 260
12.4.2 使用CheckProperty檢查控制項屬性 260
12.4.3 使用GetROProperty獲取控制項屬性 261
12.5 各類標準Windows控制項的測試 261
12.5.1 Dialog對象的測試 261
12.5.2 Static對象的測試 262
12.5.3 WinButton對象的測試 262
12.5.4 WinCalendar對象的測試 263
12.5.5 WinCheckBox對象的測試 264
12.5.6 WinComboBox對象的測試 264
12.5.7 Window對象的測試 265
12.5.8 WinEdit對象的測試 265
12.5.9 WinEditor對象的測試 266
12.5.10 WinList對象的測試 266
12.5.11 WinListView對象的測試 267
12.5.12 WinMenu對象的測試 268
12.5.13 WinRadioButton對象的測試 268
12.5.14 WinScrollBar對象的測試 269
12.5.15 WinSpin對象的測試 270
12.5.16 WinStatusBar對象的測試 270
12.5.17 WinTab對象的測試 271
12.5.18 WinToolbar對象的測試 272
12.5.19 WinTreeView對象的測試 273
12.5.20 WinObject對象的測試 274
12.6 案例分析——測試QQ登錄界面 275
12.6.1 QQ登錄界面的對象識別問題 275
12.6.2 手工添加測試對象到對象庫中 275
12.6.3 調整腳本 276
12.6.4 使用DeviceReplay對象來處理 277
12.6.5 小結 278
第13章 使用QTP測試ActiveX對象 279
13.1 ActiveX對象的測試 279
13.1.1 Object屬性的使用 280
13.1.2 AcxUtil對象的FireEvent方法的使用 281
13.2 各類ActiveX控制項的測試 281
13.2.1 RadioButton類ActiveX控制項的測試 281
13.2.2 CheckBox類ActiveX控制項的測試 282
13.2.3 Calendar類ActiveX控制項的測試 283
13.2.4 Label類ActiveX控制項的測試 284
13.2.5 ProgressBar類ActiveX控制項的測試 286
13.2.6 SliderBar類ActiveX控制項的測試 286
13.2.7 LED類ActiveX控制項的測試 287
13.2.8 ListBox類ActiveX控制項的測試 288
13.3 案例分析——測試MSFlexGrid控制項 289
13.3.1 QTP測試MSFlexGrid控制項的問題 290
13.3.2 讀取和設定控制項數據 290
13.3.3 封裝成函式館 291
第14章 使用QTP測試VB對象 292
14.1 Visual Basic控制項的測試 292
14.2 對各類VB控制項的測試 292
14.2.1 VbButton對象的測試 293
14.2.2 VbCheckBox對象的測試 294
14.2.3 VbComboBox對象的測試 294
14.2.4 VbEdit對象的測試 295
14.2.5 VbEditor對象的測試 296
14.2.6 VbFrame對象的測試 296
14.2.7 VbLabel對象的測試 297
14.2.8 VbList對象的測試 297
14.2.9 VbRadioButton對象的測試 298
14.2.10 VbScrollBar對象的測試 299
14.2.11 VbWindow對象的測試 299
14.3 案例分析——測試CodeJock Xtreme Suite控制項 300
14.3.1 DatePicker控制項測試 300
14.3.2 PropertyGrid控制項測試 302
14.3.3 ReportControl控制項測試 304
14.3.4 ShortcutBar控制項測試 305
14.3.5 TaskPanel控制項測試 307
第15章 使用QTP測試Web對象 309
15.1 Web對象的測試 309
15.1.1 載入Web外掛程式 309
15.1.2 Web的錄製和運行設定 310
15.1.3 QTP支持的瀏覽器 311
15.1.4 Windows Applications的錄製和運行設定 312
15.1.5 設定IE的“Enable Tabbed Browsering”選項 312
15.1.6 使用Object屬性訪問DOM對象 313
15.1.7 常用DOM屬性、集合和方法 314
15.1.8 使用Browser對象控制瀏覽器的導航 318
15.2 對各類Web對象的測試 319
15.2.1 Page對象的測試 319
15.2.2 Frame對象的測試 320
15.2.3 Image對象的測試 320
15.2.4 Link對象的測試 321
15.2.5 WebButton對象的測試 322
15.2.6 WebCheckBox對象的測試 323
15.2.7 WebEdit對象的測試 324
15.2.8 WebFile對象的測試 325
15.2.9 WebList對象的測試 326
15.2.10 WebRadioGroup對象的測試 326
15.2.11 WebTable對象的測試 327
15.2.12 WebXML對象的測試 330
15.2.13 WebElement對象的測試 330
15.3 Web頁面測試案例分析1——SuperAMS 330
15.3.1 功能介紹 330
15.3.2 錄製腳本的兩個問題及解決辦法 331
15.4 Web頁面測試案例分析2——Discuz!驗證碼問題 335
15.4.1 分析驗證碼技術的實現 335
15.4.2 如何獲取驗證碼 338
第4篇 QTP高級技術篇
第16章 QTP的外掛程式技術 342
16.1 QTP外掛程式簡介 342
16.1.1 查看外掛程式安裝和載入情況 342
16.1.2 外掛程式分離的好處 343
16.2 內建外掛程式與外部外掛程式 343
16.2.1 內建外掛程式 344
16.2.2 外部外掛程式 344
16.2.3 外掛程式的安裝 344
16.2.4 Flex外掛程式的安裝 349
16.3 外掛程式載入與外掛程式管理 351
16.3.1 QTP的外掛程式載入過程分析 351
16.3.2 關聯QTP外掛程式與測試腳本 352
16.3.3 外掛程式關聯管理 353
16.3.4 通過編程方式啟動QTP並載入外掛程式 353
16.3.5 外掛程式與檢查點類型的關係 355
16.4 QTP外掛程式擴展技術(QuickTest Add-in Extensibility) 356
16.4.1 外掛程式擴展SDK安裝包 356
16.4.2 利用Extensibility Accelerator簡化Web外掛程式擴展的開發 357
16.4.3 Extensibility Accelerator的安裝 358
16.4.4 Extensibility Accelerator的使用 359
第17章 使用QTP的.NET外掛程式測試.NET平台軟體 366
17.1 QTP的.NET外掛程式 366
17.1.1 .NET外掛程式安裝與設定 366
17.1.2 .NET Windows Forms Spy的使用 367
17.1.3 利用.NET Windows Forms Spy來分析.NET控制項 369
17.2 測試.NET Windows Forms控制項 371
17.2.1 QTP支持的.NET Windows Forms控制項 371
17.2.2 通過Object屬性來獲取對象的內部屬性 372
17.2.3 通過Object屬性訪問並執行控制項方法 372
17.2.4 查看Object屬性的兩種方法 373
17.2.5 案例分析——QTP測試.NET控制項CheckedListBox 374
17.3 測試WPF控制項 374
17.3.1 載入WPF外掛程式 375
17.3.2 QTP支持的WPF控制項 375
17.3.3 訪問WPF控制項的內部屬性和方法 376
17.4 測試.NET Web Forms控制項 377
17.4.1 QTP支持的.NET Web Forms控制項 377
17.4.2 測試.NET Web Forms的程式的前提條件 378
17.4.3 利用Object屬性來增強.NET Web Forms程式的測試 378
第18章 QTP的.NET外掛程式擴展技術及其使用 380
18.1 QTP的.NET外掛程式提供的擴展模組 380
18.1.1 .NET外掛程式的擴展模組機制介紹 380
18.1.2 使用.NET Windows Forms
Spy來協助開發擴展性 381
18.2 使用C#對QTP的.NET外掛程式進行擴展 381
18.2.1 安裝Custom Server模板 382
18.2.2 建立.NET控制項的測試擴展項目 383
18.2.3 實現控制項錄製邏輯 384
18.2.4 註冊TrackBar控制項的事件處理器 385
18.2.5 實現控制項的運行邏輯 385
18.2.6 對QTP進行配置 385
18.2.7 擴展項目的運行 387
18.3 案例分析——測試ComponentOne的Toolbar控制項 388
18.3.1 在VS 2005中編寫外掛程式擴展代碼 388
18.3.2 部署外掛程式擴展檔案 391
18.3.3 在QTP中使用外掛程式擴展的代碼 391
第19章 QTP的自動化對象模型及其使用 392
19.1 QTP自動化對象模型簡介 392
19.1.1 什麼時候使用自動化對象模型庫 392
19.1.2 選擇開發語言和環境 393
19.1.3 對象模型庫基本元素 394
19.2 在C#中使用QTP自動化對象模型 395
19.2.1 引用對象庫 395
19.2.2 在C#中調用QTP對象模型庫 396
19.3 常用的自動化對象模型方法介紹 397
19.3.1 在C#中啟動QTP並載入指定外掛程式 397
19.3.2 在VBScript腳本中設定QTP選項 398
19.3.3 導出QTP選項設定到VBScript腳本 399
19.3.4 在VBScript腳本中設定QTP的環境變數 400
19.3.5 在VBScript腳本中設定測試運行選項 403
19.3.6 導出QTP測試設定到VBScript腳本中 405
19.4 QTP測試調度執行框架 406
19.4.1 QTP調度框架腳本 407
19.4.2 讀取配置檔案 407
19.4.3 通過AOM調用QTP執行測試 409
19.4.4 寫日誌 410
19.4.5 傳送郵件 412
第20章 使用QTP開發一個猴子測試工具 414
20.1 猴子測試 414
20.1.1 猴子測試簡介 414
20.1.2 笨猴子與聰明猴子 415
20.1.3 什麼時候使用猴子測試 415
20.2 使用QTP設計一個笨猴子 415
20.2.1 用QTP實現笨猴子的基本要素 415
20.2.2 使用Randomize函式產生隨機數 416
20.2.3 使用RandomNumber對象獲取隨機數 416
20.2.4 通過WMI對象獲取螢幕高度和寬度 416
20.2.5 利用DotNetFactory獲取螢幕高度和寬度 417
20.2.6 讓猴子控制滑鼠和鍵盤 417
20.2.7 調用C#代碼中封裝的Windows API函式 418
20.2.8 輸入隨機字元串 421
20.2.9 記錄測試信息 422
20.2.10 截屏 422
20.2.11 記錄性能信息 422
20.2.12 基本的猴子測試工具 424
20.2.13 猴子測試工具的改進點 425
20.3 Web頁面猴子測試 426
20.3.1 案例分析——遍歷CSDN部落格連結 426
20.3.2 枚舉Web頁面連結 427
20.3.3 寫日誌 428
20.3.4 回退頁面 428
第21章 使用QTP測試Web Services 429
21.1 Web Services外掛程式介紹 429
21.1.1 什麼是Web Services 429
21.1.2 Web Services外掛程式的幫助文檔 430
21.2 使用Web Services外掛程式測試Web Services 430
21.2.1 Web Service測試嚮導的使用 430
21.2.2 運行Web Service測試 434
21.2.3 修改Web Service測試腳本中的檢查點 437
21.2.4 參數化Web服務的輸入 438
21.2.5 在對象庫中添加Web Service測試對象 440
21.2.6 檢查WSDL是否滿足WS-I標準 442
21.2.7 使用ValidateWSDL方法檢查WSDL 445
21.3 使用WinHttpRequest測試WebService 446
21.3.1 使用WinHttpRequest傳送請求 446
21.3.2 使用Msxml2解析返回的XML數據 448
第22章 如何編寫高質量的QTP測試腳本 449
22.1 QTP測試腳本編碼規範 449
22.1.1 常量命名規範 450
22.1.2 變數命名規範 450
22.1.3 對象命名規範 450
22.1.4 代碼注釋規範 451
22.1.5 代碼風格 452
22.1.6 使用Action模板來規範化測試腳本 453
22.2 通過管理對象庫來提高代碼的可讀性 453
22.2.1 直接錄製的測試腳本的問題 454
22.2.2 通過修改命名來達到更加易讀的效果 455
22.2.3 縮減代碼行長度的方法 456
22.2.4 以中文命名測試對象 457
22.3 測試腳本目錄結構搭建規範 458
22.3.1 常見的測試腳本目錄結構 459
22.3.2 採用分層思想定義測試腳本目錄結構 459
附錄A QTP 10新特性介紹 461
附錄B QTP小技巧和代碼集錦 471
附錄C Type方法及DeviceReplay的鍵值常量表 477
附錄D QTP面試筆試題 483
附錄E QTP學習資源 486