您好,登錄后才能下訂單哦!
但是,我們這些動(dòng)作指令信息畢竟是讓測(cè)試用例數(shù)據(jù)的設(shè)計(jì)者告訴Engine怎樣修改原始數(shù)據(jù)集合的,所以我們必須把這些信息分離出來(lái),但是剛才一步驟,已經(jīng)把這些片斷移除了,那么怎么把這些信息拿到呢?很簡(jiǎn)單,不是我們有原始數(shù)據(jù)么,所以我們就可以對(duì)于原始數(shù)據(jù)的xml字符串,一個(gè)testcase,一個(gè)testcase的吧這些動(dòng)作指令解析出來(lái)并且存放在相應(yīng)的Value Object 列表中,以后我們只要根據(jù)這些列表中提供的信息就可以正確的對(duì)于原來(lái)的數(shù)據(jù)集合進(jìn)行操作了。
分離信息的類(lèi)叫XMLModifyInfoExtractor,它負(fù)責(zé)分離動(dòng)作:
代碼如下:
/** * 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)); } } } }
現(xiàn)在經(jīng)過(guò)上述3步驟之后,我們的代碼中所有的動(dòng)作序列的執(zhí)行內(nèi)容都被存放在相應(yīng)變量中了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。