您好,登錄后才能下訂單哦!
但是,我們這些動作指令信息畢竟是讓測試用例數據的設計者告訴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 <test_case> element List<Element> testcaseElementList = rootElement.elements("test_case"); for(Element testcaseElement : testcaseElementList){ testcaseElementPathValue = testcaseElement.getUniquePath(); //get <add_elements> part from the <test_case> addElements= testcaseElement.element("add_elements"); if(addElements!=null){ //traverse the <add_elements> to get a seris of <add_element> List<Element> addElementList = addElements.elements("add_element"); for(Element addElement : addElementList){ //extract the <path> information from <add_element> addElementPath = addElement.element("path"); addElementPathValue = addElementPath.getTextTrim(); //extract the <value> information from <add_element> addElementValue = addElement.element("value"); String xmlValue=addElementValue.asXML(); //remove the <value> and </value> part from this xml addElementValueValue=xmlValue.replace("<value>","").replace("</value>",""); addElementInfoList.add (new AddElement(testcaseElementPathValue,addElementPathValue,addElementValueValue)); } } //get <update_elements> part from the <test_case> updateElements= testcaseElement.element("update_elements"); if(updateElements!=null){ //traverse the <update_elements> to get a seris of <update_element> List<Element> updateElementList = updateElements.elements("update_element"); for(Element updateElement : updateElementList){ //extract the <path> information from <update_element> updateElementPath = updateElement.element("path"); updateElementPathValue = updateElementPath.getTextTrim(); //extract the <value> information from <update_element> updateElementValue = updateElement.element("value"); updateElementValueValue=updateElementValue.getTextTrim(); updateElementInfoList.add (new UpdateElement(testcaseElementPathValue,updateElementPathValue,updateElementValueValue)); } } //get <remove_elements> part from the <test_case> removeElements= testcaseElement.element("remove_elements"); if(removeElements != null){ //traverse the <remove_elements> to get a seris of <remove_element> List<Element> removeElementList = removeElements.elements("remove_element"); for(Element removeElement : removeElementList){ //extract the <path> information from <remove_element> removeElementPath = removeElement.element("path"); removeElementPathValue = removeElementPath.getTextTrim(); removeElementInfoList.add(new RemoveElement(testcaseElementPathValue,removeElementPathValue)); } } } }
現在經過上述3步驟之后,我們的代碼中所有的動作序列的執行內容都被存放在相應變量中了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。