這篇文章主要介紹“Linux測試資源代理的方法有哪些”,在日常操作中,相信很多人在Linux測試資源代理的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux測試資源代理的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的武夷山網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
10測試資源代理
這一章討論資源代理的自動測試。測試是開發(fā)的非常關鍵的問題,對開發(fā)新的資源代理和修改已經(jīng)有的資源代理都很重要。
10.1用ocf_tester測試
資源代理倉庫(包括所有的資源代理包)都有一個應用程序叫ocf_tester.這個腳本可以方便地用來測試你的資源代理。
ocf_tester 通常以root用戶調(diào)用,像這樣:
1  | ocf-tester -n <name> [-o <param>= <value> ... ] <resource agent>  | 
是任意的資源名字
你可以通過 -o 選項設置任何你想設置的參數(shù) =
是你資源代理的完整路徑
調(diào)用時,ocf-tester執(zhí)行所有強制的操作(見第五章資源代理行為)
也可以測試可選的操作。可選操作必須符合其聲明的行為,如果沒有實現(xiàn),ocf-tester會標一個錯誤標記。
重要:
ocf-tester不支持操作的“干運行”,也不產(chǎn)生任何的資源仿制品。其運行都是和實際的資源代理一樣,不論其是否打開和關閉了數(shù)據(jù)庫,掛載了文件系統(tǒng),啟動或停止了虛擬機等等。所以,一定要小心。
比如,你可以運行對foobar資源代理使用ocf-tester,如下:
1 2 3 4 5 6 7 8  | # ocf-tester -n foobartest \ -o superfrobnicate=true \ -o datadir=/tmp \ /home/johndoe/ra-dev/foobar Beginning tests for /home/johndoe/ra-dev/foobar... * Your agent does not support the notify action (optional) * Your agent does not support the reload action (optional) /home/johndoe/ra-dev/foobar passed all tests  | 
10.2用ocft測試
ocft也是一種資源代理測試工具。和ocf-tester不一樣的是,ocft可以自動生成復雜的測試環(huán)境,包括包的安裝和任意的shell腳本。
10.2.1 ocft組件
ocft包含如下組件:
一個測試用例產(chǎn)生器(/usr/sbin/ocf) --- 從測試用例配置文件產(chǎn)生shell腳本
配置文件(/usr/share/resource-agents/ocft/configs)--- 一個配置文件包含環(huán)境變量設置和一個資源代理的配置文件
測試腳本保存在/var/lib/resource-agents/ocft/cases/,但是通常不需要去管它們
10.2.2定制測試環(huán)境
ocft修改資源代理的運行時環(huán)境,或則是通過改變環(huán)境變量(使用OCF定義的接口)或者運行ad-hoc shell腳本,這種腳本可以改變權(quán)限或者卸載一個文件系統(tǒng)。
10.2.3如何測試
你必須了解你要測試的軟件,畫一個所有感興趣的運行場景的草圖,標出所有期望和不期望的條件和資源代理應該出現(xiàn)的運行結(jié)果。然后,你需要將這些條件和期望運行結(jié)果編碼成ocft的測試用列。這樣運行ocft就簡單了:
1 2  | # ocft make <RA> # ocft test <RA>  | 
頭一個命令產(chǎn)生測試用例腳本,第二個命令運行產(chǎn)生的腳本并檢查輸出。
10.2.4 ocf配置文件語法
有4個一級選型,每個一級選項下面有一個或多個子選項
CONFIG(一級選項)
這個選項是全局的,而且影響每一個測試用例;
AgentRoot(子選項)
1  | AgentRoot /usr/lib/ocf/resource.d/xxx  | 
正常情況下,我們假設資源代理腳本存在于heartbeat提供者的目錄。使用AgentRoot來測試代理是否分布于另外的目錄。
InstallPackage(子選項)
1  | InstallPackage package [package2 [...]]  | 
測試需要用到的包,如果包已經(jīng)安裝了,則不再安裝。
HangTimeout(子選項)
1  | HangTimeout secs  | 
運行資源代理操作最大的執(zhí)行時間,如果超過這個時間,操作視為失效。
SETUP-AGENT(一級選項)
1 2  | SETUP-AGENT bash commands  | 
如果資源代理在測試前需要初始化,可以在這里放置bash代碼。初始化只完成一次。如果需要再次執(zhí)行初始化,可以刪除/tmp/.[AGENT_NAME]_set標記文件。
CASE(一級選項)
1  | CASE "description"  | 
這是測試套件的主要構(gòu)建塊。每個測試用列都可以在一個CASE選項中描述。一個用例由跟著RunAgent子選項的若個子選項組成。
Var (子選項)
1  | Var VARIABLE=value  | 
這是為資源代理設置環(huán)境變量。通常顯示為OCF_RESKEY_xxx,注意賦值符號“=”左右都沒有空格。
Unvar (子選項)
1  | Unvar VARIABLE [VARIABLE2 [...]]  | 
移除一個環(huán)境變量
Include (子選項)
1  | Include macro_name  | 
包含宏 macro_name。參考下文CASE-BLOCK。
Bash (子選項)
1  | Bash bash_codes  | 
這個選項設置操作系統(tǒng)環(huán)境變量,你可以插入BASH代碼來定制系統(tǒng)環(huán)境。注意不要導致一些不可恢復的結(jié)果。
BashAtExit (子選項)
1  | BashAtExit bash_codes  | 
這個選項恢復操作系統(tǒng)環(huán)境,這樣可以正確運行新的測試用例。當然也可以直接使用Bash選項來恢復。然而,如果進程發(fā)生錯誤,腳本講不運行恢復的代碼直接退出,這種情況下,應該使用BashAtExit,可以在退出前恢復系統(tǒng)環(huán)境。
RunAgent (子選項)
1  | RunAgent cmd [ret_value]  | 
這個選項運行資源代理。“cmd” 是資源代理的參數(shù),比如"start,status,stop..."。第二個參數(shù)是可選的。可用來比較腳本運行結(jié)果的返回值和期望值。如果不同,應該可以找到一些bug。
也可以不是本地執(zhí)行而是遠程執(zhí)行。使用的協(xié)議是ssh,程序在后臺運行。只需要增加在子選項后面加上@就可以了。如下:
1  | Bash@192.168.1.100 date  | 
上面的例子會運行date程序。遠程命令都是在后臺運行的。
NB:這些還需要有多謝說明(這個話是說給編寫者的:譯者注)
CASE-BLOCK(一級選項)
CASE-BLOCK選項定義可以被包含在CASE中的宏。所有CASE的子選項都可以使用。
到此,關于“Linux測試資源代理的方法有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
                當前文章:Linux測試資源代理的方法有哪些
                
                標題路徑:http://www.yijiale78.com/article46/pehshg.html
            
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、網(wǎng)站設計、外貿(mào)建站、商城網(wǎng)站、微信公眾號、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)