前端自動化測試框架——Cypress 從入門到精通
定 價:65 元
- 作者:蔡超
- 出版時間:2020/4/1
- ISBN:9787121387784
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.55
- 頁碼:252
- 紙張:
- 版次:01
- 開本:16開
本書在簡要講解軟件測試概述和自動化測試框架之后,教會讀者了解測試的基本概念,以及如何設(shè)計一個測試框架。之后,在分別介紹了一些流行框架并使讀者知曉各自優(yōu)缺點(diǎn)和適用,使得讀者對前端自動化框架有提綱挈領(lǐng)的了解。在此基礎(chǔ)上,本書重點(diǎn)介紹當(dāng)下流行的前端測試框架Cypress ,通過基礎(chǔ)知識、進(jìn)階知識、高級用法和實(shí)戰(zhàn)演示幾個方面,由淺入深,讓讀者真正掌握前端測試框架,成為軟件測試行業(yè)的高手。
蔡超,知名測試架構(gòu)師,自動化測試框架ktest作者,軟件測評師,PMP,互聯(lián)網(wǎng)測試開發(fā)社區(qū)VIPTEST聯(lián)合創(chuàng)始人,微信公眾號iTesting作者。曾先后服務(wù)于世界 500 強(qiáng)企業(yè)上;萜沼邢薰荆 HP), 在線教育企業(yè)英培信息技術(shù)有限公司(EF Labs) 等國際公司, 對測試框架,自動化測試有深入研究。業(yè)余時間熱愛軟件測試技術(shù)分享并長期致力于軟件測試的技術(shù)傳播工作。技術(shù)博客https://www.helloqa.com
第一部分 前端自動化測試框架準(zhǔn)備篇
第1 章 前端自動化測試概述 2
1.1 前端自動化測試概述 2
1.2 前端自動化測試框架概述 5
1.2.1 應(yīng)運(yùn)而生的前端測試框架 5
1.2.2 前端自動化測試框架組成 6
1.2.3 前端自動化測試框架設(shè)計原則 8
1.3 前端代碼基礎(chǔ) 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架構(gòu)及原理 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 長期權(quán)衡 34
2.5.2 短期折中 34
第三部分 前端自動化測試框架基礎(chǔ)篇
——Cypress基礎(chǔ)知識
第3 章 Cypress初體驗(yàn) 36
3.1 Cypress安裝 36
3.1.1 系統(tǒng)要求 36
3.1.2 下載 36
3.1.3 安裝 37
3.1.4 打開Cypress 39
3.1.5 Cypress設(shè)置 40
3.2 搭建測試應(yīng)用 41
3.2.1 下載測試應(yīng)用 41
3.2.2 啟動測試應(yīng)用 42
3.3 測試你的應(yīng)用 44
3.3.1 創(chuàng)建測試 44
3.3.2 編寫測試用例 44
3.3.3 運(yùn)行測試 46
3.3.4 調(diào)試測試用例 47
第4 章 Cypress測試框架拆解 53
4.1 Cypress默認(rèn)文件結(jié)構(gòu) 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 重試機(jī)制 59
4.3.1 命令和斷言 59
4.3.2 多重斷言 61
4.3.3 重試(Retry-ability)的條件 61
4.4 測試報告 62
4.4.1 內(nèi)置的測試報告 62
4.4.2 自定義的測試報告 66
4.4.3 生成混合測試報告 69
第5 章 測試用例的組織和編寫 72
5.1 Mocha介紹 72
5.2 鉤子函數(shù)(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 觀察測試運(yùn)行 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 章 命令行運(yùn)行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 章 測試運(yùn)行器 123
8.1 Test Runner簡介 123
8.2 Test Runner如何便捷我們的測試 125
8.2.1 更改瀏覽器 125
8.2.2 更改元素定位策略 125
8.2.3 實(shí)時監(jiān)控測試用例執(zhí)行情況 126
8.2.4 時間穿梭功能 126
8.3 Test Runner功能擴(kuò)展 127
8.3.1 安裝 127
8.3.2 配置 127
8.3.3 使用 128
第9 章 重塑你的“測試習(xí)慣” 129
9.1 Cypress典型的“坑” 129
9.1.1 Cypress命令是異步的 129
9.1.2 慎用箭頭函數(shù) 130
9.1.3 async/await不工作 130
9.1.4 賦值“永遠(yuǎn)”失敗 131
9.1.5 躲不過的同源策略 131
9.2 Cypress獨(dú)特之處 132
9.2.1 閉包(Closure) 132
9.2.2 變量和別名 133
第四部分 前端自動化測試框架進(jìn)階篇
——Cypress進(jìn)階
第10 章 Cypress最佳實(shí)踐 138
10.1 設(shè)置全局URL 138
10.2 避免訪問多個站點(diǎn) 139
10.3 刪除等待代碼 139
10.4 停用條件測試 140
10.5 實(shí)時調(diào)試和中斷 140
10.6 運(yùn)行時的截圖和錄屏 141
10.7 斷言最佳實(shí)踐 143
10.8 改造PageObject模式 146
10.9 使用Custom Commands 153
10.10 數(shù)據(jù)驅(qū)動策略 155
10.10.1 數(shù)據(jù)保存在前置條件里 155
10.10.2 使用fixtures 156
10.10.3 數(shù)據(jù)保存在自定義文件中 156
10.11 環(huán)境變量設(shè)置指南 157
10.11.1 cypress.json設(shè)置 157
10.11.2 cypress.env.json 157
10.11.3 運(yùn)行時動態(tài)指定環(huán)境變量 158
10.12 測試運(yùn)行最佳實(shí)踐 159
10.12.1 動態(tài)生成測試用例 159
10.12.2 挑選待運(yùn)行測試用例 159
10.13 測試運(yùn)行失敗自動重試 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 實(shí)例演示 170
第12 章 Mock Server 172
12.1 自定義Mock Server 172
12.1.1 搭建Mock Server 172
12.1.2 使用Mock Server進(jìn)行測試 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實(shí)踐 188
13.3.1 挑選測試用例運(yùn)行 188
13.3.2 Module API完整項(xiàng)目實(shí)踐 191
第五部分 前端自動化測試框架高級篇
——持續(xù)集成實(shí)踐
第14 章 Cypress持續(xù)集成實(shí)踐 202
14.1 持續(xù)集成簡介 202
14.2 Cypress并行執(zhí)行測試 203
14.3 Circle CI持續(xù)集成實(shí)踐 204
14.3.1 Circle CI集成Github 204
14.3.2 Circle CI集成Cypress 212
14.4 Jenkins持續(xù)集成實(shí)踐 220
附錄A 參考資料 229
A.1 源代碼下載 229
A.2 參考資料 229
A.3 聯(lián)系作者 229