利用 STAF 实现程序更新包的自动部署测试
作者:网络转载 发布时间:[ 2014/1/2 11:17:50 ] 推荐标签:测试 软件测试 自动化
2.1 STAF Java 代码示例
代码2所示的是STAF Java代码示例。
代码2:STAF Java代码示例
STAFHandle handle = null;
try {
handle = new STAFHandle("Java_Sample_Test");
} catch (STAFException e) {
System.exit(1);
}
STAFResult result = handle.submit2("Linux1", "process",
"start command ls parms -l wait stdout /root/lsjava.log");
if (result.Ok != result.rc) {
System.out.println("Error starting the process ls, RC: " + result.rc);
}
result = handle.submit2("Linux1", "fs", "copy FILE /root/lsjava.log
TODIRECTORY C:/STAF TOMACHINE windows' % machineName");
if (result.Ok != result.rc) {
System.out.println("Error coping file, RC: " + result.rc);
}
在调用STAF服务之前,首先需要注册STAFHandle,所有的STAF服务调用都要通过这个句柄来进行,因此一般把这个句柄设置成静态的。通过handle.submit2()函数可以向STAF服务发送请求并且接收处理结果。
2.2 STAX脚本示例
STAX为我们简化了调用STAF服务的过程,因此我们通过STAX脚本来调用STAF服务。本节将根据一个简单的示例来简要介绍STAX脚本的语法。
代码3:STAX脚本SampleScript.xml示例
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE stax SYSTEM "stax.dtd">
3 <!-- sample1.xml - Sample of a job definition file for STAX
4 Job Description:
5 This job executes some STAF commands and sends messages to the STAX Job Monitor.
6 -->
7 <stax>
8 <script> LinuxMachine = ['Linux1', 'Linux2'] </script>
9 <defaultcall function="ListDirectory">
10 </defaultcall>
11 <function name="ListDirectory">
12 <paralleliterate var = "machineName" in="LinuxMachine">
13 <testcase name = "'listDirectory'">
14 <sequence>
15 <stafcmd>
16 <location>'%s' % machineName</location>
17 <service>'process'</service>
18 <request>'start command "ls" parms "-l" wait stdout /root/ls.log'</request>
19 </stafcmd>
20 <if expr="RC == 0">
21 <sequence>
22 <tcstatus result="'pass'"/>
23 <log message="1">'List directory successfully on %s' % machineName</log>
24 </sequence>
25 <else>
26 <sequence>
27 <tcstatus result="'fail'"/>
28 <log message="1">'Error in listing directory on %s' % machineName</log>
29 </sequence>
30 </else>
31 </if>
32 <stafcmd>
33 <location>'%s' % machineName</location>
34 <service>'fs'</service>
35 <request>'copy FILE /root/ls.log TOFILE ls%s.log TODIRECTORY C:/STAF
TOMACHINE windows' % machineName</request>
36 </stafcmd>
37 </sequence>
38 </testcase>
39 </paralleliterate>
40 </function>
41 </stax>
这个示例调用两台Linux机器上的ls命令,将结果输出到文件,根据命令返回的结果判断调用是否成功,然后复制文件到另外的STAF机器中。为了方便描述,为脚本加上行号。
STAX采用现在流行的XML语言作为其脚本语言。第一行是XML语言的标准格式,第二行表示此XML文件使用stax.dtd样式表进行验证。所有的STAX脚本文件都应该保留这两行。
相关推荐
更新发布
功能测试和接口测试的区别
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