利用 STAF 实现程序更新包的自动部署测试
作者:网络转载 发布时间:[ 2014/1/2 11:17:50 ] 推荐标签:测试 软件测试 自动化
代码 8:编译源码的 STAX 脚本
<stafcmd>
<location>'buildserver'</location>
<service>'process'</service>
<request>'start command "/root/build/build.sh" username "root" password "password"
workdir "/root/build" wait stdout /root/build/build.log'</request>
</stafcmd>
代码 8 指定以用户 root 的身份来运行编译脚本 build.sh,并且将输出重定向到文件 build.log 中,以便分析编译运行的过程和结果。另外如果编译脚本 build.sh 用到某些和路径相关的命令,比如相对路径,则需要指定工作目录。 workdir 指定工作目录为 build.sh 所在的目录,这相当于在 /root/build 目录中运行 build.sh 命令。
3.4 部署测试
更新包编译完成后,需要将编译之后的更新包分发到部署服务器和测试服务器,然后部署服务器部署程序,测试服务器调用测试程序来测试更新包。将更新包分发到部署和测试服务器的 STAX 脚本如代码 9 所示。
代码 9:更新包分发
<script> serverList = ['deployServer', 'testServer'] </script>
<iterate var = "server" in="serverList">
<testcase name = "'buildCopy'">
<if expr="server != 'deployServer'">
<stafcmd>
<location>'buildserver'</location>
<service>'fs'</service>
<request>'copy DIRECTORY /root/build/result TODIRECTORY /root/build/result
TOMACHINE %s RECURSE KEEPEMPTYDIRECTORIES' % server </request>
</stafcmd>
<else>
<stafcmd>
<location>'buildserver'</location>
<service>'fs'</service>
<request>'copy DIRECTORY /root/build/result TODIRECTORY C:/build/result
TOMACHINE %s RECURSE KEEPEMPTYDIRECTORIES' % server </request>
</stafcmd>
</else>
</if>
</testcase>
</iterate>
代码9使用了判断语句来判断目标机器的平台,根据目标机器的平台选择不同的文件路径。当只有两台机器时,使用 if-else 的好处并不明显,甚至还不如分别向 windows 和 linux 机器上单独拷贝方便。 但考虑如下的情况,环境中有大量的部署服务器和测试服务器,这时一台一台的拷贝显然很难维护,而使用 if-else 加上循环的方式则要方便的多。
部署测试的 STAX 脚本如代码 10 所示。
代码 10:部署测试
<sequence>
<stafcmd>
<location>'deployServer'</location>
<service>'process'</service>
<request>'start command "C:/build/deploy.bat > deploy.log" username "Administrator"
password "password" workdir "C:/build" wait '</request>
</stafcmd>
<stafcmd>
<location>'testServer'</location>
<service>'process'</service>
<request>'start command "/root/build/runtest.sh" username "root" password "password"
workdir "/root/build" wait stdout /root/build/runtest.log'</request>
</stafcmd>
</sequence>
代码 10 中在 Windows 和 Linux 平台运行命令的方式有细微的区别,在 Windows 中我们使用> deploy.log来重定向输出,而在 Linux 中我们使用 stdout 来重定向输出。具体的原因将在经验教训中说明。
至此,我们已经完成了更新包下载、分发、编译、部署和测试的整个过程,根据本节提供的示例代码,读者应该能够根据自己的环境编写出适合环境的STAX脚本。 另外,读者也可以自定义一些附加的操作,比如在更新代码之前,先把原有的代码删除;在测试完毕后,把分散于各个服务器上的日志汇总到一台集中的机器上;甚至和 CruiseControl 结合实现定时或者基于 CVS 上的代码更新来运行,以及将测试的日志发布到某台服务器上。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11