前端自動(dòng)化測(cè)試框架——Cypress 從入門到精通
定 價(jià):65 元
- 作者:蔡超
- 出版時(shí)間:2020/4/1
- ISBN:9787121387784
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.55
- 頁(yè)碼:252
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書在簡(jiǎn)要講解軟件測(cè)試概述和自動(dòng)化測(cè)試框架之后,教會(huì)讀者了解測(cè)試的基本概念,以及如何設(shè)計(jì)一個(gè)測(cè)試框架。之后,在分別介紹了一些流行框架并使讀者知曉各自優(yōu)缺點(diǎn)和適用,使得讀者對(duì)前端自動(dòng)化框架有提綱挈領(lǐng)的了解。在此基礎(chǔ)上,本書重點(diǎn)介紹當(dāng)下流行的前端測(cè)試框架Cypress ,通過(guò)基礎(chǔ)知識(shí)、進(jìn)階知識(shí)、高級(jí)用法和實(shí)戰(zhàn)演示幾個(gè)方面,由淺入深,讓讀者真正掌握前端測(cè)試框架,成為軟件測(cè)試行業(yè)的高手。
蔡超,知名測(cè)試架構(gòu)師,自動(dòng)化測(cè)試框架ktest作者,軟件測(cè)評(píng)師,PMP,互聯(lián)網(wǎng)測(cè)試開(kāi)發(fā)社區(qū)VIPTEST聯(lián)合創(chuàng)始人,微信公眾號(hào)iTesting作者。曾先后服務(wù)于世界 500 強(qiáng)企業(yè)上;萜沼邢薰荆 HP), 在線教育企業(yè)英培信息技術(shù)有限公司(EF Labs) 等國(guó)際公司, 對(duì)測(cè)試框架,自動(dòng)化測(cè)試有深入研究。業(yè)余時(shí)間熱愛(ài)軟件測(cè)試技術(shù)分享并長(zhǎng)期致力于軟件測(cè)試的技術(shù)傳播工作。技術(shù)博客https://www.helloqa.com
第一部分 前端自動(dòng)化測(cè)試框架準(zhǔn)備篇
第1 章 前端自動(dòng)化測(cè)試概述 2
1.1 前端自動(dòng)化測(cè)試概述 2
1.2 前端自動(dòng)化測(cè)試框架概述 5
1.2.1 應(yīng)運(yùn)而生的前端測(cè)試框架 5
1.2.2 前端自動(dòng)化測(cè)試框架組成 6
1.2.3 前端自動(dòng)化測(cè)試框架設(shè)計(jì)原則 8
1.3 前端代碼基礎(chǔ) 9
第二部分 前端自動(dòng)化測(cè)試工具篇
第2 章 前端測(cè)試框架/工具大比拼 14
2.1 前端測(cè)試框架/工具簡(jiǎn)介 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簡(jiǎn)介 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與其他主流測(cè)試工具比較 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 長(zhǎng)期權(quán)衡 34
2.5.2 短期折中 34
第三部分 前端自動(dòng)化測(cè)試框架基礎(chǔ)篇
——Cypress基礎(chǔ)知識(shí)
第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 打開(kāi)Cypress 39
3.1.5 Cypress設(shè)置 40
3.2 搭建測(cè)試應(yīng)用 41
3.2.1 下載測(cè)試應(yīng)用 41
3.2.2 啟動(dòng)測(cè)試應(yīng)用 42
3.3 測(cè)試你的應(yīng)用 44
3.3.1 創(chuàng)建測(cè)試 44
3.3.2 編寫測(cè)試用例 44
3.3.3 運(yùn)行測(cè)試 46
3.3.4 調(diào)試測(cè)試用例 47
第4 章 Cypress測(cè)試框架拆解 53
4.1 Cypress默認(rèn)文件結(jié)構(gòu) 53
4.1.1 測(cè)試夾具(Fixture) 54
4.1.2 測(cè)試文件(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 多重?cái)嘌?61
4.3.3 重試(Retry-ability)的條件 61
4.4 測(cè)試報(bào)告 62
4.4.1 內(nèi)置的測(cè)試報(bào)告 62
4.4.2 自定義的測(cè)試報(bào)告 66
4.4.3 生成混合測(cè)試報(bào)告 69
第5 章 測(cè)試用例的組織和編寫 72
5.1 Mocha介紹 72
5.2 鉤子函數(shù)(Hook) 74
5.3 排除或包含測(cè)試用例 82
5.3.1 排除測(cè)試套件/測(cè)試用例 83
5.3.2 包含測(cè)試套件/測(cè)試用例 86
5.4 動(dòng)態(tài)忽略測(cè)試用例 89
5.5 動(dòng)態(tài)生成測(cè)試用例 91
5.6 斷言 93
5.7 觀察測(cè)試運(yùn)行 94
第6 章 Cypress與元素交互 97
6.1 Cypress元素定位選擇器 97
6.2 Cypress與頁(yè)面元素交互 99
6.2.1 查找頁(yè)面元素的基本方法 99
6.2.2 查找頁(yè)面元素的輔助方法 100
6.2.3 可操作類型 105
6.2.4 Cypress常見(jiàn)操作 109
第7 章 命令行運(yùn)行Cypress 117
7.1 cypress open 117
7.1.1 cypress open簡(jiǎn)介 117
7.1.2 cypress open詳解 118
7.2 cypress run 119
7.2.1 cypress run簡(jiǎn)介 119
7.2.2 cypress run詳解 119
第8 章 測(cè)試運(yùn)行器 123
8.1 Test Runner簡(jiǎn)介 123
8.2 Test Runner如何便捷我們的測(cè)試 125
8.2.1 更改瀏覽器 125
8.2.2 更改元素定位策略 125
8.2.3 實(shí)時(shí)監(jiān)控測(cè)試用例執(zhí)行情況 126
8.2.4 時(shí)間穿梭功能 126
8.3 Test Runner功能擴(kuò)展 127
8.3.1 安裝 127
8.3.2 配置 127
8.3.3 使用 128
第9 章 重塑你的“測(cè)試習(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 躲不過(guò)的同源策略 131
9.2 Cypress獨(dú)特之處 132
9.2.1 閉包(Closure) 132
9.2.2 變量和別名 133
第四部分 前端自動(dòng)化測(cè)試框架進(jìn)階篇
——Cypress進(jìn)階
第10 章 Cypress最佳實(shí)踐 138
10.1 設(shè)置全局URL 138
10.2 避免訪問(wèn)多個(gè)站點(diǎn) 139
10.3 刪除等待代碼 139
10.4 停用條件測(cè)試 140
10.5 實(shí)時(shí)調(diào)試和中斷 140
10.6 運(yùn)行時(shí)的截圖和錄屏 141
10.7 斷言最佳實(shí)踐 143
10.8 改造PageObject模式 146
10.9 使用Custom Commands 153
10.10 數(shù)據(jù)驅(qū)動(dòng)策略 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)行時(shí)動(dòng)態(tài)指定環(huán)境變量 158
10.12 測(cè)試運(yùn)行最佳實(shí)踐 159
10.12.1 動(dòng)態(tài)生成測(cè)試用例 159
10.12.2 挑選待運(yùn)行測(cè)試用例 159
10.13 測(cè)試運(yùn)行失敗自動(dòng)重試 162
10.14 全面的測(cè)試報(bào)告 162
10.15 Cypress連接DB 163
第11 章 使用Cypress做接口測(cè)試 165
11.1 發(fā)起接口請(qǐng)求 165
11.1.1 發(fā)起HTTP請(qǐng)求的方式 165
11.1.2 發(fā)起GET請(qǐng)求 166
11.1.3 發(fā)起POST請(qǐng)求 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)行測(cè)試 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 挑選測(cè)試用例運(yùn)行 188
13.3.2 Module API完整項(xiàng)目實(shí)踐 191
第五部分 前端自動(dòng)化測(cè)試框架高級(jí)篇
——持續(xù)集成實(shí)踐
第14 章 Cypress持續(xù)集成實(shí)踐 202
14.1 持續(xù)集成簡(jiǎn)介 202
14.2 Cypress并行執(zhí)行測(cè)試 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