Пример #1
0
        private void treeSchemas_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                var node = treeSchemas.GetNodeAt(e.X, e.Y);
                if (node != null)
                    if ((node.Name.IndexOf("ROOT_") > -1) || (node.Name.IndexOf("SCHEMA_") > -1))
                    {
                        treeSchemas.SelectNode(node, eTreeAction.Mouse);
                        if (node.Name.IndexOf("ROOT_") > -1)
                        {
                            修改方案ToolStripMenuItem.Enabled = false;
                            添加方案ToolStripMenuItem.Enabled = true;
                            设为执行方案ToolStripMenuItem.Enabled = false;
                        }
                        else
                        {
                            修改方案ToolStripMenuItem.Enabled = true;
                            添加方案ToolStripMenuItem.Enabled = false;
                            设为执行方案ToolStripMenuItem.Enabled = true;
                        }
                        SeleniumSchemaEntity seleniumSchemaEntity = null;
                        if (node.Tag != null)
                            seleniumSchemaEntity
                                = (SeleniumSchemaEntity) node.Tag;
                        LoadSchema(seleniumSchemaEntity);

                        menuStrip.Show(MousePosition.X, MousePosition.Y);
                    }
            }
        }
Пример #2
0
 private void LoadSchema(SeleniumSchemaEntity seleniumSchemaEntity)
 {
     if (seleniumSchemaEntity != null)
     {
         txtSchemaID.Text = seleniumSchemaEntity.Id;
         txtSchemaName.Text = seleniumSchemaEntity.Name;
         StaticValue.LoadSeleniumSchema(dgvSelenium, seleniumSchemaEntity);
     }
     else
     {
         txtSchemaID.Text = "";
         txtSchemaName.Text = "";
     }
 }
Пример #3
0
        /// <summary>
        /// 获取所有自动化测试方案
        /// </summary>
        /// <param name="tree"></param>
        public static void GetAllSeleniumSchema(AdvTree tree, String selectNodeId)
        {
            tree.Nodes.Clear();
            Node nodeRoot = new Node();

            nodeRoot.Name = "ROOT_" + Guid.NewGuid().ToString();
            nodeRoot.Text = " 所有测试方案";
            Node        selectNode = null;
            XmlDocument doc        = new XmlDocument();

            doc.Load(MSeleniumSchemaPath);
            nodeRoot.Expanded = true;
            List <XmlNode> nodeList = doc.SelectNodes("//Schema").ToList <XmlNode>();

            if (nodeList.Count > 0)
            {
                nodeList.ForEach(o =>
                {
                    SeleniumSchemaEntity seleniumSchemaEntity = new SeleniumSchemaEntity();
                    seleniumSchemaEntity.Id        = o.Attributes["ID"].Value;
                    seleniumSchemaEntity.Name      = o.Attributes["Name"].Value;
                    seleniumSchemaEntity.IsExecute = o.Attributes["Execute"] != null && Convert.ToBoolean(o.Attributes["Execute"].Value);

                    Node nodeChild = new Node();
                    nodeChild.Name = "SCHEMA_" + seleniumSchemaEntity.Id;
                    nodeChild.Text = seleniumSchemaEntity.Name;
                    nodeChild.Tag  = seleniumSchemaEntity;
                    if (selectNodeId.Equals(seleniumSchemaEntity.Id))
                    {
                        selectNode = nodeChild;
                    }

                    if (seleniumSchemaEntity.IsExecute)
                    {
                        ElementStyle style = new ElementStyle();
                        style.TextColor    = Color.Red;
                        nodeChild.Style    = style;
                        nodeChild.Text     = nodeChild.Text + "(执行方案)";
                    }
                    nodeRoot.Nodes.Add(nodeChild);
                });
            }
            tree.Nodes.Add(nodeRoot);
            if (selectNode != null) //选中节点
            {
                tree.SelectNode(selectNode, eTreeAction.Mouse);
            }
        }
Пример #4
0
        /// <summary>
        /// 设置为当前执行的方案
        /// </summary>
        /// <param name="seleniumSchemaEntity"></param>
        public static void SetExecuteSeleniumSchema(SeleniumSchemaEntity seleniumSchemaEntity)
        {
            XmlDocument docSchema = new XmlDocument();

            docSchema.Load(MSeleniumSchemaPath);
            List <XmlNode> nodeSchemaList = docSchema.SelectNodes("//Schema").ToList <XmlNode>();

            nodeSchemaList.ForEach(p =>
            {
                XmlElement elementP = p as XmlElement;
                if (p.Attributes["ID"].Value.Equals(seleniumSchemaEntity.Id))
                {
                    elementP.SetAttribute("Execute", "true");
                }
                else
                {
                    elementP.SetAttribute("Execute", "false");
                }
            });
            docSchema.Save(MSeleniumSchemaPath);
        }
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         if (String.IsNullOrEmpty(txtSchemaName.Text))
         {
             MessageBox.Show("请输入自动化测试方案名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             return;
         }
         StaticValue.SaveSeleniumSchema(txtSchemaID.Text, txtSchemaName.Text);
         if (ISeleniumSchemaInterface != null)
         {
             SeleniumSchemaEntity seleniumSchemaEntity = new SeleniumSchemaEntity();
             seleniumSchemaEntity.Id   = txtSchemaID.Text;
             seleniumSchemaEntity.Name = txtSchemaName.Text;
             ISeleniumSchemaInterface.SeleniumSchemaCallBack(seleniumSchemaEntity);
         }
         MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     catch (Exception er)
     {
         MessageBox.Show(er.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
Пример #6
0
 public void SeleniumSchemaCallBack(SeleniumSchemaEntity seleniumSchemaEntity)
 {
     StaticValue.GetAllSeleniumSchema(treeSchemas, seleniumSchemaEntity.Id);
     LoadSchema(seleniumSchemaEntity);
 }
Пример #7
0
        /// <summary>
        /// 加载所有方案
        /// </summary>
        /// <param name="dgv"></param>
        public static void LoadSeleniumSchema(DataGridView dgv, SeleniumSchemaEntity seleniumSchemaEntity)
        {
            XmlDocument document = new XmlDocument();

            document.Load(MProdefListXmlPath);
            DataTable dt = new DataTable();

            dt.Columns.Add("ProdefID");
            dt.Columns.Add("ProdefName");
            dt.Columns.Add("PropackageName");
            dt.Columns.Add("ChildProdefId");
            dt.Columns.Add("ChildProdefName");
            dt.Columns.Add("SELECT");
            XmlNodeList nodeProdefParent = document.SelectNodes("//Prodef");

            if (nodeProdefParent != null)
            {
                List <XmlNode> nodeProdefList = nodeProdefParent.ToList <XmlNode>();

                nodeProdefList = nodeProdefList.Where(p => p.HasChildNodes).ToList(); //只选择配置了方案的
                nodeProdefList.ForEach(o =>
                {
                    o.ChildNodes.ToList <XmlNode>().ForEach(p =>
                    {
                        DataRow dr            = dt.NewRow();
                        dr["ProdefID"]        = o.Attributes["ID"].Value.ToString();
                        dr["ProdefName"]      = o.Attributes["Name"].Value.ToString();
                        dr["PropackageName"]  = o.Attributes["PackageName"].Value.ToString();
                        dr["ChildProdefID"]   = p.Attributes["ID"].Value.ToString();
                        dr["ChildProdefName"] = p.Attributes["Name"].Value.ToString();
                        dr["SELECT"]          = false;
                        dt.Rows.Add(dr);
                    });
                });
            }

            //加载已有的配置,默认选中状态
            XmlDocument docSchema = new XmlDocument();

            docSchema.Load(MSeleniumSchemaPath);
            XmlNode xmlNodeSchema
                = docSchema.SelectSingleNode("//Schema[@ID='" + seleniumSchemaEntity.Id + "']");

            if (xmlNodeSchema != null)
            {
                dt.AsEnumerable().ToList().ForEach(p =>
                {
                    if (xmlNodeSchema.SelectSingleNode("Prodef[@ID='" + p["ProdefID"] + "']/ProdefChild[@ID='" + p["ChildProdefID"] + "']") != null)
                    {
                        p["SELECT"] = true;
                    }
                    else
                    {
                        p["SELECT"] = false;
                    }
                });
            }

            dgv.DataSource = dt;
            if (dt.Rows.Count > 0)
            {
                dgv.Rows[0].Selected = false;
                dgv.CurrentCell      = null;
            }
        }