1. 搭建测试套件
JTharness的BIN文件中自身就带有测试套件的范例,进入%JTHarness_4_4_0_BIN%\examples\tutorial,下面的demots就是一个可执行的测试套件。参考这个范例我们从头开始,来搭建一个一般的测试套件。
步骤如下:
1) 创建一个文件夹,用于存放测试套件;
2) 创建testsuite.jtt文件,放于Test Suite文件夹下;
3) 拷贝javatest.jar和jh.jar到Test Suite文件夹下的lib文件夹下(启动此处javatest.jar时可以自动定位默认Test Suite的路径为该Test Suite文件夹);
4) 添加自己设计的类(运行插件)的class文件到classPath下,两种方法:
l 打成jar包放lib文件夹下,并在testsuite.jtt文件中配置classPath包含该jar文件。(demots采用的就是这种方式)
l 或直接将class文件放文件夹下(通常放classes文件夹下),并在testsuite.jtt文件中配置classPath包含该文件夹。
5) 将测试脚本放tests文件夹下;
6) 运行test suite。
l 如果是第一次运行,双击lib\javatest.jar。选择testsuite为当前的Test Suite文件夹,配置文件为新建一个配置文件(即jti文件,最好放在jtt的同级目录下,但demots放在了lib目录下)。运行时如果提示需要创建工作目录,在Test Suite文件夹下新建WordDir目录,选择作为工作目录。
l 如果不是第一次运行,在Test Suite文件夹下新建bat文件,写入下面的字符串:java-jar lib\javatest.jar -testsuite . -config testsuite.jti -workdir WorkDir。直接运行就可以了,省掉了大部分麻烦的动作。
运行后效果如下图所示:
2. 测试套件的目录结构
测试套件的目录结构如下表:
testsuite.jtt |
包含对Test Suite的配置信息,如Test Suite的名称,classPath,Test Finder,Test Script用哪个类等 |
lib\ javatest.jar |
JT Harness框架的所有类,将其放在Test Suite目录下或其下的lib目录下,执行javatest.jar时能自动定位Test Suite路径 |
lib\ |
测试套件设计者添加的类打成的jar包, .jtx文件,其中包含不执行测试用例列表 |
classes\ |
测试用例编译后的class文件,以及执行测试用例时要用到的库的class文件 |
tests\ |
测试脚本文件和测试描述文件(如html文件) |
doc\ |
可选,可放测试套件的使用说明或特性说明文档 |
3. 配置文件说明
JTharness有一些很重要的配置文件,如jtt、jti、jtx、jtd,这些文件有各自特定的格式和特殊的功能。建议将这些文件都放在测试套件的根目录下。
3.1. jtt文件常用属性
jtt文件中指定了测试套件查找、配置、执行脚本的方式,也指定了要引用的文件。其常用属性如下表,未在该文件中进行配置的项采用默认值。
name |
test suite的名字,80字符以内 例:name=Demo Test |
id |
特定版本test suite的唯一标识 例:id=DemoTs1.0 |
classpath |
除了javatest.jar还会用到的其它类,如JavaTest plug-in classes (script, finder, interview)打包后的jar文件 例:classpath=lib/jtdemots.jar |
finder |
test finder类和参数(若有) 例:finder=com.sun.javatest.finder.CardTestFinder |
script |
test script类和参数(若有) 例:script=com.sun.javatest.lib.CardTestScript |
interview |
interview类和参数(若有) 例:interview=com.sun.demots.CardTestInterview |
logo |
测试套件log,在Quick Start wizard中显示。 例:logo=lib\logo.jpg |
注:该表只列了用到的属性,其它属性详见《javatest_arch_guide》P82,TABLE8-1。且其中的CardTestFinder、CardTestScript、CardTestInterview都是经过二次开发实现的类,如果不想扩展,参考demots的配置即可。
3.2. jti文件常用属性
jti文件中保存了测试套件配置界面上的参数,每次在界面上修改配置,都会存储到该文件。并且jti文件有checksum属性,是根据当前文件的内容hash计算出来的,因此不能直接修改jti文件,必修通过JTHarness的配置界面进行修改。否则运行时会提示jti文件无效。
图:JTHarness的配置界面
图:配置界面对应生成的jti文件内容
3.3. jtx文件常用属性
jtx文件指定了要排除的脚本,这些脚本可以被找到,但是不会被执行,在界面中相应的会显示灰色。
如果你确定脚本中的某些一定会过,或一定不会过,或者你不关心过与不过,这个jtx文件就很有用处,跳过这些脚本,能缩短执行时间。
3.4. jtd文件的生成和使用
jtd文件是二进制文件,是用来描述脚本目录结构和脚本信息的文件。必须通过命令生成,使用时在jtd中指定testsuite.jtd=tests/testsuite.jtd。
生成jtd文件的命令的示例:java -cp lib/javatest.jar;lib/CardTest.jarcom.sun.javatest.finder.BinaryTestWriter -finder com.watchdata.javatest.finder. CardTestFinder -end -o tests/testsuite.jtd tests/
参数的具体含义参考《javatest_arch_guide》P90关于Binary Test Finder的描述。