前端自動化測試框架——Cypress 從入門到精通
定 價:65 元
- 作者:蔡超
- 出版時間:2020/4/1
- ISBN:9787121387784
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.55
- 頁碼:252
- 紙張:
- 版次:01
- 開本:16開
本書在簡要講解軟件測試概述和自動化測試框架之后,教會讀者了解測試的基本概念,以及如何設計一個測試框架。之后,在分別介紹了一些流行框架并使讀者知曉各自優(yōu)缺點和適用,使得讀者對前端自動化框架有提綱挈領的了解。在此基礎上,本書重點介紹當下流行的前端測試框架Cypress ,通過基礎知識、進階知識、高級用法和實戰(zhàn)演示幾個方面,由淺入深,讓讀者真正掌握前端測試框架,成為軟件測試行業(yè)的高手。
蔡超,知名測試架構師,自動化測試框架ktest作者,軟件測評師,PMP,互聯網測試開發(fā)社區(qū)VIPTEST聯合創(chuàng)始人,微信公眾號iTesting作者。曾先后服務于世界 500 強企業(yè)上;萜沼邢薰荆 HP), 在線教育企業(yè)英培信息技術有限公司(EF Labs) 等國際公司, 對測試框架,自動化測試有深入研究。業(yè)余時間熱愛軟件測試技術分享并長期致力于軟件測試的技術傳播工作。技術博客https://www.helloqa.com
第一部分 前端自動化測試框架準備篇
第1 章 前端自動化測試概述 2
1.1 前端自動化測試概述 2
1.2 前端自動化測試框架概述 5
1.2.1 應運而生的前端測試框架 5
1.2.2 前端自動化測試框架組成 6
1.2.3 前端自動化測試框架設計原則 8
1.3 前端代碼基礎 9
第二部分 前端自動化測試工具篇
第2 章 前端測試框架/工具大比拼 14
2.1 前端測試框架/工具簡介 14
2.1.1 Selenium/WebDriver 14
2.1.2 Karma 15
2.1.3 Nightwatch 17
2.1.4 Protractor 17
2.1.5 TestCafe 18
2.1.6 Puppeteer 19
2.2 Cypress框架介紹 20
2.2.1 Cypress簡介 20
2.2.2 Cypress架構及原理 20
2.2.3 Cypress八大特性 22
2.2.4 一圖勝千言 23
2.3 Cypress與Selenium/WebDriver的比較 23
2.3.1 Selenium/WebDriver的原理 23
2.3.2 Cypress與Selenium/WebDriver比較 26
2.4 Cypress與其他主流測試工具比較 29
2.4.1 Cypress與Karma比較 29
2.4.2 Cypress與Nightwatch比較 30
2.4.3 Cypress與Protractor比較 31
2.4.4 Cypress與TestCafe比較 32
2.4.5 Cypress與Puppeteer比較 33
2.5 Cypress的局限 34
2.5.1 長期權衡 34
2.5.2 短期折中 34
第三部分 前端自動化測試框架基礎篇
——Cypress基礎知識
第3 章 Cypress初體驗 36
3.1 Cypress安裝 36
3.1.1 系統要求 36
3.1.2 下載 36
3.1.3 安裝 37
3.1.4 打開Cypress 39
3.1.5 Cypress設置 40
3.2 搭建測試應用 41
3.2.1 下載測試應用 41
3.2.2 啟動測試應用 42
3.3 測試你的應用 44
3.3.1 創(chuàng)建測試 44
3.3.2 編寫測試用例 44
3.3.3 運行測試 46
3.3.4 調試測試用例 47
第4 章 Cypress測試框架拆解 53
4.1 Cypress默認文件結構 53
4.1.1 測試夾具(Fixture) 54
4.1.2 測試文件(Test file) 54
4.1.3 插件文件(Plugin file) 55
4.1.4 支持文件(Support file) 55
4.2 自定義Cypress 56
4.3 重試機制 59
4.3.1 命令和斷言 59
4.3.2 多重斷言 61
4.3.3 重試(Retry-ability)的條件 61
4.4 測試報告 62
4.4.1 內置的測試報告 62
4.4.2 自定義的測試報告 66
4.4.3 生成混合測試報告 69
第5 章 測試用例的組織和編寫 72
5.1 Mocha介紹 72
5.2 鉤子函數(Hook) 74
5.3 排除或包含測試用例 82
5.3.1 排除測試套件/測試用例 83
5.3.2 包含測試套件/測試用例 86
5.4 動態(tài)忽略測試用例 89
5.5 動態(tài)生成測試用例 91
5.6 斷言 93
5.7 觀察測試運行 94
第6 章 Cypress與元素交互 97
6.1 Cypress元素定位選擇器 97
6.2 Cypress與頁面元素交互 99
6.2.1 查找頁面元素的基本方法 99
6.2.2 查找頁面元素的輔助方法 100
6.2.3 可操作類型 105
6.2.4 Cypress常見操作 109
第7 章 命令行運行Cypress 117
7.1 cypress open 117
7.1.1 cypress open簡介 117
7.1.2 cypress open詳解 118
7.2 cypress run 119
7.2.1 cypress run簡介 119
7.2.2 cypress run詳解 119
第8 章 測試運行器 123
8.1 Test Runner簡介 123
8.2 Test Runner如何便捷我們的測試 125
8.2.1 更改瀏覽器 125
8.2.2 更改元素定位策略 125
8.2.3 實時監(jiān)控測試用例執(zhí)行情況 126
8.2.4 時間穿梭功能 126
8.3 Test Runner功能擴展 127
8.3.1 安裝 127
8.3.2 配置 127
8.3.3 使用 128
第9 章 重塑你的“測試習慣” 129
9.1 Cypress典型的“坑” 129
9.1.1 Cypress命令是異步的 129
9.1.2 慎用箭頭函數 130
9.1.3 async/await不工作 130
9.1.4 賦值“永遠”失敗 131
9.1.5 躲不過的同源策略 131
9.2 Cypress獨特之處 132
9.2.1 閉包(Closure) 132
9.2.2 變量和別名 133
第四部分 前端自動化測試框架進階篇
——Cypress進階
第10 章 Cypress最佳實踐 138
10.1 設置全局URL 138
10.2 避免訪問多個站點 139
10.3 刪除等待代碼 139
10.4 停用條件測試 140
10.5 實時調試和中斷 140
10.6 運行時的截圖和錄屏 141
10.7 斷言最佳實踐 143
10.8 改造PageObject模式 146
10.9 使用Custom Commands 153
10.10 數據驅動策略 155
10.10.1 數據保存在前置條件里 155
10.10.2 使用fixtures 156
10.10.3 數據保存在自定義文件中 156
10.11 環(huán)境變量設置指南 157
10.11.1 cypress.json設置 157
10.11.2 cypress.env.json 157
10.11.3 運行時動態(tài)指定環(huán)境變量 158
10.12 測試運行最佳實踐 159
10.12.1 動態(tài)生成測試用例 159
10.12.2 挑選待運行測試用例 159
10.13 測試運行失敗自動重試 162
10.14 全面的測試報告 162
10.15 Cypress連接DB 163
第11 章 使用Cypress做接口測試 165
11.1 發(fā)起接口請求 165
11.1.1 發(fā)起HTTP請求的方式 165
11.1.2 發(fā)起GET請求 166
11.1.3 發(fā)起POST請求 167
11.2 實例演示 170
第12 章 Mock Server 172
12.1 自定義Mock Server 172
12.1.1 搭建Mock Server 172
12.1.2 使用Mock Server進行測試 173
12.2 Cypress自帶Mock 182
12.2.1 截獲接口返回值 184
12.2.2 更改接口返回值 185
第13 章 模塊API 187
13.1 cypress.run( ) 187
13.2 cypress.open( ) 188
13.3 Module API實踐 188
13.3.1 挑選測試用例運行 188
13.3.2 Module API完整項目實踐 191
第五部分 前端自動化測試框架高級篇
——持續(xù)集成實踐
第14 章 Cypress持續(xù)集成實踐 202
14.1 持續(xù)集成簡介 202
14.2 Cypress并行執(zhí)行測試 203
14.3 Circle CI持續(xù)集成實踐 204
14.3.1 Circle CI集成Github 204
14.3.2 Circle CI集成Cypress 212
14.4 Jenkins持續(xù)集成實踐 220
附錄A 參考資料 229
A.1 源代碼下載 229
A.2 參考資料 229
A.3 聯系作者 229