温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux测试资源代理的方法有哪些

发布时间:2022-01-05 09:29:40 来源:亿速云 阅读:172 作者:iii 栏目:大数据

这篇文章主要介绍“Linux测试资源代理的方法有哪些”,在日常操作中,相信很多人在Linux测试资源代理的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux测试资源代理的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

10 测试资源代理

这一章讨论资源代理的自动测试。测试是开发的非常关键的问题,对开发新的资源代理和修改已经有的资源代理都很重要。

10.1 用ocf_tester测试

资源代理仓库(包括所有的资源代理包)都有一个应用程序叫ocf_tester.这个脚本可以方便地用来测试你的资源代理。

ocf_tester 通常以root用户调用,像这样:

1

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

  • 是任意的资源名字

  • 你可以通过 -o 选项设置任何你想设置的参数 =

  • 是你资源代理的完整路径

调用时,ocf-tester执行所有强制的操作(见第五章资源代理行为)

也可以测试可选的操作。可选操作必须符合其声明的行为,如果没有实现,ocf-tester会标一个错误标记。

重要:

ocf-tester不支持操作的“干运行”,也不产生任何的资源仿制品。其运行都是和实际的资源代理一样,不论其是否打开和关闭了数据库,挂载了文件系统,启动或停止了虚拟机等等。所以,一定要小心。

比如,你可以运行对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可以自动生成复杂的测试环境,包括包的安装和任意的shell脚本。

10.2.1 ocft 组件

ocft包含如下组件:

  • 一个测试用例产生器(/usr/sbin/ocf) --- 从测试用例配置文件产生shell脚本

  • 配置文件(/usr/share/resource-agents/ocft/configs)--- 一个配置文件包含环境变量设置和一个资源代理的配置文件

  • 测试脚本保存在/var/lib/resource-agents/ocft/cases/,但是通常不需要去管它们

10.2.2 定制测试环境

ocft修改资源代理的运行时环境,或则是通过改变环境变量(使用OCF定义的接口)或者运行ad-hoc shell脚本,这种脚本可以改变权限或者卸载一个文件系统。

10.2.3 如何测试

你必须了解你要测试的软件,画一个所有感兴趣的运行场景的草图,标出所有期望和不期望的条件和资源代理应该出现的运行结果。然后,你需要将这些条件和期望运行结果编码成ocft的测试用列。这样运行ocft就简单了:

1

2

# ocft make <RA>

# ocft test <RA>

头一个命令产生测试用例脚本,第二个命令运行产生的脚本并检查输出。

10.2.4 ocf配置文件语法

有4个一级选型,每个一级选项下面有一个或多个子选项

CONFIG(一级选项)

这个选项是全局的,而且影响每一个测试用例;

  • AgentRoot (子选项)

1

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

正常情况下,我们假设资源代理脚本存在于heartbeat提供者的目录。使用AgentRoot来测试代理是否分布于另外的目录。

  • InstallPackage (子选项)

1

InstallPackage package [package2 [...]]

测试需要用到的包,如果包已经安装了,则不再安装。

  • HangTimeout(子选项)

1

HangTimeout secs

运行资源代理操作最大的执行时间,如果超过这个时间,操作视为失效。

SETUP-AGENT(一级选项)

1

2

SETUP-AGENT

 bash commands

如果资源代理在测试前需要初始化,可以在这里放置bash代码。初始化只完成一次。如果需要再次执行初始化,可以删除/tmp/.[AGENT_NAME]_set标记文件。

CASE (一级选项)

1

CASE "description"

这是测试套件的主要构建块。每个测试用列都可以在一个CASE选项中描述。一个用例由跟着RunAgent子选项的若个子选项组成。

  • Var (子选项)

1

Var VARIABLE=value

这是为资源代理设置环境变量。通常显示为OCF_RESKEY_xxx,注意赋值符号“=”左右都没有空格。

  • Unvar (子选项)

1

Unvar VARIABLE [VARIABLE2 [...]]

移除一个环境变量

  • Include (子选项)

1

Include macro_name

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

  • Bash (子选项)

1

Bash bash_codes

这个选项设置操作系统环境变量,你可以插入BASH代码来定制系统环境。注意不要导致一些不可恢复的结果。

  • BashAtExit (子选项)

1

BashAtExit bash_codes

这个选项恢复操作系统环境,这样可以正确运行新的测试用例。当然也可以直接使用Bash选项来恢复。然而,如果进程发生错误,脚本讲不运行恢复的代码直接退出,这种情况下,应该使用BashAtExit,可以在退出前恢复系统环境。

  • RunAgent (子选项)

1

RunAgent cmd [ret_value]

这个选项运行资源代理。“cmd” 是资源代理的参数,比如"start,status,stop..."。第二个参数是可选的。可用来比较脚本运行结果的返回值和期望值。如果不同,应该可以找到一些bug。

也可以不是本地执行而是远程执行。使用的协议是ssh,程序在后台运行。只需要增加在子选项后面加上@就可以了。如下:

1

Bash@192.168.1.100 date

上面的例子会运行date程序。远程命令都是在后台运行的。

NB:这些还需要有多谢说明(这个话是说给编写者的:译者注)

CASE-BLOCK (一级选项)

CASE-BLOCK选项定义可以被包含在CASE中的宏。所有CASE的子选项都可以使用。

到此,关于“Linux测试资源代理的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI