一种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
 
 
原文地址:https://www.cnblogs.com/alphaxu/p/15674384.html