• 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

     
  • 相关阅读:
    java中date日期格式的各种转换
    idea配置网络代理
    idea连接操作数据库
    数据库mysql之慢查询优化
    【统一异常处理】@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
    freemarker【FTL】常见语法大全
    MySQL高级知识(七)——索引面试题分析
    MySQL高级知识(八)——ORDER BY优化
    MySQL高级知识(六)——索引优化
    MySQL高级知识(四)——Explain
  • 原文地址:https://www.cnblogs.com/jay-Come-on/p/13392046.html
Copyright © 2020-2023  润新知