而SilkTest呢,就是單一的腳本文件,我即使不開工具也可以直接修改。簡單即美,難道不是么?
(五)異常捕獲、場景恢復
QTP的場景設計也很復雜,又是獨立于腳本(腳本里看不到),在腳本外進行配置(類似resource),需要開發者思路很清晰的規劃它可能在什么地方出現什么錯誤、怎么處理,最糟糕的是可讀性極差,假如你在場景里面還有Function Call還得再配一個外部qfl或vbs文件,而如果引發了迭代還要在另一個Settings中做迭代設置,否則你場景恢復的時候可能莫名其妙的調起了好幾遍自己的應用。一句話,真的很坑爹,不是一般的高手搞不定它。
而SilkTest呢,自己編程實現,開箱即用,真正的 7*24小時支持。
(六)插件支持(Add-ins)
QTP每個編程語言都需要一個插件,通過插件來識別對象。而有時候這種插件加載顯得很不靈活,比如你勾選插件進去以后居然沒法再添加,這什么易用性啊?
而SilkTest呢,不需要安裝這個那個插件。一句話:哪兒那么多麻煩啊。
(七)Web 2.0支持
QTP對于 Web 2.0 的支持,我連寫的欲望都沒有,因為實在太差了! 什么Ajax/DHTML,什么Flex,全部都不認(或者干脆整個窗口認為ActiveX),……你真的想用是吧,好,激活object,通過native object調用HTML DOM對象。那么這樣一來就很強大了嗎?NO,NO,NO,穿上了鋼鐵俠盔甲的QTP頂多跟 Selenium RC(也就是Selenium 1.0)打個平手,因為原理都是通過 JavaScript注入HTML DOM來實現的(一樣的可以采用innerHTML賦值,可以RunScript),跟WebDriver(Selenium 2.0)就沒法比了。
可以說,QTP曾幾何時打敗 WinRunner的 關鍵就是Web 1.0 的支持超強,可如今死在了自己的最強絕學上。這也是為什么后來給了 Selenium 以可趁之機的地方!
但是 Selenium 的強項在于純HTML/JS應用,對于 Flex基本無能為力。
而反觀 SilkTest,全面支持 Ajax/DHTML,Flex/Adobe Air,全面支持 .Net 4.0,即使 Adobe公司自己也是選擇SilkTest作為它的自動化測試工具哦!
(八)參數化、數據驅動
QTP號稱自己采用 Keyword-Driven,一種在Data-Driven基礎上派生的更高級的擴展驅動理念,而事實上是QTP 直接把數據驅動的框架內嵌在自己的DataTable上,以 DataTable Object的內核結合Action迭代驅動腳本運行。這意味著號稱自己是共產主義社會,但其實在封建主義社會。這么說已經很客氣了,事實上 DataTable并不好用,在實際項目中應用不多,一般往往采用外部文件(文本、csv/excel格式、數據庫、XML)做配置,擴展性比 DataTable好多了。
而且坑爹的是,我還要爆料一下,QTP從誕生到現在,DataTable對象的SetNextRow 一直都有指針重置的Bug,我一般都推薦用SetCurrentRow。
而SilkTest呢,有自己的Data Driven向導,直接操作、快速完成,還支持直接從數據庫里面查詢測試數據。是不是很霸氣側漏呢?!
(九)平臺支持
QTP只能運行在 Windows上,而且對于不同Windows的兼容也有問題,比如我幾年前提及的OCR識別驗證碼技術,現在已經沒落了。
而SilkTest呢,通過SilkBean支持 Java的應用,可以在Linux平臺上回放哦!
(十)分布式、云計算
QTP本身帶有Remote Agent,可以遠程調度,但是它的商業意圖過度明顯,因為這個遠程調用是通過Quality Center/ALM來完成的,哥們你知道意味著什么嗎?意味著你要去迪拜旅游得自己買個直升機,我擦。。。
Selenium 有 Grid,而SilkTest原生支持,它通過Runtime&Agent技術實現。都明顯強過QTP!
(十一)對象庫、對象存儲
QTP可以說是成也對象庫,敗也對象庫。QTP用單獨的文件存儲對象庫,本地對象庫放在ObjectRepository.bdb文件里,共享對象庫放在 XXXX.tsr 文件里。管理起來很復雜,有些人看我介紹過高階的對象庫管理,一致都表示很暈。因為對象庫的比較、合并、參數化全部都得額外的對象庫管理器里去實現,而且實現參數化還要做映射,弄完之后滿身的汗。。。
而SilkTest呢,可以直接通過編輯器編輯,是不是灰常的爽?!
(十二)采購成本、ROI
得說“ROI(投資回報率)”的問題了。
QTP以前根據插件收費,后來整合起來銷售,美其名曰打包贈送。等于你就是先買個鐵釘,人家賣你一套家具讓你自己拔出來。
SilkTest不一樣,提供了 RunTime的 License模式,降低了采購成本,什么意思呢,就是你買的時候可以分的,看你是編寫腳本,還是只是運行腳本,等于說你買個套餐,居然還可以單點套餐里的東西——靠,這還叫套餐嗎?沒見過這么好的銷售啊,哈哈。
原文轉自:http://www.uml.org.cn/Test/201405212.asp