51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 6290|回复: 10
打印 上一主题 下一主题

[原创] testlink1.9.2直接导入xls格式测试用例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-1-12 18:43:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lazybone3936 于 2012-1-12 18:49 编辑

由于工作需要搭建了testlink作为测试用例管理工具
发现无法导入xls格式的文件,只支持xml
google之后发现,网上有卖xls转换为xml的工具,有点蛋疼
去官网论坛找了以后发现,国外已经有牛人给出了修改后的tcImport.php文件
本着资源共享的原则,无私了一把,服务广大苦逼的测试!!!{:4_83:}

废话不多,直接进入正题
1.对于导入的xls文件有格式要求,需要是
create an Excel file with 4 columns:
- Test Case Name
- Summary
- Actions
- Expected Results

2.修改代码:
文件路径..\testlink\lib\testcases\tcImport.php文件中
增加一个function
修改完后,重启apach2,你会发现导入测试用例的下拉框多出一个xls选项
------------------------------------------------
function create_xml_tcspec_from_xls($xls_filename,$xml_filename)
{
define('FIRST_DATA_ROW',2);
define('IDX_COL_NAME',1);
define('IDX_COL_SUMMARY',2);
define('IDX_COL_ACTIONS',3);
define('IDX_COL_EXPRESULTS',4);

$xls_handle = new Spreadsheet_Excel_Reader();

$xls_handle->setOutputEncoding(config_get('charset'));
$xls_handle->read($xls_filename);
$xls_rows = $xls_handle->sheets[0]['cells'];
$xls_row_qty = sizeof($xls_rows);

if($xls_row_qty < FIRST_DATA_ROW)
{
return; // >>>----> bye!
}

$xmlFileHandle = fopen($xml_filename, 'w') or die("can't open file");
fwrite($xmlFileHandle,"<testcases>\n");

for($idx = FIRST_DATA_ROW; $idx <= $xls_row_qty; $idx++ )
{
$name = htmlspecialchars($xls_rows[$idx][IDX_COL_NAME]);

// $summary = htmlspecialchars(iconv("CP1252","UTF-8",$xls_rows[$idx][IDX_COL_SUMMARY]));
// 20090117 - contribution - BUGID 1992 // 20090402 - BUGID 1519
// $summary = str_replace('…',"...",$xls_rows[$idx][IDX_COL_SUMMARY]);
$summary = convert_special_char($xls_rows[$idx][IDX_COL_SUMMARY]);
$summary = nl2p(htmlspecialchars($summary));

// 20090117 - BUGID 1991,1992 // 20090402 - BUGID 1519
// $steps = str_replace('…',"...",$xls_rows[$idx][IDX_COL_ACTIONS]);
//$steps = convert_special_char($xls_rows[$idx][IDX_COL_ACTIONS]);
//$steps = nl2p(htmlspecialchars($steps));
//fwrite($xmlFileHandle,"<steps><![CDATA[".$steps."]]></steps>\n");

$step_number = 1;

$actions = convert_special_char($xls_rows[$idx][IDX_COL_ACTIONS]);
$actions = nl2p(htmlspecialchars($actions));

// 20090117 - BUGID 1991,1992 // 20090402 - BUGID 1519
// $expresults = str_replace('…',"...",$xls_rows[$idx][IDX_COL_EXPRESULTS]);
$expresults = convert_special_char($xls_rows[$idx][IDX_COL_EXPRESULTS]);
$expresults = nl2p(htmlspecialchars($expresults));
//fwrite($xmlFileHandle,"<expectedresults><![CDATA[".$expresults."]]></expectedresults>\n");


fwrite($xmlFileHandle,"<testcase name=" . '"' . $name. '"'.">\n");

fwrite($xmlFileHandle,"<summary><![CDATA[" . $summary . "]]></summary>\n");

//generate xml data for step
fwrite($xmlFileHandle,"<steps>\n");
fwrite($xmlFileHandle,"<step>\n");
fwrite($xmlFileHandle,"<step_number>" . $step_number . "</step_number>\n");
fwrite($xmlFileHandle,"<actions><![CDATA[" . $actions . "]]></actions>\n");
fwrite($xmlFileHandle,"<expectedresults><![CDATA[" . $expresults . "]]></expectedresults>\n");
fwrite($xmlFileHandle,"</step>\n");
fwrite($xmlFileHandle,"</steps>\n");        


fwrite($xmlFileHandle,"</testcase>\n");
}
fwrite($xmlFileHandle,"</testcases>\n");
fclose($xmlFileHandle);

}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-1-12 18:44:43 | 只看该作者
本帖最后由 lazybone3936 于 2012-1-12 18:46 编辑


附件是上传xls格式的模板
本人测试系统是debian6+apach2
应该写的比较清楚了,如果不清楚可以提问

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-2-2 15:28:00 | 只看该作者
首先谢谢LZ的分享,另外有个问题想请教一下LZ,我生成了这个楼主说的XLS的选项,但是我选择了测试用例后没有用例被导入,是什么原因呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-2-17 15:18:59 | 只看该作者
感谢楼主分享
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-26 09:52
  • 签到天数: 165 天

    连续签到: 2 天

    [LV.7]测试师长

    5#
    发表于 2012-3-1 15:45:29 | 只看该作者
    本帖最后由 hbxtly 于 2012-3-1 15:59 编辑

    我安装的是1.9.3版本,本身就有导入xls选项,但按四项创建测试用例后,仍然是无法导入成功。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-3-2 16:26:34 | 只看该作者
    9Import and Export data
    TestLink supports several ways to share data. Data Format is described in extra document <testlink>/docs/tl-file-format.pdf. In addition you can consider to use TestLink API to deliver data from script or external tool.
    There is amount of file examples in directory <testlink>/docs/file_examples/.
    关于这个导入导出大家看testlink的官方说明吧,试过了,这样能成功
    <testlink>/docs/tl-file-format.pdf.
    <testlink>/docs/file_examples/
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-8-8 15:25:48 | 只看该作者
    我安装的是1.9.3版本,本身就有导入xls选项,但按四项创建测试用例后,仍然是无法导入成功。
    hbxtly 发表于 2012-3-1 15:45



        --------------------------------------
    1.9.3版本如何做到本身就有导入xls选项的?改了脚本?咋改的啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2012-9-16 22:17:12 | 只看该作者
    问一下楼主,我在1.9.3下,将xls转换为XML然后可以正常导入测试用例,但是每一次只能导入一条,请问怎么能一次导入多条测试用例?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2012-9-17 12:02:25 | 只看该作者
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-10-8 18:43:01 | 只看该作者
    受教了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2012-11-26 14:18:35 | 只看该作者
    问一下楼主,我在1.9.3下,将xls转换为XML然后可以正常导入测试用例,但是每一次只能导入一条,请问怎么能一 ...
    zz235476 发表于 2012-9-16 22:17


    很好的问题,如果能批量导入,才是真正解决了这个问题啊!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-2 13:43 , Processed in 0.097747 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表