背景
Testlink本身只能够接收符合特定格式的XML文件的导入,而通常用于编辑的用例文档是Excel。该工具主要的目的就是文件的格式转换,使用方法在其页面的链接上有使用帮助,此处不多加描述。这里主要介绍一下实现方式和原理。
导入原理
其导入根本原理是,根据Testlink自身可接收的xml格式文件,将xls用例文件转换为符合其格式要求的xml,再进行导入。而想要获知Testlink可接收何种格式的xml文件,可以在Testlink中手动创建测试用例,然后将其以xml格式导出即可。
这里使用的是第三方插件PHPExcel读取xls格式文件,然后将每个单元格的内容通过拼接字符串的形式构成一份xml文件。需要注意的是,虽然这里生成的是xml文件,但代码中并未使用到PHP自带的一些xml函数,因导入的格式颇为复杂,直接使用字符串拼接可能会更加方便些。
XML分析
<?xml version="1.0" encoding="utf-8"?> <testsuite name="用例表1"> <node_order><![CDATA[]]></node_order> <details><![CDATA[]]></details> <testsuite name="用例集1"> <node_order><![CDATA[]]></node_order> <details><![CDATA[]]></details> <testsuite name="用例集2"> <node_order><![CDATA[]]></node_order> <details><![CDATA[]]></details> <testcase internalid=" " name="用例名称1"> <node_order><![CDATA[]]></node_order> <externalid><![CDATA[]]></externalid> <version><![CDATA[]]></version> <summary><![CDATA[<p>摘要1</p>]]></summary> <preconditions><![CDATA[<p>前提条件1</p>]]></preconditions> <execution_type><![CDATA[1]]></execution_type> <importance><![CDATA[3]]></importance> <estimated_exec_duration>15</estimated_exec_duration> <status>1</status> <steps> <step> <step_number><![CDATA[1]]></step_number> <actions><![CDATA[<p>1、操作1 </p><p>2、操作2</p>]]></actions> <expectedresults><![CDATA[<p>1、结果1 </p><p>2、结果2</p>]]></expectedresults> <execution_type><![CDATA[1]]></execution_type> </step> </steps> <custom_fields><custom_field> <name><![CDATA[编写人]]></name> <value><![CDATA[]]></value> </custom_field></custom_fields> <requirements><requirement> <doc_id><![CDATA[A-TR00-010]]></doc_id> </requirement></requirements></testcase></testsuite></testsuite></testsuite>
以上是一层文件夹下的一条用例。在转换格式时,不论上面的标签有用没用,一个也不能少,下面介绍每个标签的含义:
<testsuite>:表示用例集的标签,如果有多层用例集,可以直接包含。其属性name是用例集名称。
<node_order>:导入时无用,但不可缺少。
<details>:用例集的描述。
<testcase>:表示测试用例的标签。其属性name是用例名称。
<version>:用例版本,导入时可为空。默认1.0。
<summary>:用例摘要。
<preconditions>:用例的前提条件。
<execution_type>:执行的方式,1表示手动,2表示自动。
<importance>:优先级,1、2、3分别代表高、中、低。
<estimated_exec_duration>:预估用时,单位为分钟。
<status>:用例状态,可默认为1。
<steps>:操作步骤组,一个组可包含多个步骤。
<step>:操作步骤,Testlink可支持多个操作步骤。但我们这里只使用一个操作步骤,即所有步骤都写在步骤1中。一个操作步骤包含以下几个标签:序号、内容、预期结果、单个步骤执行方式。
<step_number>:操作步骤序号。
<action>:操作步骤内容。
<expectedresults>:预期结果
<execution_type>:单个操作步骤的执行方式。
<custom_fields>:自定字段组,可包含多个自定义字段。
<custom_field>:自定义字段标签。
<name>:自定义字段名称。
<value>:自定义字段的值。
<requirements>:需求组,一条用例可能关联多个需求。
<requirement>:需求标签。
<doc_id>:需求的编号。
以上介绍了测试用例的标签结构,测试需求的标签结构和测试用例类似,都可以通过标签的英文名知道其含义。
实现流程
在线转换xls至xml的网站:convertx.messv.com