溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux測試資源代理的方法有哪些

發(fā)布時(shí)間:2022-01-05 09:29:40 來源:億速云 閱讀:188 作者:iii 欄目:大數(shù)據(jù)

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

10 測試資源代理

這一章討論資源代理的自動(dòng)測試。測試是開發(fā)的非常關(guān)鍵的問題,對開發(fā)新的資源代理和修改已經(jīng)有的資源代理都很重要。

10.1 用ocf_tester測試

資源代理倉庫(包括所有的資源代理包)都有一個(gè)應(yīng)用程序叫ocf_tester.這個(gè)腳本可以方便地用來測試你的資源代理。

ocf_tester 通常以root用戶調(diào)用,像這樣:

1

ocf-tester -n <name> [-o  <param>=  <value> ... ] <resource agent>

  • 是任意的資源名字

  • 你可以通過 -o 選項(xiàng)設(shè)置任何你想設(shè)置的參數(shù) =

  • 是你資源代理的完整路徑

調(diào)用時(shí),ocf-tester執(zhí)行所有強(qiáng)制的操作(見第五章資源代理行為)

也可以測試可選的操作??蛇x操作必須符合其聲明的行為,如果沒有實(shí)現(xiàn),ocf-tester會(huì)標(biāo)一個(gè)錯(cuò)誤標(biāo)記。

重要:

ocf-tester不支持操作的“干運(yùn)行”,也不產(chǎn)生任何的資源仿制品。其運(yùn)行都是和實(shí)際的資源代理一樣,不論其是否打開和關(guān)閉了數(shù)據(jù)庫,掛載了文件系統(tǒng),啟動(dòng)或停止了虛擬機(jī)等等。所以,一定要小心。

比如,你可以運(yùn)行對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可以自動(dòng)生成復(fù)雜的測試環(huán)境,包括包的安裝和任意的shell腳本。

10.2.1 ocft 組件

ocft包含如下組件:

  • 一個(gè)測試用例產(chǎn)生器(/usr/sbin/ocf) --- 從測試用例配置文件產(chǎn)生shell腳本

  • 配置文件(/usr/share/resource-agents/ocft/configs)--- 一個(gè)配置文件包含環(huán)境變量設(shè)置和一個(gè)資源代理的配置文件

  • 測試腳本保存在/var/lib/resource-agents/ocft/cases/,但是通常不需要去管它們

10.2.2 定制測試環(huán)境

ocft修改資源代理的運(yùn)行時(shí)環(huán)境,或則是通過改變環(huán)境變量(使用OCF定義的接口)或者運(yùn)行ad-hoc shell腳本,這種腳本可以改變權(quán)限或者卸載一個(gè)文件系統(tǒng)。

10.2.3 如何測試

你必須了解你要測試的軟件,畫一個(gè)所有感興趣的運(yùn)行場景的草圖,標(biāo)出所有期望和不期望的條件和資源代理應(yīng)該出現(xiàn)的運(yùn)行結(jié)果。然后,你需要將這些條件和期望運(yùn)行結(jié)果編碼成ocft的測試用列。這樣運(yùn)行ocft就簡單了:

1

2

# ocft make <RA>

# ocft test <RA>

頭一個(gè)命令產(chǎn)生測試用例腳本,第二個(gè)命令運(yùn)行產(chǎn)生的腳本并檢查輸出。

10.2.4 ocf配置文件語法

有4個(gè)一級(jí)選型,每個(gè)一級(jí)選項(xiàng)下面有一個(gè)或多個(gè)子選項(xiàng)

CONFIG(一級(jí)選項(xiàng))

這個(gè)選項(xiàng)是全局的,而且影響每一個(gè)測試用例;

  • AgentRoot (子選項(xiàng))

1

AgentRoot /usr/lib/ocf/resource.d/xxx

正常情況下,我們假設(shè)資源代理腳本存在于heartbeat提供者的目錄。使用AgentRoot來測試代理是否分布于另外的目錄。

  • InstallPackage (子選項(xiàng))

1

InstallPackage package [package2 [...]]

測試需要用到的包,如果包已經(jīng)安裝了,則不再安裝。

  • HangTimeout(子選項(xiàng))

1

HangTimeout secs

運(yùn)行資源代理操作最大的執(zhí)行時(shí)間,如果超過這個(gè)時(shí)間,操作視為失效。

SETUP-AGENT(一級(jí)選項(xiàng))

1

2

SETUP-AGENT

 bash commands

如果資源代理在測試前需要初始化,可以在這里放置bash代碼。初始化只完成一次。如果需要再次執(zhí)行初始化,可以刪除/tmp/.[AGENT_NAME]_set標(biāo)記文件。

CASE (一級(jí)選項(xiàng))

1

CASE "description"

這是測試套件的主要構(gòu)建塊。每個(gè)測試用列都可以在一個(gè)CASE選項(xiàng)中描述。一個(gè)用例由跟著RunAgent子選項(xiàng)的若個(gè)子選項(xiàng)組成。

  • Var (子選項(xiàng))

1

Var VARIABLE=value

這是為資源代理設(shè)置環(huán)境變量。通常顯示為OCF_RESKEY_xxx,注意賦值符號(hào)“=”左右都沒有空格。

  • Unvar (子選項(xiàng))

1

Unvar VARIABLE [VARIABLE2 [...]]

移除一個(gè)環(huán)境變量

  • Include (子選項(xiàng))

1

Include macro_name

包含宏 macro_name。參考下文CASE-BLOCK。

  • Bash (子選項(xiàng))

1

Bash bash_codes

這個(gè)選項(xiàng)設(shè)置操作系統(tǒng)環(huán)境變量,你可以插入BASH代碼來定制系統(tǒng)環(huán)境。注意不要導(dǎo)致一些不可恢復(fù)的結(jié)果。

  • BashAtExit (子選項(xiàng))

1

BashAtExit bash_codes

這個(gè)選項(xiàng)恢復(fù)操作系統(tǒng)環(huán)境,這樣可以正確運(yùn)行新的測試用例。當(dāng)然也可以直接使用Bash選項(xiàng)來恢復(fù)。然而,如果進(jìn)程發(fā)生錯(cuò)誤,腳本講不運(yùn)行恢復(fù)的代碼直接退出,這種情況下,應(yīng)該使用BashAtExit,可以在退出前恢復(fù)系統(tǒng)環(huán)境。

  • RunAgent (子選項(xiàng))

1

RunAgent cmd [ret_value]

這個(gè)選項(xiàng)運(yùn)行資源代理?!癱md” 是資源代理的參數(shù),比如"start,status,stop..."。第二個(gè)參數(shù)是可選的??捎脕肀容^腳本運(yùn)行結(jié)果的返回值和期望值。如果不同,應(yīng)該可以找到一些bug。

也可以不是本地執(zhí)行而是遠(yuǎn)程執(zhí)行。使用的協(xié)議是ssh,程序在后臺(tái)運(yùn)行。只需要增加在子選項(xiàng)后面加上@就可以了。如下:

1

Bash@192.168.1.100 date

上面的例子會(huì)運(yùn)行date程序。遠(yuǎn)程命令都是在后臺(tái)運(yùn)行的。

NB:這些還需要有多謝說明(這個(gè)話是說給編寫者的:譯者注)

CASE-BLOCK (一級(jí)選項(xiàng))

CASE-BLOCK選項(xiàng)定義可以被包含在CASE中的宏。所有CASE的子選項(xiàng)都可以使用。

到此,關(guān)于“Linux測試資源代理的方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI