基本信息
柳勝,國內首批以
軟體測試方法與技術為研究課題畢業的碩士研究生之一,之後數年一直致力於軟體性能測試以及軟體測試自動化的研究和實踐,曾供職於摩托羅拉中國研發中心,任高級軟體測試工程師角色。到2008年已有八年的軟體測試從業經歷,因此在軟體測試理論及實踐上均有深厚的功底和經驗。
此外,作者長期擔任國內人氣最旺的軟體測試入口網站——51Testing軟體測試網的論壇版主,網名sunshinelius,曾在網路上發表多篇膾炙人口的性能測試的文章。
人名
著作
《讓LoadRunner走下神壇》、《性能測試從零開始-loadrunner入門》、《軟體自動化測試框架設計與實踐》等《性能測試從零開始:LoadRunner入門與提升》
目錄
第1章 軟體性能測試
1.1 什麼是軟體的性能
1.1.1 軟體
1.1.2 軟體性能的產生
1.1.3 功能與性能的關係
1.1.4 用戶眼裡的軟體性能
1.1.5 軟體人員眼裡的軟體性能
1.2 軟體性能測試
1.2.1 性能測試在軟體測試的周期位置
1.2.2 性能測試策略揭秘
1.3 如何做性能測試
1.3.1 goal(定義目標)
1.3.2 analysis(分析)
1.3.3 metrics(度量)
1.3.4 execution(執行)
1.3.5 adjust(調整)
1.4 性能測試工具的評估和選擇
1.4.1 測試預算vs工具價格
1.4.2 協定、開發技術、平台、中間件vs工具的支持
1.4.3 工具可使用的複雜程度vs項目計畫的影響
.第2章 第一次親密接觸loadrunner
2.1 從性能測試到loadrunner的映射
2.2 loadrunner工作原理
2.3 安裝loadrunner
2.4 揭開license的神秘面紗
第3章 走近loadrunner
3.1 loadrunner的運行原理
3.1.1 loadrunner三大高手
3.1.2 三大高手聯手的一場性能測試盛大演出
3.2 loadrunner的錄製原理
3.2.1
網路協定與loadrunner的vuser
3.2.2 選擇loadrunner protocol的兩大定律
3.2.3 loadrunner錄製技術
第4章 loadrunner腳本語言基礎
4.1 c語言與loadrunner腳本
4.1.1 看不見的main
4.1.2 全局變數與局部變數
4.1.3 在loadrunner腳本里靈活使用c語言
4.1.4 高級——用戶自定義函式
4.2 通用vu函式
4.2.1 事務和事務控制函式
4.2.2 命令行分析函式
4.2.3 系統信息函式
4.2.4 字元串函式
4.2.5 訊息函式
4.2.6 運行時(run-time)函式
4.3 協定相關函式
4.3.1 http協定原理
4.3.2 http在loadrunner的實現
第5章 vu——用戶行為的模擬器
5.1 序:圖靈試驗與loadrunner vu模擬奧秘
5.1.2 loadrunner模擬揭秘
5.2 錄製腳本
5.2.1 選擇協定
5.2.2 規劃腳本結構
5.2.3 http vuser中的url mode和html mode
5.2.4 查看日誌
5.3 回放腳本
5.4 關聯
5.4.1 錄製前correlation(關聯)
5.4.2 錄製後關聯
5.4.3 手動關聯
5.5 腳本視圖和樹視圖
5.5.1 樹視圖(tree view)
5.5.2 腳本視圖(script view)
5.5.3 理解snapshot
5.6 事務、同步點和思考時間
5.6.1 transaction(事務)
5.6.2 rendezvous point(同步點)
5.6.3 注釋
5.6.4 think time(思考時間)
5.7 數據驅動——參數化(parameters)
5.7.1 為什麼需要參數化
5.7.2 參數的創建
5.7.3 定義參數的屬性
5.7.4 高級——從已存在的資料庫中導入參數數據
5.8 檢查點(check point)
5.8.1 序:為什麼需要檢查點
5.8.2 檢查點實施之一:contentcheck定義
5.8.3 檢查點實施之二:檢查函式
5.8.4 檢查點設定技巧
5.9 高級——多action
5.10 高級——腳本錯誤處理機制
5.11 高級——腳本調試技巧
5.11.1 動態運行(animated run)與非動態運行(non-animated run)
5.11.2 日誌設定
5.12 高級——編寫腳本的最佳實踐
5.13 vu腳本運行成功後
第6章 controller——性能測試的指揮中心
6.1 得到細化後的性能需求
6.2 設計性能測試場景
6.2.1 創建手工場景
6.2.2 百分比模式創建手工場景
6.2.3 創建面向目標場景
6.2.4 多ip的實現原理以及模擬
6.3 運行場景
6.3.1 場景控制
6.3.2 執行期間查看場景
6.3.3 監視場景
6.3.4 高級——用戶自定義數據採集點
6.3.5 附:主要的計數器
6.3.6 實例:分析實時監視圖表
6.4 場景運行後
第7章 analysis——尋找系統瓶頸的得力助手
7.1 analysis報告概要(summary)
7.1.1 概要部分
7.1.2 統計部分
7.1.3 事務統計
7.1.4 http回響統計
7.2 analysis標準圖
7.2.1 vuser圖
7.2.2 事務圖
7.2.3 網頁細分圖
7.3 交叉結果和合併圖
7.3.1 疊加
7.3.2 平鋪
7.3.3 關聯
7.4 生成測試報告
7.4.1 創建html格式報告
7.4.2 創建word格式報告
7.4.3 高級——數據點報告
第8章 欲善其事先利其器——vu腳本開發實戰
8.1 郵件服務smtp/imap協定介紹
8.1.1 電子郵件的工作原理
8.1.3 pop3協定介紹
8.1.4 imap協定介紹
8.2 vu的smtp vuser對smtp協定的封裝及實現
8.2.1 使用smtp vuser錄製outlook 2003傳送郵件
8.2.2 對smtp vuser錄製生成的腳本進行分析
8.2.3 回放smtp vuser腳本並分析網路日誌
8.3 vu java vuser自開發smtp程式
8.3.1 vu創建java模板虛擬用戶
8.3.2 設定java環境
8.3.3 在java vuser中開發smtp傳送mail腳本
8.3.4 參數化增強腳本
第9章 學以致用——一步一步做web系統性能測試
9.1 軟體系統背景及架構設計介紹
9.2 性能要求和性能指標分析(goal階段)
9.2.1 性能指標
9.2.2 業務模型分析和需求細化
9.3 性能測試方案和用例設計(analysis階段)
9.4 性能測試各種度量的建立(metrics階段)
9.4.1 性能腳本的生成
9.4.2 定義用戶行為
9.4.3 場景的設定與運行
9.4.4 計數器的設定與性能數據收集
9.5 運行場景,得到測試結果和相關數據(execution階段)
9.5.1 腳本的開發
9.5.2 數據的生成
9.5.3 並發登錄測試
9.5.4 負載測試
9.6 分析測試瓶頸(adjust階段)
9.6.1 並發測試結果分析
9.6.2 交易流程測試結果分析及性能評價
9.6.3 查詢流程測試結果分析
第10章 循序漸進——進階loadrunner高手
10.1 性能測試用例的設計策略
10.1.1 “普遍撒網,重點查看”的原則
10.1.2 保證數據的有效性
10.2 loadrunner高級功能的使用——web click vuser
10.2.1 web click vuser的產生背景
10.2.2 web click vuser與傳統vuser的差別
10.2.3 使用web click vuser
附錄a 有關loadrunner常見問題解答
前言
本書的編寫背景.
LoadRunner是一個內涵豐富、功能強大的性能測試工具,這是許多專業人士選擇它的原因。初學者面對許多的性能測試概念和LoadRunner專業術語,常常感到無所適從,這是因為LoadRunner作為軟體性能測試的實現者,涉及了軟體測試及軟體體系架構眾多方面的知識。可以說,學習LoadRunner是理解和學習軟體性能測試的非常好的切入點。
本書既有深厚的性能測試理論的系統完整性,又有非常現實的實踐指導意義。所以此書既可作為剛進入性能測試領域的測試工程師的入門參考書籍;對已經有一定工作經驗的朋友來說,也是一本整理思路、融會貫通的總結筆記。
本書的特色:讓複雜變成簡單,讓簡單成為行動
本書的風格為思路清晰,通俗易懂,形象生動,其目的是能讓讀者迅速理解如下概念。
1.什麼是軟體性能測試
一場龐大的性能測試演出正在進行,這裡沒有矚目的男女主角,都是成千上萬涌動的民眾演員(並發用戶);沒有華麗絢爛的劇本,只有細緻縝密的情節安排(性能測試場景);演至跌宕迴腸之處無人喝彩,落幕又意味著新一場演出的開幕(分析調優)。這不是一出夢幻浪漫的詠嘆調,更像是一場對百姓平凡生活的寫實劇。
只是,這場寫實劇還缺少一個最重要的靈魂角色——總導演,那么,你準備好了嗎?
2.什麼是LoadRunner
性能測試的龐大演出要能夠順利完成,需要眾多的資源,有經驗豐富的演員(圖靈考驗),能夠處亂不驚(食客問題),要有逼真的道具(IP虛擬欺騙),要有寬大的舞台(負載生成器),最重要的還要保持團隊精神和良好的組織紀律(場景創建和監控),並且善於總結和改進(anaylysis分析器)。
以上括弧內的解決方案均由LoadRunner廠商提供友情贊助。
3.本書的思路地圖
性能測試中需要明確的問題 本書的答案
軟體的性能測試對於你意味著什麼 用戶眼裡的性能(第1章)
開發人員眼裡的性能(第1章)
測試人員眼裡的性能(第1章)..
性能測試策略揭秘(第1章)
怎樣迅速有效地規劃和開展一個性能測試 性能測試最佳實踐(GAMEA模型)(第1章)
善其事利其器——工具的選擇(第1章)
為什麼是LoadRunner 性能測試到LoadRunner的映射(第2章)
內容簡介
LoadRunner是一個內涵豐富、功能強大的性能測試工具,這是許多專業人士選擇它的原因。初學者面對許多的性能測試概念和LoadRunner專業術語,常常感到無所適從,這是因為LoadRunner作為軟體性能測試的實現者,涉及了軟體測試及軟體體系架構眾多方面的知識。可以說,學習LoadRunner是理解和學習軟體性能測試的非常好的切入點。
《軟體自動化測試框架設計與實踐》
目錄
第一篇 初級篇——認識自動化測試框架.
第1章 將降大任——自動化測試 1
1.1 軟體測試面臨的困境與迷局 2
1.1.1 軟體質量困境 2
1.1.2 軟體成本困境 6
1.2 “時勢造英雄”——軟體測試自動化的異軍突起 8
1.2.1 軟體自動化測試如何代替手工測試 8
1.2.2 推動軟體自動化測試的源動力 12
第2章 “神話”破滅——自動化測試能否擔當大任 16
2.1 企業自動化測試實施的情景 17
2.1.1 自動化測試實施背景介紹 17
2.1.2 自動化測試實施場景回放 17
2.2 自動化測試的“神話”破滅 20
2.2.1 昂貴的自動化測試實施成本 20
2.2.2 實際上並不強大的自動化測試腳本 21
2.2.3 自動化測試實施的命門:維護成本 22
第3章 成功之道——如何構建高質量的自動化測試 24
3.1 peral模型的實施背景 25
3.2 purpose:如何建立一個務實明確的自動化測試目標 25
3.2.1 問題1:自動化還是手工測試 26
.3.2.2 問題2:如何估算分析自動化測試效益 26
3.2.3 問題3:如何構建高收益成本比自動化測試目標 29
3.3 evaluation:評估和估算的量化決策指南 37
3.3.1 工具選擇定律一:測試界面決定工具類族 38
3.3.2 工具選擇定律二:測試項目綜合特徵確定工具套用方案 41
3.3.3 工具選擇實際案例分析 44
3.3.4 總結 47
3.4 architecture:構建和設計自動化測試 48
3.4.1 自動化測試的最終用戶是測試工程師 48
3.4.2 自動化測試的實質是開發一個測試軟體 49
3.5 run and debug:開發調試 49
3.5.1 高內聚和低耦合的模組實現原則 49
3.5.2 數據驅動原則 53
3.5.3 自動化腳本開發質量優先權 56
3.6 link with manual test:自動化測試與手工測試的有效整合 57
3.6.1 自動化測試和手工測試的關係 58
3.6.2 自動化測試與手工測試流程整合 59
3.7 pearl模型實施成功經驗 60
3.7.1 重置目標,長遠規劃 60
3.7.2 強大的自動化測試框架 61
3.8 總結 62
第4章 組織實施——怎樣建立與培養自動化測試團隊 63
4.1 測試團隊簡介 64
4.2 明確自動化測試目標 64
4.2.1 好的目標是自動化測試實施的發動機 64
4.2.2 建立一個高收益並可行的自動化測試實施目標 65
4.3 積極有效的溝通技巧 70
4.3.1 勤匯報,多交流 72
4.3.2 實用為先 74
4.4 培養和建立自動化測試團隊 75
4.4.1 手工測試團隊的規劃 76
4.4.2 自動化測試實施中的團隊 78
4.4.3 自動化測試實施後的團隊 80
4.5 自動化測試技術儲備 81
第二篇 中級篇——自動化測試框架基本原理及實現
第5章 廬山真面目——自動化測試框架 82
5.1 自動化測試框架簡介 83
5.2 測試的自動化——以工具為中心 83
5.3 百家爭鳴——形形色色的自動化測試框架 85
5.3.1 數據驅動測試框架(the data-driven testing framework) 85
5.3.2 關鍵字驅動或表驅動測試框架(the keyword-driven or table-driven testing framework) 89
5.3.3 總結 90
5.4 自動化的測試——測試框架原型 91
5.4.1 框架包括的具體技術 91
5.4.2 框架的用戶 92
5.4.3 制定和開發框架.. 93
5.5 測試框架集大成者——無需人工干預的自動化回歸測試 93
第6章 實例研究——單元自動化測試框架解決方案 95
6.1 被測對象介紹 96
6.1.1 背景簡介 96
6.1.2 單元測試對象urlencoder. encode函式介紹 97
6.1.3 對urlencoder.encode的單元測試案例設計 98
6.2 自動化測試框架逐步實施 100
6.2.1 第一步:單元測試自動化 100
6.2.2 第二步:框架——數據驅動 101
6.2.3 第三步:框架——整合開發測試流程 104
6.2.4 第四步:框架(高級)——定義自動化測試管理策略和規範 107
6.3 單元自動化測試框架實施總結 108
第7章 實例研究——基於ui功能的自動化測試框架解決方案 109
7.1 gui的軟體自動化測試原理與技術基礎 110
7.1.1 gui軟體測試簡介 110
7.1.2 gui自動化測試原理與實例演示 114
7.1.3 在構建自動化測試框架時的工具因素 124
7.2 基於qtp的功能自動化測試框架原型的搭建 125
7.2.1 qtp工具簡介 125
7.2.2 自動化測試框架預期功能目標 126
7.2.3 自動化測試框架的實現 127
第三篇 高級篇——自動化測試框架案例實戰
第8章 自動化測試框架實例——automation center(ac) 142
8.1 產品測試案例分析 143
8.1.1 被測軟體產品介紹——某大型分散式企業協同組件介紹 143
8.1.2 軟體產品測試需求分析 144
8.1.3 測試需求矩陣分析 146
8.1.4 全球化測試需求分析 149
8.2 測試中套用ac的效益分析 153
8.2.1 預期成本計算 154
8.2.2 預期收益計算 154
8.2.3 預期收益比 155
8.2.4 ac實施過程規劃 155
8.3 ac框架中腳本開發規範 156
8.3.1 自動化測試中的規範 156
8.3.2 規範應該考慮的因素 157
8.3.3 有效地推行自動化測試規範 159
8.3.4 ac中qtp腳本規範實例 159
8.4 ac框架測試報告格式及規範 163
8.4.1 總覽報告 163
8.4.2 細分報告 164
8.4.3 ac測試報告總結 169
8.5 ac框架中客戶端自動化測試解決方案 171
8.5.1 ac中qtp agent介紹 171
8.5.2 “一次編碼,多語言運行”的qtp腳本開發思想及實現 172
8.5.3 ac中qtp agent在企業內部環境的部署 178
8.5.4 ac中qtp agent收益 183
8.6 ac中安裝自動化解決方案 185
8.6.1 windows下軟體安裝:默認式安裝與互動式安裝 185
8.6.2 linux下軟體安裝:文本模式與圖形化模式 192
8.7 ac中自動化管理與控制平台 199
8.7.1 ac拓撲結構設計 199
8.7.2 ac的工作協作圖 202
8.7.3 ac工作流程圖 203
8.8 ac套用經驗 205
8.8.1 明確而務實的需求 205
8.8.2 有效的人員培訓 205
8.8.3 敏捷高效的反饋機制 206
8.9 ac開發技術實例 206
8.9.1 基於事務(transaction)機制的測試案例狀態棧的實現 206
8.9.2 測試案例狀態輪詢java實現 207
8.9.3 ac與agent協定原語 208
第9章 開發高質量測試腳本 210
9.1 案例1:腳本開始處首先進行環境檢查 211
9.2 案例2:函式入口檢查 213
9.3 案例3:使用正則表達式處理字元串 214
9.4 案例4:腳本健壯性出錯處理 219
9.5 案例5:測試腳本中參數變數的規範命名 222
9.6 案例6:記憶體的利用和回收 225
9.7 案例7:數據驅動 228
附錄 與自動化測試實施人員的對話實錄 ...232
前言
自動化測試是當今軟體測試行業一個很受關注的方向。目前,業界實施比較成熟的是性能測試自動化。在系統測試自動化方面,包括UI測試自動化、單元測試自動化等領域,雖然可以用強大的第三方測試工具作為解決方案,如QTP、WinRunner、Selenium等,但在具體實踐中,企業依靠某個工具很難成功實施測試自動化。究其原因,一是,理論上利用測試工具進行自動化測試可以替代部分工作,但在實踐過程中並不能完整地解決測試質量與效率、投入與產出等一系列現實因素之間存在的矛盾。從這個角度來說,測試工具提供的測試技術只是自動化測試實施的一部分。二是,測試人員開發了一堆自動化測試腳本若沒有具體的框架來規定實施和執行的原則,也會無用武之地,這就像造車一樣,只具備了零件等元素但缺少整體的造車圖紙來指導使用它們也難以造出整車。因此,現實的測試實踐中,我們需要一個完整而務實的自動化測試解決方案——測試框架,以便真正地實現高效、高質量的軟體自動化測試。.
測試框架(Test Framework)作為實現高效率、高質量自動化測試的完整解決方案,從誕生之日開始,越來越多的軟體組織和個人用自己的邏輯去詮釋測試框架,所以,我們聽到了種種說法,一套測試管理系統被稱之為測試框架,一個測試工具被冠以關鍵字驅動框架之名,甚至,一段程式也被聲稱其實現了數據驅動的框架。測試框架猶如盲人摸象中的那頭大象一樣,有人說它是一個軟體,只不過它的功能是測試另外一個軟體,有人認為它是一套流程和規範,否則怎稱框架。
本書的作者看來,所謂“測試眶架”這個概念只是一個封裝了很多東西的盒子,這個盒子的外觀和形狀對我們來說無關緊要,我們最關心的是這個盒子裡面到底存放了什麼東西,否則就成了“買櫝還珠”的現代版。因此,本書旨在幫助讀者打測試框架這個盒子,把裡面的“寶貝”呈現給讀者。相信讀者讀了本書之後,不會再追問測試框架到底是什麼,而會更關心怎樣構建一個高效務實的自動化測試解決方案。
本書從自動化測試思想、技術和實施操作等層面進行了深入分析,全面講解了如何針對企業或項目需求,並以量體裁衣的方式來設計完成自動化測試框架,從而為自動化測試實施的企業和個人提供實戰指南。具體內容包括自動化測試實施風險因素分析、PEARL過程模型建立、自動化測試團隊的培養和規劃、自動化框架設計思想、自動化測試技術儲備、自動化測試工具的有效評估、高質量程式/腳本編程技巧與原則等。另外,本書並不停留在框架理論層面,在第8章介紹了框架實例分析——Automation Center(AC),這些都能對從事自動化測試的讀者有很強的現實借鑑意義。
本書特色
本書全面闡述了集測試人員組織、流程管理、開發技術於一體的自動化測試框架的主要知識,並通過大量實例貫穿每個知識點,對於開發框架的核心知識反覆強調和套用,真正做到了學用結合地引導讀者掌握自動化測試框架開發的技術,是軟體測試業界第一本有關自動化測試框架開發的實戰技術書籍。
誰適合閱讀本書
本書面向有一定自動化開發經驗的讀者,通過本書的學習,可以迅速掌握如何根據實際測試需求,設計和實現自動化測試框架。對於剛入門自動化測試的讀者也可通過本書的學習,樹立正確的自動化測試思想,找到測試實戰的捷徑,儘快融入實戰角色。..
本書特別適合以下類型的讀者:
·希望學習軟體測試框架知識的初級、中級、高級測試人員:
·希望解決套用測試框架過程中遇到問題的設計、執行、分析等相關人員;
·測試組長、測試經理、質量保證工程師、軟體過程改進人員。
閱讀建議
本書按照循序漸進的思路安排內容,無論讀者是有經驗的軟體測試人員、開發人員、系統管理人員還是剛參加工作的測試人員,建議最好按照目錄順序進行閱讀。因為全書是按照概念解析、實踐套用、問題解答的順序來編寫的,不僅僅在實踐和問題解答部分提供了很多真實、詳細的案例,在進行概念解析的同時也提供了很多非常重要的經驗,這對於讀者深入理解相關概念和少走彎路都是不無裨益的。當然,對於自動化測試經驗相對豐富的讀者也可以依據自己的需要,選擇關心的內容進行針對性的閱讀。
本書作者
本書編著柳勝,計算機套用碩士,擁有多年的軟體開發和測試實踐經驗。尤其擅長在自動化測試工具套用、性能測試和單元測試等方面的工作。曾在摩托羅拉等大型外企擔任高級開發工程師、高級自動化測試工程師等職務。
本書編委
張海波、魏岩岩、王偉慶、趙子如、馬志強、王智群、鄭金鑫、李東方、王冰、王穎、於迪、厲敏、劉桂梅、厲德仁、田月琴等。