千家信息网

关于项目自动化测试架构的改良计划 - 分离出动作指令信息

发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,但是,我们这些动作指令信息毕竟是让测试用例数据的设计者告诉Engine怎样修改原始数据集合的,所以我们必须把这些信息分离出来,但是刚才一步骤,已经把这些片断移除了,那么怎么把这些信息拿到呢?很简单,不
千家信息网最后更新 2025年01月27日关于项目自动化测试架构的改良计划 - 分离出动作指令信息


但是,我们这些动作指令信息毕竟是让测试用例数据的设计者告诉Engine怎样修改原始数据集合的,所以我们必须把这些信息分离出来,但是刚才一步骤,已经把这些片断移除了,那么怎么把这些信息拿到呢?很简单,不是我们有原始数据么,所以我们就可以对于原始数据的xml字符串,一个testcase,一个testcase的吧这些动作指令解析出来并且存放在相应的Value Object 列表中,以后我们只要根据这些列表中提供的信息就可以正确的对于原来的数据集合进行操作了。


分离信息的类叫XMLModifyInfoExtractor,它负责分离动作:

代码如下:

/**     * extract all the modification information and store to member fields.     * @param filePath     * @throws Exception     */    public void extractModifyInfo(String filePath) throws Exception{                     SAXReader reader = new SAXReader();        Document document = reader.read(new File(filePath));                     Element rootElement = document.getRootElement();                     String testcaseElementPathValue;                                  Element addElements;        Element addElementPath;        String addElementPathValue;        Element addElementValue;        String addElementValueValue;                     Element updateElements;        Element updateElementPath;        String updateElementPathValue;        Element updateElementValue;        String updateElementValueValue;                     Element removeElements;        Element removeElementPath;        String removeElementPathValue;                     //first ,get all the  element        List testcaseElementList = rootElement.elements("test_case");        for(Element testcaseElement : testcaseElementList){                             testcaseElementPathValue = testcaseElement.getUniquePath();                             //get  part from the             addElements= testcaseElement.element("add_elements");            if(addElements!=null){                                 //traverse the  to get a seris of             List addElementList = addElements.elements("add_element");            for(Element addElement : addElementList){                //extract the  information from                 addElementPath = addElement.element("path");                addElementPathValue = addElementPath.getTextTrim();                //extract the  information from                 addElementValue = addElement.element("value");                                                          String xmlValue=addElementValue.asXML();                //remove the  and  part from this xml                addElementValueValue=xmlValue.replace("","").replace("","");                addElementInfoList.add                (new AddElement(testcaseElementPathValue,addElementPathValue,addElementValueValue));            }                             }                             //get  part from the             updateElements= testcaseElement.element("update_elements");            if(updateElements!=null){                                                  //traverse the  to get a seris of             List updateElementList = updateElements.elements("update_element");            for(Element updateElement : updateElementList){                //extract the  information from                 updateElementPath = updateElement.element("path");                updateElementPathValue = updateElementPath.getTextTrim();                //extract the  information from                 updateElementValue = updateElement.element("value");                updateElementValueValue=updateElementValue.getTextTrim();                                     updateElementInfoList.add                (new UpdateElement(testcaseElementPathValue,updateElementPathValue,updateElementValueValue));            }                             }                                                      //get  part from the             removeElements= testcaseElement.element("remove_elements");            if(removeElements != null){                                                  //traverse the  to get a seris of             List removeElementList = removeElements.elements("remove_element");            for(Element removeElement : removeElementList){                //extract the  information from                 removeElementPath = removeElement.element("path");                removeElementPathValue = removeElementPath.getTextTrim();                                     removeElementInfoList.add(new RemoveElement(testcaseElementPathValue,removeElementPathValue));            }                             }        }                                          }


现在经过上述3步骤之后,我们的代码中所有的动作序列的执行内容都被存放在相应变量中了。


0