TestLinkConverter编程纪要

  TestLinkConverter小工具主要是为了解决XML以及Excel之间相互转换的问题。测试管理工具导出用例文件格式为XML,而一般测试人员习惯用Excel设计测试用例,导致设计的测试用例无法导入到TestLink以及TestLink导出的测试用例无法提供Excel视图;支持XML转换为Excel后,对应Excel转换为XML;XML和Excel相互转换。
1-2017-05-21-CSharp-TestLink
点击下载

1. 概要

    支持解析的XML为TestLink默认导出的XML结构;经过工具生成后对应Excel展示用例如下图:
2-2017-05-21-CSharp-TestLink
    支持解析的Excel格式默认为导出的Excel格式,见上图。

注: 支持导出文件的相互转换,即导出XML再转为Excel或者导出Excel再次转为XML。

2. XML -> Excel

    首先解决的问题是如何将TestLink导出的XML文件进行转换提供给测试人员习惯使用的Excel视图。一般的XML格式TestLink一般导出后结构如下,对应XML各个字段定义参考TestLink字段解析
4-2017-05-21-CSharp-TestLink
TestLinkConverter采用C#自带的XmlDocument对xml文件进行解析,但是有的xml可能存在多个testsuite嵌套的情况,就需要获取所有嵌套下的TestCase,这里采用递归的方法获取所有testcase。

/// <summary>
/// 递归获取测试套下所有测试用例
/// </summary>
/// <param name="xmlNodes">根节点下子节点集合</param>
private void RecursionGetNodes(List<XmlNode> xmlNodes)
{
    foreach (XmlNode node in xmlNodes)
    {
        if (node.Name.Equals("testsuite"))
        {
            List<XmlNode> childNodes = node.ChildNodes.Cast<XmlNode>().ToList();
            RecursionGetNodes(childNodes);
        }
        else
        {
           if (node.Name.Equals("testcase"))
           {
              this._nodesList.Add(node);
           }
        }
     }
}

3. 功能实现

4.1 进度条功能

对应进度条的功能,首先不确定解析文件以及生成文件具体耗时,进度条而且需要与之同步;进度条采用系统自带的ProgressBar控件。

7-2017-05-21-CSharp-TestLink 

private delegate void SetPos(int ipos);

public Form()
{
    InitializeComponent();    
    ProgressBarShow.SetProgressValue += this.SetProgressValue;
}

private void SetProgressValue(int ipos)
{
    if (this.InvokeRequired)
    {
        SetPos setPos = new SetPos(SetProgressValue);
        this.Invoke(setPos, new object[] {ipos});
    }
    else
    {
        this.progressBar.Value = Convert.ToInt32(ipos);
    }
}

  新增类用于绑定进度条实时更新。

public static class ProgressBarShow
{
    public delegate void SetProgressHandler(int ipos);

    public static SetProgressHandler SetProgressValue { get; set; }

    public static void ShowProgressValue(int ipos)
    {
        if (SetProgressValue != null)
        {
            SetProgressValue.Invoke(ipos);
        }
    }
}

5. 引用三方类库

5.1 log4net

下载地址: https://logging.apache.org/log4net/download_log4net.cgi

参考博客: http://www.cnblogs.com/kissazi2/p/3389551.html

 

文章源地址:https://www.yaitza.cn/2017/05/21/2017-05-21-CSharp-TestLink/

代码归档地址:https://github.com/yaitza/TestLinkConverter

 

 
posted @ 2020-07-28 16:48  海道  阅读(166)  评论(0编辑  收藏  举报