我最近開發的一個自動化迴歸測試工具 loadrunner腳本編寫經驗

  最近因工做須要,開發了一個迴歸測試的小工具。能夠根據配置讀取不一樣交易報文並進行變量替換,而後自動發起交易並檢查結果。自我感受挺好用的,與你們分享一下設計思路。(代碼要保密,就不上傳了。有須要能夠根據設計思路本身開發。這個是我以前開發時積累的當心得:https://www.cnblogs.com/kingstarer/p/10291348.html loadrunner腳本編寫經驗html

設計背景:

目前系統交易愈來愈多,需求改動也比較頻繁。爲防止代碼改動影響舊需求,每次修改代碼後都須要把相關交易迴歸測試一次。程序員

目前此項迴歸測試工做主要靠程序員手工完成,存在如下問題:數據庫

1 迴歸測試須要準備不少交易報文,耗時費力ide

2 因爲迴歸測試比較麻煩,加上版本迭代頻繁,有時只能對比較關鍵的業務場景進行迴歸測試,存在必定風險。函數

 

解決方案:

         爲避免這種狀況,項目組開發了自動化迴歸測試工具。程序員每次開發完代碼後,針對需求的業務場景配置好測試案例,由工具根據案例配置自動執行交易(須要自動生成某些交易報文字段,例如全局流水)並判斷案例是否符合要求。工具

理想狀況下,通過屢次需求迭代後,測試案例便可全面覆蓋全部交易路徑。這樣能夠節省開發人員迴歸測試時間,對於系統重大升級時保障升級質量也有幫助。post

 

測試工具使用loadrunner腳本編寫,這樣的好處是測試

1 能夠借用loadrunner提供的豐富函數庫,如http交互函數,變量替換函數,日誌輸出函數等url

2 能夠利用loadrunner的GUI界面spa

3 經過簡單修改配置,可讓本工具用於非功能壓測

 

         不方便的地方有:

1 須要電腦安裝了loadrunner工具才能夠執行測試工具

2 loadrunner提供的ide不方便調試

3 沒法引用開源靜態庫(網上只找到引用動態庫的方法)

4 因爲loadrunner內置編譯器與gcc存在部分不兼容,沒法直接複用rcc現有功能函數,暫時不能自動檢查數據庫記錄,檢查交易日誌等。

 

 

測試案例配置說明:

配置文件打#開頭的行是註釋行,腳本讀取時會忽略註釋行

每一行配置表明一個測試案例,或者一個控制語句

         測試案件通常由四個字段組成,字段用空白符分隔,第一個字段表明交易報文名稱,腳本執行時會根據報文名稱讀取對應的xml文件,並對裏面配置的變量作替換,而後組裝成rcc交易報文發往測試機器並獲取返回報文。

第二個字段是案例名稱,做用是方便測試人員理解案例用途,對於腳本無心義。

第三個字段是案例驗證方式,通常是這樣的格式:「狀態碼-錯誤碼-自定義檢查方法」,例如"00-0000000000-have(成功)",意思是指望交易返回報文狀態碼字段是00,錯誤碼字段是0000000000,返回的內容裏面包含"成功"字樣。若是有一個條件不知足,腳本會認爲案例驗證失敗,輸出日誌提醒測試人員。

第四個字段是附加動做,通常可填none表明無附加動做。附加動做須要使用的場景, 通常是案例有上下文關係時。例如要測試消費撤銷交易,須要先發起消費交易,而後發送撤銷交易請求,但此時須要用到前面消費交易的全局流水號。這個時候就須要在前面執行消費交易時使用附加動做save,指示腳本保存這次交易生成的全局事件跟蹤號,後面撤銷交易時才能夠獲取到。

        控制語句是一些輔助配置測試案例的指令,例如for指令,能夠指示腳本重複執行配置案例,適用於指望相同案例重複執行的場景,避免冗餘配置。goto/skip指令,能夠跳到/跳過指定案例執行,適合調試特定案例的場景。echo,輸出日誌/變量信息,方便案例驗證失敗後定位問題。

控制指令說明:

        

指令名稱

指令說明

適用場景

stop

退出案例測試

調試某個測試配置時能夠用,避免後面案例干擾,查日誌方便

sleep N

休眠N毫秒

暫停一會再進行下一個測試案例執行,給測試人員思考時間

skip N

跳過下面N個案例配置

新增案例配置後能夠直接執行新增的內容,不須要跑老的案例

goto label

跳到指定案例執行

新增案例配置後能夠直接執行新增的內容,不須要跑老的案例

repeat N

重複執行後面一個配置N次

交易包含static變量時,可使用此指令指定重複執行測試案例

for N/endfor

重複執行下一個endfor出現以前的配置N次,可嵌套

同上,若是須要重複執行的案例比較多可用

echo message

輸出日誌信息,message裏面可包含變量

輸出日誌信息,特別是變量值,方便調試

set var value

設置變量值,var和value均可以包含變量

設置變量值,方便後面報文使用。
  (例如要生成一個所有配置共用的隨機數字,可使用set my_rand {P_rand3})

 

自定義檢查方法說明:

 

檢查方法

說明

have()

交易返回內容包含指定關鍵字

haveno()

交易返回內容不包含指定關鍵字

true

交易返回報文狀態碼爲00

false

交易返回報文狀態碼不爲00

 

 

支持同時指定多個自定義檢查方法,用&&鏈接

 

變量說明:

爲方便配置報文,腳本預設計了許多變量,測試人員能夠直接引用。

若是有須要能夠在vugen自行添加,但切記不要修改(loadrunner修改變量的界面很是奇怪,沒有保存功能,只要瀏覽變量值時用鼠標點選不一樣值就會自動保存,要當心)

 

附加動做說明:

檢查方法

說明

save

把S_traceId保存到變量Save_S_traceId

savefile

把S_traceId保存到sn_hist_{P_vuserId}.txt

get

從S_traceId取自變量Save_S_traceId而不是從新生成

getfile

讀取sn_hist_{P_vuserId}.txt一行記錄,並從中生成S_traceId,主要用於衝正退貨

save(field_name)

從請求報文中截取field_name指定的xml字段值,保存到變量Save_field_name

相關文章
相關標籤/搜索