STAX脚本编写文档.docx
- 文档编号:11663483
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:24
- 大小:166.10KB
STAX脚本编写文档.docx
《STAX脚本编写文档.docx》由会员分享,可在线阅读,更多相关《STAX脚本编写文档.docx(24页珍藏版)》请在冰豆网上搜索。
STAX脚本编写文档
STAX脚本编写
1.STAX介绍
STAF(SoftwareTestAutomationFramework)是开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。
它为自动化测试建立了基础,并且提供了一种可插拔的机制支持不同的语言平台。
STAF采用点对点的实现机制,被用来减轻自动化测试的工作负担,加快自动化测试的进程。
在STAF环境中,所有的机器都是对等的,没有客户端和服务区的区分。
STAX(SoftwareTestAutomationeXecutionEngire)是基于STAF的执行引擎。
它在STAF基础上,帮助用户实现测试用例的分发、部署、执行以及结构分析。
STAX使用了三种技术:
STAF、XML和Python。
简单来说,STAX在STAF之上提供了一些接口,方便用户来操纵STAF进行自动化测试的实现。
STAF和STAX的官方网站是:
2.XML简单教程
XML是英文Extensiblemarkuplanguage的缩写,中文意思是“可扩展标记语言”。
XML的主要功能是帮助系统信息通过互联网共享结构化的数据。
XML不是一个软件,也不是编程语言,XML只是一个标记语言的标准。
用XML标准编写的文件,我们称为XML文件。
下面是一个简单的XML文件。
编写XML必须遵循一些简单的语法规则:
(1)、每个开始标记必须有结束标记
(2)、每个XML文档只能有一个根元素
(3)、所有XML元素必须正确嵌套
(4)、属性值必须加引号
STAX脚本采用基于XML的脚本语言进行编写,这是专门为STAX测试设计的一种语言。
在STAX脚本中,根元素是
一个STAX脚本的基本格式是这样的:
xmlversion=’1.0”encoding=”UTF-8”standalone=”no”?
>
DOCTYPEstaxSYSTEM‘stax.dtd”>
脚本的头两行是固定的,主要指名我们采用的XML版本和编码规则,我们不进行详细讲解。
我们需要将自己的代码写在
XML的官方网站是http:
//www.xml.org。
参考文献1是XML的简明教程。
3.Python简单教程
Python是一种脚本语言,STAX利用Python定义变量和表达式。
变量命名规则:
(1)、变量由字母、数字和下划线组成,第一个字符必须是字母或者下划线。
(2)、变量区分大小写。
(3)、Python中的关键字不能用作STAX的变量名
(4)、STAX的保留字也不能用作变量名。
STAX的保留字包括:
RC、以”STAF’开头的单词、以”STAX”开头的单词。
这两条语句作用相同,都是将字符串CoolTest1赋值给变量testName。
这条语句的作用是将变量CoolTest1的值赋给变量testName。
如果变量CoolTest1在前面没有定义,脚本出错。
这条语句的作用是将字符串Test1赋值给变量name。
注意这里是双引号里面包含单引号。
‘:
表示单引号
“:
表示双引号
"':
表示双引号嵌套单引号
这条语句的作用是将变量testName的值赋给变量name。
由于XML中属性值必须用引号引起来,因此这里的testName不是字符串,而是变量。
这样,name的值是字符串CoolTest1。
testName=“Test1”
MachineName=“local”
我们可以用%引用一个变量的值。
上面这段脚本相当于
Python的官方网站是http:
//www.python.org/。
参考文件2是Python的简明教程。
4.STAX脚本教程
有了前面的知识,我们来正式介绍stax脚本的编写规则。
一个stax脚本的基本模板是这样的:
xmlversion=’1.0”encoding=”UTF-8”standalone=”no”?
>
DOCTYPEstaxSYSTEM“stax.dtd”>
……
……
……
脚本开头两行是关于脚本的说明,stax是脚本的根标签,除去脚本说明以外的所有标签必须包含在根标签中。
defaultcall是脚本执行时首先执行的语句。
这个标签有个属性function=”FunctionA”,表示默认执行函数FunctionA,相当于C语言中的main函数。
……
是函数FunctionA的定义,标签function表示一个函数,这个元素有一个属性name指名了函数的名字。
函数体定义在
我们看到,这个脚本中一共定义了三个函数FunctionA、FunctionB、FunctionC。
我们可以通过FunctionA去调用函数FunctionB和FunctionC。
下面是一个更加详细的例子。
?
xmlversion="1.0"encoding="UTF-8"standalone="no"?
>
DOCTYPEstaxSYSTEM"stax.dtd">
FunctionA中包含一个process元素。
process代表一个STAF进程,这个进程调用STAFPROCESS服务在指定的机器上执行指定的命令。
因此,FunctionA的作用是在本地执行命令”ls-l/”。
FunctionB中包含一个元素stafcmd。
stafcmd表示要请用一个服务。
因此,FunctionB相当于命令”staflocalmiscversion”。
Function包含一个元素log,产生日志信息。
4.1python代码
4.4.1
这条语句的作用是将字符串CoolTest1赋给变量testName。
这条语句的作用是将变量STARTResult的值赋给变量machName。
fromrandomimportrandom
r=random()
这条语句的作用是加载random模块,然后产生0-1之间的随机数。
4.2服务调用
4.2.1
作用:
为了编写STAX脚本方便,STAX定义了process标签用来调用STAF中的进程(process)服务。
返回值:
process服务调用结束后会产生以下返回值。
返回值
说明
RC
本次执行的错误码,0表示正常,非0值表示执行出错。
STAFResult
本次执行的错误信息,成功为None,不成功STAFResult中包含具体出错信息。
STAXResult
本次执行的返回信息,参见下面的例子。
子标签:
process包含以下子标签
子标签名称
属性
说明
location
required
process执行的机器。
local表示本机192.168.0.42表示在IP地址为192.168.0.42的机器上执行。
command
required
执行的命令
parms
optional
执行命令需要的参数,其他参数不再介绍。
returnstdout
optional
标准输出
例子:
上面这段程序中,我们执行了一条指令ls-l/,STAXResult将包含根目录下所有目录的列表。
4.2.2
作用:
标签stafcmd用于调用STAF的命令。
返回值:
调用结束后有以下返回值供我们使用
返回值
说明
RC
本次执行的错误码,0表示正常,非0值表示执行出错。
STAFResult
本次执行的错误信息,成功为None,不成功STAFResult中包含具体出错信息。
STAXResult
本次执行的返回信息。
子标签:
stafcmd包含以下子标签:
子标签
属性
说明
location
required
STAF命令在哪台机器上执行
service
required
接收request的服务的名称
request
required
我们提交的需求
例子:
=0"> 'STAF%sPINGPINGrequestfailedwithRC: %s,Result: %s'%(RC,STAFResult) 上面是stafcmd的一个例子,这个例子的作用是向机器192.168.0.42的PING服务提交PING需求,判断机器192.168.0.42的STAF是否正常运行。 当命令执行结束后,if标签检测返回值,如果返回值不是0表明192。 168.0.42上STAF运行不正常,错误信息写入日志中。 上面这段程序和4.2.1节中的例子作用完全一样。 4.3并行执行 STAF可以执行并行操作,即多个操作可以同时进行。 4.3.1 作用: parallel标签可以包含子标签,这些子标签将并行执行。 当所有的子标签执行结束后,parallel标签执行结束。 例子: ... ... 在这个例子中,stafcmd、process、call三个操作同时执行。 4.3.2 作用: paralleliterate标签是并行执行的另一种方法。 在使用paralleliterate前需要定义一个列表,paralleliterate标签中只包含一个执行子标签,列表中的每一个元素都要执行子标签中指定的任务,而且是并行执行的。 当列表中所有的元素任务执行完毕时,paralleliterate结束。 属性: paralleliterate标签含有以下几个属性: 属性 说明 var 列表中的元素 in 我们定义好的列表,列表中的元素将进行并行操作 例子: 在这个例子中,我们将会从本机同时ping42、43、44三台机器。 4.4函数创建和调用 这一节中,我们来谈谈STAX中如何创建函数,如何调用函数。 4.4.1 作用: 我们采用标签 属性: function有一个属性name指名这个function的名字。 属性 说明 name 函数的名字 例子: …… 4.4.2 作用: 我们用 我们在4.4.1中创建的函数没有参数,若想创建带参数的函数,需要在 例子: …… 我们将所有的参数放在标签 这种变量在函数调用时必须传递值。 这种变量有默认值,函数调用时可以传值,可以不传值。 如果不传递值就使用默认值。 4.4.3 作用: 这两个标签的主要区别时函数调用时参数的形式有差异。 例子: …… 4.4.4 作用: 我们用 例子: 调用不带参数的函数 …… 调用 { 'parms': 'aaa', 'machine': '192.192.192.197' } 调用 键值就是函数定义时的参数名称。 我们传递给parms的值是字符串aaa,我们传递给machine的值是字符串192.168.0.42,参数command没有传递值就采用默认值ls。 调用 我们按照变量定义的顺序进行赋值,第一个值aaa赋给第一个变量parms,第二个值赋给第二个变量machine,第三个变量采用默认值ls。 4.4.5 作用: 作用与采用 例子: name属性对应函数定义时指定的参数名称, 4.4.6 作用: 这个标签指名脚本执行时默认调用的函数。 例子: …… 脚本启动时默认调用main函数。 4.4.7 作用: 我们可以用 函数执行到return语句就返回主调函数,不再向下执行。 如果函数中没有return语句,那么执行完所有的函数语句返回主调函数。 在主调函数中,我们可以用变量STAXResult获取函数返回值。 这个变量可以表示任何类型,如整型、字符串、列表等等。 例子: xmlversion="1.0"encoding="UTF-8"standalone="no"? > DOCTYPEstaxSYSTEM"stax.dtd"> x=x+2 y.append('test3') A=1 B=['test1','test2'] A,B=STAXResult
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STAX 脚本 编写 文档