• 一种RF测试执行优化思路(附可执行程序) 泽南


    提供一种思路,解决以下问题:
    1、通过RIDE执行测试用例的话,无法调换待执行测试集顺序。
    2、无法将当前选择保存为自己的测试集。
    鉴于此,需要有方案加以解决。
     
    思路其实也很简单,通过将测试集文件夹、测试集路径加以拼接,利用已有的pybot命令直接执行即可。为了简化操作,可以开发一个界面,读取用例文件夹形成用例树,供使用者手动选择单个或一批用例,拼接形成执行语句。列表可以保存、读取、拷贝到cmd执行,或通过界面直接执行。
     
    0
    0
     
     
    以下结合代码,讲解下测试集文件夹形成树状结构的过程:
    一、递归形成用例集树
            private void createTreeView(string autoPath, TreeNode node)
            {
                //先遍历处理文件夹
                DirectoryInfo directoryInfo = new DirectoryInfo(autoPath);
                foreach (DirectoryInfo childDirectoryInfo in directoryInfo.GetDirectories())
                {
                    //找到一个子文件夹,定义为一个文件夹节点
                    TreeNode directoryNode = new TreeNode(childDirectoryInfo.Name.ToString());
                    //Tag属性里存放路径,路径采取拼接方式形成,顶层路径可直接定义为Root
                    directoryNode.Tag = node.Tag + "/" + childDirectoryInfo.Name.ToString();
                    directoryNode.ImageIndex = 0;
                    //将此节点往下递归
                    createTreeView(autoPath + "//" + childDirectoryInfo.Name.ToString(), directoryNode);
                    //将此节点加入到用例树的父节点下
                    node.Nodes.Add(directoryNode);
                }
    
                //再处理用例集文件,形成叶子
                //Py3的用例集默认是.robot格式,所以这里做了筛选
                foreach (FileInfo fileInfo in directoryInfo.GetFiles("*.robot"))
                {
                    //定义一个空叶子节点
                    TreeNode leafNode = new TreeNode();
                    //将测试集名称作为叶子节点的名称
                    leafNode.Text = fileInfo.Name.ToString().Substring(0, fileInfo.Name.ToString().IndexOf(".robot"));
                    //排除系统自动生成的init文件
                    if (leafNode.Text != "__init__")
                    {
                        //Tag属性里存放路径,路径采取拼接方式形成,直接存放文件名,实际调用会用到
                        leafNode.Tag = node.Tag + "/" + fileInfo.Name.ToString();
                        leafNode.ImageIndex = 1;
                        leafNode.SelectedImageIndex = 1;
                        //叶子节点不用再做递归
                        //将叶子节点添加到父节点上
                        node.Nodes.Add(leafNode);
                    }
                }
            }
    二、处理树形结构点击事件:
    这里就不展开了,毕竟不同语言各有各的写法。简单说下思路:
    1、鼠标单击获取坐标并定位焦点,改变节点“选中”、“未选中”状态。
    2、鼠标双击提取节点tag,按叶子节点-测试集名称,非叶子节点-用例集文件夹名称提取。
    3、鼠标右键点击节点,按叶子节点-测试集名称,非叶子节点-展开用例集文件夹,逐个用例集名称提取等。
    以下是不同的点击效果,均可以正常利用pybot执行。
    0
     
    三、最终形成的执行语句。
    即可在界面直接运行,也可以复制到cmd里执行。
    0
     
    以上程序稍加优化,也可以实现多测试机load balance的并发执行。只不过slave上需要开agent向回发送测试结果。
     
    需要获取可执行程序的,可扫码关注公众号或扫码加群获取:
    0
     
     
  • 相关阅读:
    模板【洛谷P3368】 【模板】树状数组 2
    模板【洛谷P3812】 【模板】线性基
    Java面向对象-多态
    Java常用工具类
    Java常用工具类
    Java static关键字
    MyBatis对象关联查询demo (一对多,多对一)
    将Cmder添加到系统右键菜单中
    IDEA 创建JavaWeb应用打包并发布
    IDEA 调试与打包
  • 原文地址:https://www.cnblogs.com/alphaxu/p/15674384.html
Copyright © 2020-2023  润新知