Foreward
Introduction
Part l CLR Basics
1 The CLR's Execution Model
Compiling Source Code into Managed Modules
Combining Managed Modules into Assemblies
Loading the Common Language Runtime
Executing Your Assembly's Code
IL and Verification
Unsafe Code
The Native Code Generator Tool: NGen.exe
The Framework Class Library
The Common Type System
The Common Language Specification
Interoperability with Unmanaged Code
2 Building, Packaging, Deploying, and Administering Applications and Types
.NET Framework Deployment Goals
Building Types into a Module
Response Files
A Brief Look at Metadata
Combining Modules to Form an Assembly
Adding Assemblies to a Project by Using the Visual Studio IDE
Using the Assembly Linker
Adding Resource Files to an Assembly
Assembly Version Resource Information
Version Numbers
Culture
Simple Application Deployment (Privately Deployed Assemblies)
Simple Administrative Control (Configuration)
3 Shared Assemblies and Strongly Named Assemblies
Two Kinds of Assemblies, Two Kinds of Deployment
Giving an Assembly a Strong Name
The Global Assembly Cache
Building an Assembly That References a Strongly Named Assembly
Strongly Named Assemblies Are Tamper-Resistant
Delayed Signing
Privately Deploying Strongly Named Assemblies
How the Runtime Resolves Type References
Advanced Administrative Control (Configuration)
Publisher Policy Control
Part II Designing Types
4 Type Fundamentals
All Types Are Derived from System.Object
Casting Between Types
Casting with the C# s and as Operators
Namespaces and Assemblies
How Things Relate at Runtime
5 Primitive, Reference, and Value Types
Programming Language Primitive Types
Checked and Unchecked Primitive Type Operations
Reference Types and Value Types
Boxing and Unboxing Value Types
Changing Fields in a Boxed Value Type by Using Interfaces (and Why You Shouldn't Do This)
Object Equality and Identity
Object Hash Codes
The dynamic Primitive Type
6 Type and Member Basics
The Different Kinds of Type Members
Type Visibility
Friend Assemblies
Member Accessibility
Static Classes
Partial Classes, Structures, and Interfaces
Components, Polymorphism, and Versioning
How the CLR Calls Virtual Methods, Properties, and Events
Using Type Visibility and Member Accessibility Intelligently
Dealing with Virtual Methods When Versioning Types
7 Constants and Fields
Constants
Fields
8 Methods
Instance Constructors and Classes (Reference Types)
Instance Constructors and Structures (Value Types)
Type Constructors
Type Constructor Performance
Operator Overload Methods
Operators and Programming Language Interoperability
Conversion Operator Methods
Extension Methods
Rules and Guidelines
Extending Various Types with Extension Methods
The Extension Attribute
Partial Methods
Rules and Guidelines
9 Parameters
Optional and Named Parameters
Rules and Guidelines
The Defaul tParameterVal ue and Optional Attributes
Implicitly Typed Local Variables
Passing Parameters by Reference to a Method
Passing a Variable Number of Arguments to a Method
Parameter and Return Type Guidelines
Const-ness
10 Properties .
Parameterless Properties
Automatically Implemented Properties
Defining Properties Intelligently
Object and Collection Initializers
Anonymous Types
The System, Tuple Type
Parameterful Properties
The Performance of Calling Property Accessor Methods
Property Accessor Accessibility
Generic Property Accessor Methods
11 Events
Designing a Type That Exposes an Event
Step #1: Define a type that will hold any additional information
that should be sent to receivers of the event notification
Step #2: Define the event member
Step #3: Define a method responsible for raising the event to
notify registered obJects that the event has occurred
Step #4: Define a method that translates the input into the desired event.
How the Compiler Implements an Event
Designing a Type That Listens for an Event
Explicitly Implementing an Event
12 Generics
Generics in the Framework Class Library
Wintellect's Power Collections Library
Generics Infrastructure
Open and Closed Types
Generic Types and Inheritance
Generic Type Identity
Code Explosion
Generic Interfaces
Generic Delegates
Delegate and Interface Contravariant and Covariant Generic Type Arguments.
Generic Methods
Generic Methods and Type Inference
Generics and Other Members
Verifiability and Constraints
Primary Constraints
Secondary Constraints
Constructor Constraints
Other Verifiability Issues
13 Interfaces
Class and Interface Inheritance
Defining an Interface
Inheriting an Interface
More About Calling Interface Methods...
Implicit and Explicit Interface Method Implementations (What's Happening Behind the Scenes)
Generic Interfaces
Generics and Interface Constraints
Implementing Multiple Interfaces That Have the Same Method Name and Signature
Improving Compile-Time Type Safety with Explicit Interface Method Implementations
Be Careful with Explicit Interface Method Implementations
Design: Base Class or Interface"para" label-module="para">
Part III Essential Types
14 Chars, Strings, and Working with Text
Characters
The System, String Type
Constructing Strings
Strings Are Immutable
Comparing Strings
……2100433B
從《框架設計(第3版)(影印版)》理解以下內(nèi)容:建立、部署基于版本的應用程序、組件和共享程序集,在理解原語、數(shù)值和引用類型行為的基礎上來定義并更高效地使用它們。使用泛型和接口定義可重用算法,有效地使用特殊的CLR類型——委托、枚舉、自定義屬性、數(shù)組、字符串 。
理解垃圾收集器如何管理資源
使用線程池、任務、取消模式、定時器和異步I/O操作來設計靈活、可靠、可擴展的解決方案,
使用異常處理以協(xié)助狀態(tài)管理
使用CLR托管、AppDomain、程序集加載、反射和C#動態(tài)
類型來構建動態(tài)可擴展的應用程序
作者:(美國)瑞奇特(Jeffrey Richter)
Jeffrey Richter是Winteltect的共同創(chuàng)辦人之一,這是一家培訓、咨詢和調(diào)試相關的企業(yè),專門致力于幫助其他公司更快構建更好的軟件。他于1999年10月開始為微軟的.NET框架團隊提供咨詢,并已促成了微軟的數(shù)款產(chǎn)品。除了本書之前的版本,他還寫過一些其他流行的主題,包括《Windows via C/C 》和《Advanced Windows》。
《便衣警察》 《死于青春》 《一場風花雪月的事》 《海巖文集》 《永不瞑目》 《海巖散文》 《玉觀音》 《海巖中篇選》 《你的生命如此多情》 《海巖長篇經(jīng)典全集》 《拿什么拯救你,我的愛人》 《煽》 ...
在結構jccad里面,先是基礎人機交互輸入,在這個目錄里面先選擇荷載,加入是satwe荷載,選擇荷載,再進行基礎的布置,這個任務完成了再進行基礎施工圖目錄
徐韋華,在臺灣很有影響力的著名拼布作家,從事 拼布材料包 設計多年,經(jīng)驗非常豐富?!兑豢p就成的拼布小物》是一本實用的拼布書,以面紙?zhí)?、手機袋、卡片夾、零錢包、筆袋、相機包等非常實用的拼布小物的制作講解...
格式:pdf
大?。?span id="4gseahb" class="single-tag-height">172KB
頁數(shù): 1頁
評分: 4.6
本文分析了目前網(wǎng)架支座選型及與支承框架分開設計存在的問題,介紹了網(wǎng)架支座選用應注意的問題,討論了網(wǎng)架根據(jù)
格式:pdf
大?。?span id="uspauqn" class="single-tag-height">172KB
頁數(shù): 1頁
評分: 4.7
《商業(yè)時代 ?學術評論》 2006年9期24 略地圖簡介 戰(zhàn)略地圖是以平衡計分卡四個層 面的相互關系為內(nèi)核,把四個層面通過因 果關系鏈條串起來。它提供了一個框架來 清晰地說明戰(zhàn)略如何將無形資產(chǎn)與價值創(chuàng) 造流程聯(lián)系起來,內(nèi)部流程是如何創(chuàng)造并 傳遞客戶價值主張以及滿足客戶價值主張 帶來的財務成果。這個框架從學習與成長 層面確定了需要利用哪些工作(人力資 本)、哪些系統(tǒng)(信息資本)、哪種氛圍(組 織資本)來支持創(chuàng)造價值的流程(內(nèi)部流 程層面),進而給客戶的價值主張帶來特殊 的價值(客戶層面),實現(xiàn)更高的財務價值 (財務層面),從而實現(xiàn)企業(yè)的戰(zhàn)略目標。 戰(zhàn)略地圖就是組織需要的交流戰(zhàn)略和實 施戰(zhàn)略的過程和系統(tǒng)。 它提供了一個描述戰(zhàn) 略的統(tǒng)一方法,使戰(zhàn)略目標和各項指標可以 被建立和管理。圖1 中的戰(zhàn)略地圖模板為戰(zhàn) 略的構成要素及其相互關系提供了一個標準 化的清單。戰(zhàn)略地圖使企業(yè)關鍵關系可視 化,明晰了
系統(tǒng)的整體框架設計的政府面對的信息資源及應用多種多樣,來自有不同的操作系統(tǒng),不同的開發(fā)平臺和不同的應用數(shù)據(jù)庫?;赑ortal 平臺的政府信息集成框架,試圖以最小的代價在企業(yè)應用系統(tǒng)的構架層次上,為政府提供了一個跨越多種分散的、內(nèi)部和外部的信息處理過程的集成紐帶,把這些信息整合到一起。它是基于J2EE 的三層B/S 結構,包括門戶、信息集成接入層、應用層、數(shù)據(jù)存儲接口層。
框架:
①應用層是指政府已經(jīng)存在的所有信息資源,包括政府內(nèi)部或外部的各種應用系統(tǒng),還包括來自不同系統(tǒng)的結構化或非結構化數(shù)據(jù),它們都是政府信息集成平臺需要整合的對象。
②信息集成接入層為政府信息集成平臺實現(xiàn)資源整合提供底層構件庫,包括本地和遠程應用集成構件,為實現(xiàn)不同類型的信息集成提供底層支持。同時提供對所有信息資源的統(tǒng)一管理、統(tǒng)一授權,實現(xiàn)對信息的統(tǒng)一訪問。
③展示層是信息集成平臺中把經(jīng)過整合的信息資源展現(xiàn)給用戶的最外層,它只關注如何展現(xiàn)信息,統(tǒng)一的視圖管理使用戶可以設定各自的個性化輸出,用戶只需單點登陸到政府門戶就可以得到所關注的信息。在這個框架中,政府所有的信息應用都作為后端應用層,信息集成接入層中的集成構件根據(jù)后端應用層傳入的信息資源類型,通過資源定義和分配、建立不同系統(tǒng)間的用戶口令轉換的對應關系,采用不同的集成構件分別進行處理,傳遞給前端的展示層,由政府門戶統(tǒng)一展示給用戶 。
全書共分3部分,第 1部分包括第 1~8章,介紹了有關測試框架與UI自動化測試的主題。在第 1章中介紹了若干種不同類型的自動化測試實踐,并提出了T型自動化測試框架以及紡錘形自動化測試模型。在第 2章介紹了自動化測試中如何進行數(shù)據(jù)的交互與管理,并結合實際案例列舉了Java屬性文件、XML、Excel、數(shù)據(jù)庫以及CSV等不同的處理方式。第3章和第4章介紹如何分層構建Solvent、SeMet等底層框架。第5~8章是有關TestLink UI自動化測試框架的構建。第 2部分是UI自動化框架橫向拓展的主題。第3部分講解API測試。實現(xiàn)了UI/API的分層自動化測試,并探討了在敏捷模式下,通過統(tǒng)一框架,同一用例在不同技術實現(xiàn)方式下無縫切換運行的可行性和由此帶來的價值。第 16章介紹了Webdriver的基礎概念及簡單元素封裝、自定義Page Object等內(nèi)容。讀者可以按照此書介紹的方法,根據(jù)自身工作中被測應用的實際特點,加上適當?shù)墓ぞ?,來嘗試建立適合自身項目實際需求的自動化測試框架。本書是幫助讀者從初學者踏上通往更高層級測試工程師的階梯。
本書適合作為測試初學者、測試從業(yè)人員、測試經(jīng)理、測試管理人員、測試開發(fā)人員的參考用書,也可以作為大專院校相關專業(yè)的師生用書和培訓學校的教材。
第 1部分 構建UI自動化框架
第 1章 BCO團隊的自動化之旅 2
1.1 奧運年的新挑戰(zhàn) 2
1.1.1 BCO是什么 2
1.1.2 為什么需要BCO 2
1.1.3 測試任務與測試內(nèi)容 3
1.1.4 利益干系人 4
1.1.5 Pink Mail、Escalation和SPRTracker 5
1.1.6 溝通,還是溝通 5
1.2 史前的自動化 6
1.2.1 自動化安裝系統(tǒng) 6
1.2.2 快速回歸測試系統(tǒng)的混合自動化 6
1.2.3 來自小眾自動化工具的框架 7
1.3 五天太久,還能壓縮嗎 8
1.3.1 BCO版本發(fā)布用時分布 8
1.3.2 缺陷壓力測試 9
1.4 聽說又有一個新框架了 10
1.4.1 初見Solvent 11
1.4.2 學習XPath和HTML 12
1.4.3 XPath定位工具 12
1.4.4 自信與挑戰(zhàn) 13
1.4.5 找到適合自身的實踐對象 14
1.4.6 框架的歸屬問題 14
1.4.7 Automation 100 15
1.5 冰山 15
1.5.1 假失敗 15
1.5.2 低優(yōu)先級的自動化Backlog 16
1.5.3 破窗與“造輪子” 16
1.6 再啟航 16
1.6.1 自動化測試金字塔與冰淇淋 17
1.6.2 橄欖形的自動化測試 18
第 2章 測試數(shù)據(jù)管理 19
2.1 簡介 19
2.2 測試數(shù)據(jù)分類 19
2.3 測試數(shù)據(jù)交互基本方法 20
2.3.1 使用Java的系統(tǒng)屬性 21
2.3.2 使用操作系統(tǒng)的環(huán)境變量 22
2.3.3 使用屬性文件 23
2.4 使用XML文件 23
2.4.1 Webdriver中的定位方法 24
2.4.2 使用dom4j進行解析 25
2.5 使用Excel 27
2.5.1 經(jīng)典的DataTable 27
2.5.2 強關鍵字驅動的自動化用例 28
2.5.3 Apache POI介紹 29
2.5.4 單個工作表的解析 30
2.5.5 整個工作簿的解析 34
2.5.6 用例解析與執(zhí)行 35
2.5.7 Mock API類 38
2.5.8 Mock API適配器類 39
2.6 使用數(shù)據(jù)庫 40
2.6.1 JDBC連接數(shù)據(jù)庫 41
2.6.2 使用Apache DbUtils 44
2.6.3 從TestLink數(shù)據(jù)庫中讀取數(shù)據(jù) 46
2.7 使用CSV文件 47
2.7.1 CSV文件數(shù)據(jù)解析思路 48
2.7.2 實現(xiàn)泛型解析 48
2.7.3 對象類案例 49
2.7.4 提供數(shù)據(jù)源的外部訪問 50
2.7.5 CSV文件通過SQL方式查詢結果 50
第3章 構建Solvent 53
3.1 框架是什么 53
3.1.1 六萬立方米的混凝土大底板 53
3.1.2 測試框架及其目標 53
3.2 Solvent與JUnit 54
3.3 遲早,你需要一個基類 54
3.3.1 用例基類SolventTestCase 55
3.3.2 業(yè)務功能基類Solvent 57
3.4 基于Log4j的日志 60
3.4.1 Log4j簡介 60
3.4.2 一個簡單的例子 62
3.4.3 實現(xiàn)SolventLogger類 63
3.4.4 使用SolventLogger 64
3.5 使用TestWatcher截屏 65
3.5.1 功能分析 65
3.5.2 實現(xiàn)示例 65
3.6 經(jīng)改造的Apache計時器 66
3.6.1 Apache的計時器 66
3.6.2 Solvent增強的計時器 67
3.6.3 部署計時器 68
3.6.4 計時精度與延遲 69
3.7 使用Timeout進行超時判負 70
3.8 自定義檢查點CheckPoint 70
3.8.1 檢查點類CheckPoint 70
3.8.2 部署與使用 73
3.9 Configurator提供統(tǒng)一框架配置參數(shù) 75
3.9.1 Configurator類的實現(xiàn) 75
3.9.2 雙重參數(shù)文件的讀取 78
3.9.3 配置參數(shù)的使用 80
3.10 基于XML的運行時參數(shù)處理 81
3.10.1 來自XML的用例數(shù)據(jù)集 81
3.10.2 InputFileFinder獲取輸入文件 82
3.10.3 InputFileDigester進行解析 83
3.10.4 數(shù)據(jù)結構之SolventTestDataSetBean 85
3.10.5 數(shù)據(jù)結構之SolventTestDataSet 87
3.10.6 在SolventTestCase中完成解析 88
3.10.7 SolventTestCase提供統(tǒng)一數(shù)據(jù)獲取方法 89
3.10.8 測試用例參數(shù)化案例 90
第4章 構建SeMet 92
4.1 SeMet是什么 92
4.2 引入SeMet類 92
4.3 引入TLTestCase 98
4.4 引入SeMetWebDriverSession類 99
4.5 引入Webdrivers工廠類 100
4.6 小結 101
第5章 TestLink自動化測試 102
5.1 自動化測試策略 102
5.2 為什么是TestLink 103
5.3 TestLink簡介 105
5.4 TestLink安裝 105
5.4.1 XAMPP的安裝 106
5.4.2 TestLink部署 107
5.5 TestLink主要功能分析 108
5.5.1 基于文檔的測試 108
5.5.2 TestLink基本業(yè)務對象 109
5.5.3 模塊與功能點 109
5.6 TestLink頁面分析 110
5.6.1 頁面結構分析 110
5.6.2 Web組件分析 112
5.7 框架 113
5.7.1 Webdriver中有關(i)frame的處理方法 114
5.7.2 回到原點的frame處理方法 114
5.7.3 工具類FrameHelper 115
5.7.4 一級頁面的使用方法 116
5.7.5 二級以下頁面的使用方法 116
5.7.6 不同框架下使用組件的方法 117
5.8 左右選擇框 118
5.8.1 頁面分析及自動化實現(xiàn) 118
5.8.2 功能分析及自動化實現(xiàn) 120
5.9 浮動對話框 121
5.9.1 頁面分析及自動化實現(xiàn) 121
5.9.2 功能分析及自動化實現(xiàn) 123
5.9.3 復選框的簡單增強 125
5.10 樹 126
5.10.1 頁面分析及自動化實現(xiàn) 126
5.10.2 功能分析及自動化實現(xiàn) 128
5.11 表格 130
5.11.1 頁面分析及自動化實現(xiàn) 131
5.11.2 功能分析及自動化實現(xiàn) 132
5.11.3 TableSeMet子類 134
5.12 下拉選擇框 136
5.12.1 組件介紹 136
5.12.2 功能與測試點分析 137
5.12.3 SelectboxSeMet類 138
5.13 小結 140
第6章 頁面封裝—從登錄到測試項目管理 142
6.1 登錄——三段式頁面封裝法 142
6.2 測試項目對象TestProjectBean-使用方法鏈 144
6.3 創(chuàng)建測試項目類CreateProjectSeMet 146
6.3.1 頁面定位 146
6.3.2 頁面元素定位 146
6.3.3 元素獲取與簡單操作 146
6.3.4 高 級業(yè)務操作—隔離業(yè)務與具體實現(xiàn) 148
6.4 統(tǒng)一測試項目操作類ProjectMgrCRUSeMet 149
6.4.1 重構的CreateProjectSeMet類 150
6.4.2 零代碼的EditProjectSeMet類 150
6.5 測試項目管理TestProjectMgrSeMet 150
6.5.1 測試項目列表 151
6.5.2 查詢與創(chuàng)建 152
6.6 登錄后默認主頁面——使用枚舉類封裝框架數(shù)據(jù) 153
6.7 第 一個完整的端到端用例 154
6.7.1 測試場景 154
6.7.2 自給自足的測試用例 155
6.8 小結 156
第7章 頁面封裝—測試規(guī)約的自動化 158
7.1 導航欄 158
7.1.1 導航欄頁面分析 158
7.1.2 元素分析與自動化實現(xiàn) 159
7.1.3 測試上下文 160
7.2 關鍵字管理 160
7.2.1 頁面分析 161
7.2.2 自動化測試用例 161
7.2.3 關鍵字管理類的實現(xiàn) 162
7.2.4 文件導入關鍵字 164
7.3 測試規(guī)約 166
7.3.1 進入測試規(guī)約頁面 166
7.3.2 測試用例集操作 166
7.3.3 創(chuàng)建測試集 168
7.3.4 創(chuàng)建測試用例 169
7.4 完整的用例 174
7.5 小結 176
第8章 測試計劃 177
8.1 從主頁面到測試計劃管理 177
8.1.1 頁面定位 177
8.1.2 靜態(tài)跳轉方法 178
8.2 測試計劃管理 179
8.3 創(chuàng)建測試計劃 179
8.4 測試計劃對象 181
8.5 版本管理 182
8.5.1 從主頁面到版本管理 182
8.5.2 從版本管理類到版本管理對象 183
8.6 添加測試用例到測試計劃 186
8.6.1 發(fā)起添加測試用例 187
8.6.2 測試用例樹操作 187
8.6.3 添加用例到測試計劃 188
8.7 添加平臺到測試計劃 190
8.7.1 發(fā)起添加平臺 190
8.7.2 完成平臺添加 191
8.8 測試執(zhí)行 192
8.8.1 測試執(zhí)行的入口 192
8.8.2 測試用例集的設定 192
8.8.3 執(zhí)行結果錄入 194
8.9 小結 196
第 2部分 UI自動化框架橫向拓展
第9章 Web兼容性測試 198
9.1 瀏覽器簡史 198
9.2 內(nèi)核之母 201
9.3 內(nèi)核之意 202
9.3.1 Trident 202
9.3.2 Gecko 203
9.3.3 Presto 204
9.3.4 WebKit 204
9.3.5 Chromium &Blink 205
9.4 渲染與解析 205
9.5 容錯處理機 210
9.6 布局與繪制 210
9.7 兼容性問題案例 215
9.7.1 網(wǎng)銀中使用的jQuery版本問題 215
9.7.2 IE 10在響應式時間中CSS樣式布局混亂 215
9.7.3 CSS重構以及JS文件分割優(yōu)化 216
9.7.4 IE 6瀏覽器上頁面加載的性能問題(可導致IE 6崩潰) 217
9.7.5 兼容性Bug錯誤具體分析 223
9.8 移動端瀏覽器兼容性 226
第 10章 輕量級本地化測試解決方案 233
10.1 什么是本地化、國際化和全球化 233
10.2 本地化測試自動化的挑戰(zhàn) 233
10.3 解決的思路 234
10.4 伐謀:一碼走天下 234
10.4.1 TestLink的樣例分析 234
10.4.2 使用本地化中性資源進行自動化 235
10.5 伐兵:使用本地化資源 238
10.5.1 TestLink本地化資源文件分析 238
10.5.2 本地化支持的簡要流程 239
10.5.3 本地化案例 240
10.6 基于HSQL的數(shù)據(jù)字典 241
10.6.1 為什么使用HSQL 241
10.6.2 HSQLDB數(shù)據(jù)導入及維護 241
10.6.3 將HSQL集成進自動化測試框架 243
10.7 結合Java Annotation的解決方案 248
10.7.1 思路 248
10.7.2 定義Annotation 249
10.7.3 定義工具類,通過Java反射機制動態(tài)獲取本地化資源 249
10.8 部署 251
10.8.1 SolventTestCase 251
10.8.2 Solvent 251
10.8.3 框架類 251
10.8.4 測試用例 252
10.9 總結與展望 252
第3部分 Hybrid Automation—實現(xiàn)UI/API測試一體化
第 11章 歡迎來到接口測試的世界 254
11.1 集成測試與接口測試 254
11.1.1 集成測試 254
11.1.2 接口測試與測試接口 254
11.2 XML-RPC簡介 255
11.3 使用原生的TestLink XML-RPC接口 256
11.3.1 啟用XML-RPC接口 256
11.3.2 獲取API KEY 256
11.3.3 sayHello樣例 257
11.3.4 TestLink XML-RPC簡析 259
11.4 使用TestLink Java API 260
11.5 測試用例自動化生成初探 263
11.5.1 重溫等價類劃分 263
11.5.2 組合策略與工具 265
11.5.3 數(shù)據(jù)集與組合算法 265
11.5.4 生成全組合用例 267
11.5.5 生成健壯性用例 271
11.6 小結 272
第 12章 Hybrid Automation混合自動 274
12.1 修改SeMet層的基礎類 274
12.1.1 在Webdrivers類中存儲TestLinkAPI實例 274
12.1.2 在TLTestCase中完成TestLinkAPI初始化 274
12.2 在測試用例中直接使用接口 276
12.3 將接口轉移到業(yè)務SeMet類中 278
12.4 用例無縫切換 280
第 13章 iTestLink業(yè)務與技術解耦 281
13.1 問題與挑戰(zhàn) 281
13.2 Webdriver帶來的啟示 281
13.3 實現(xiàn)iTestLink 282
13.3.1 定義TestLink業(yè)務接口 282
13.3.2 定義業(yè)務對象類 283
13.3.3 增加TLSession類獲取執(zhí)行方式 284
13.3.4 枚舉類TestLinkDriver的實現(xiàn) 285
13.3.5 新建TLTestCase 286
13.4 iTestLink的測試用例 286
13.5 改造APIMet支持iTestLink 288
13.5.1 引入TestLinkJavaAPIAdaptor 288
13.5.2 接口間TestProject對象轉換 290
13.5.3 接口層測試用例執(zhí)行 291
13.6 改造SeMet支持iTestLink 292
13.6.1 實現(xiàn)Service類 293
13.6.2 改造相關SeMet 294
13.6.3 實現(xiàn)TestLinkSeMetAdaptor 296
13.6.4 UI層測試用例執(zhí)行 297
13.7 小結 298
第 14章 代碼的管理和審查 299
14.1 簡介 299
14.2 代碼管理工具 299
14.2.1 GIT介紹 299
14.2.2 安裝過程 300
14.2.3 常用命令 300
14.3 代碼審查工具 302
14.3.1 Gerrit是什么 302
14.3.2 如何去安裝 302
14.3.3 基本功能介紹 306
14.4 檢出代碼 310
14.4.1 命令介紹 310
14.4.2 工作場景一 310
14.5 提交代碼 312
14.5.1 命令介紹 312
14.5.2 工作場景 314
14.6 合并分支 316
14.6.1 命令介紹 316
14.6.2 工作場景 317
14.6.3 分支合并沖突 319
14.7 最佳實踐 320
第 15章 持續(xù)集成 322
15.1 簡介 322
15.2 持續(xù)集成工具 322
15.2.1 Jenkins介紹 322
15.2.2 主要功能 323
15.2.3 如何安裝 324
15.2.4 建立新的Job 324
15.2.5 注意事項 325
15.2.6 系統(tǒng)配置 326
15.2.7 設置Job 330
15.2.8 成功連通 331
15.2.9 工作場景 333
15.3 執(zhí)行自動編譯和測試 334
15.4 合并代碼 335
15.5 常見問題 336
15.6 最佳實踐 337
第 16章 Webdriver入門簡介 339
16.1 Webdriver的基本結構 339
16.2 Webdriver的工作原理 339
16.3 在啟動瀏覽器的時候發(fā)生了什么 340
16.3.1 Firefox 340
16.3.2 Chrome 341
16.3.3 IE 341
16.4 Webdriver常用API簡介 342
16.4.1 Webdriver API結構淺析 342
16.4.2 啟動與關閉瀏覽器 344
16.4.3 提取文本getText 344
16.4.4 提取元素屬性getAttribute 345
16.4.5 模擬瀏覽器的前后跳轉forward和back 345
16.4.6 模擬鼠標右鍵Actions和contextClick 346
16.4.7 截圖TakesScreenshot 346
16.4.8 操作下拉菜單Select控件 347
16.4.9 操作frame里面的元素switchTo 348
16.4.10 操作單選按鈕radio button 349
16.4.11 操作多選框checkbox 350
16.4.12 切換窗口getWindowHandle 350
16.4.13 等待 351
16.4.14 JS彈出框 352
16.4.15 彈出框的擴展 353
16.5 Page Object介紹 355
16.5.1 創(chuàng)建LoginVariables.java文件 357
16.5.2 創(chuàng)建LoginPage文件 358
16.5.3 創(chuàng)建GloablaFunction.java文件 359
16.5.4 創(chuàng)建WebdriverTest.java文件 359
16.5.5 創(chuàng)建LoginTest.java文件 360
16.6 選擇Webdriver而不是Selenium RC 361
16.7 如何從Selenium RC遷移到Webdriver 362
16.8 Webdriver如何執(zhí)行Javascript 364
16.9 如何定制瀏覽器 364
16.10 小結 3652100433B