0
我需要幫助。我必須從Excel中創建測試用例,格式如下:Java腳本:如何從給定的輸入創建測試用例
**Current NextState Function Type**
GREETING-1,repeat,PMSG
REPEAT,CallerType,PMSG
CALLERTYPE,XferBridges(DTMF:1),ClaimMenu(DTMF:2),XferLine2(DTMF:3),XferLine2(DTMF:4),Menu
CLAIMMENU,RejectMenu(DTMF:1),XferLine2(DTMF:2),Menu
REJECTMENU,NotCovered(DTMF:1),Terminated(DTMF:2),NMCard(DTMF:3),NMGroup(DTMF:4),Refill(DTMF:5),NoDrugNDC(DTMF:6),XferLine2(DTMF:2),Menu
NOTCOVERED,RejectMenu(DTMF:1),Menu
TERMINATED,XferLine2(DTMF:1),Menu
NMCARD,XferLine2(DTMF:1),Menu
NMGROUP,XferLine2(DTMF:1),Menu
REFILL,XferLine2(DTMF:1),Menu
NODRUGNDC,XferLine2(DTMF:1),Menu
XFERBRIDGES,STOP,PMSG
XFERLINE2,STOP,PMSG
THANKYOU,GoodBye,PMSG
GOODBYE,STOP,PMSG
該工具將生成n個測試用例。請指導我什麼代碼我要寫信它可以產生以下類型的測試案例:
Case 1: Greeting-1 -> Repeat -> CallerType, Press DTMF 1 ->XferBridges ->STOP
Case 2: Greeting-1 -> Repeat -> CallerType, Press DTMF 2 ->ClaimMenu, Press DTMF 1 -> RejectMenu, Press DTMF 1 ->NotCovered, Press DTMF1 -> RejectMenu -> STOP(from entering infinte into loop)
Case 3: Greeting-1 -> Repeat -> CallerType, Press DTMF 2 ->ClaimMenu, Press DTMF 1 -> RejectMenu, Press DTMF 2 -> Terminated, Press DTMF 1 ->XferLine2 ->STOP
Case 4: Greeting-1 -> Repeat -> CallerType, Press DTMF 2 ->ClaimMenu, Press DTMF 1 -> RejectMenu, Press DTMF 3 -> NMCard, Press DTMF 1 ->XferLine2 ->STOP
**.**
**.**
等
你也許能得到一個想法是什麼,我在這裏做。試圖爲每個呼叫流創建測試用例,如果下一個狀態是PMSG,那麼將它添加到同一個數組中,但是如果下一個狀態是MENU,那麼將創建新的數組(這意味着新的測試用例),該數組將通過所有DTMF選項及其相應的下一個狀態等等
我用遞歸循環來獲取輸出,但是它給出了錯誤的值。
代碼:
function generateTestCaseList(nextState) {
\t \t var incCount = 1;
\t \t
\t \t var positionInt = findNextState(nextState);
\t \t var tempStoredArray = allState[positionInt];
\t \t
\t \t if(tempStoredArray[0].toLowerCase() == menuName.toLowerCase())
\t \t {
\t \t \t incCount = menuPostion;
\t \t \t f = true;
\t \t } \t
\t \t else if(tempStoredArray[0].toLowerCase() == nextMenuName.toLowerCase())
\t \t \t incCount = nextMenuPostion;
\t \t \t \t \t
\t \t var tempStr = getState(tempStoredArray, incCount);
\t \t var tempArr = tempStr.toLowerCase().split("%");
\t \t
\t \t nextState = tempArr[1];
\t \t parentStr = parentStr + tempArr[0];
\t \t var cntInfi = parentStr.toLowerCase().split(nextState).length -1;
\t \t
\t \t if(cntInfi == 2)
\t \t {
\t \t \t return parentStr;
\t \t }
\t \t else if(nextState != "stop")
\t \t {
\t \t \t var pstInt = findNextState(nextState);
\t \t \t var tempArr = allState[pstInt];
\t \t \t
\t \t \t if(tempArr[tempArr.length -1] == "Menu" && f == true)
\t \t \t { \t
\t \t \t \t nextMenuName = tempArr[0];
\t \t \t \t var tempMenuPsx= tempArr.length - 2;
\t \t \t \t //WScript.Echo("tempMenuPsx"+nextMenuName+tempMenuPsx);
\t \t \t \t for(var k=tempMenuPsx;k >0 ;k--)
\t \t \t \t {
\t \t \t \t \t nextMenuPostion = k;
\t \t \t \t \t //WScript.Echo("nextMenuPostion"+nextMenuPostion);
\t \t \t \t \t WScript.Echo("parentStr"+parentStr);
\t \t \t \t \t var temp = generateTestCaseList(nextState);
\t \t \t \t \t childStr = childStr +temp;
\t \t \t \t \t resultList.push(childStr);
\t \t \t \t \t childStr = "";
\t \t \t \t \t
\t \t \t \t }
\t \t \t \t
\t \t \t }
\t \t \t else
\t \t \t {
\t \t \t \t generateTestCaseList(nextState);
\t \t \t }
\t \t \t
\t \t }
\t \t else
\t \t {
\t \t \t return parentStr;
\t \t }
\t \t
}
function findNextState(nextState) {
\t
\t for(var l=0;l<allState.length;l++)
\t {
\t \t if(allState[l][0].toLowerCase()==nextState.toLowerCase())
\t \t \t return l;
\t }
\t return 0; \t \t \t
}
function getState(tempArray,l) {
\t
\t var tempStr = tempArray[0];
\t \t \t \t
\t if(tempArray[2] =="GETV")
\t \t tempStr = tempStr +";Voice: Say Something;"+tempArray[2]+";$%"+tempArray[1];
\t else if(tempArray[2] =="PMSG")
\t \t tempStr = tempStr +";"+tempArray[2]+";$%"+tempArray[1];
\t else
\t \t tempStr = tempStr +";DTMF:"+l+";"+tempArray[tempArray.length -1]+";$%"+tempArray[l];
\t \t
\t return tempStr;
}
結果( 「$」 就在這裏下一個狀態分離器):
1. greeting-1;pmsg;$repeat;pmsg;$callertype;dtmf:4;menu;$xferline2;pmsg;$
2. greeting-1;pmsg;$repeat;pmsg;$callertype;dtmf:3;menu;$xferline2;pmsg;$
3. greeting-1;pmsg;$repeat;pmsg;$callertype;dtmf:2;menu;$claimmenu;dtmf:2;menu;$xferline2;pmsg;$claimmenu;dtmf:1;menu;$rejectmenu;dtmf:7;menu;$xferline2;pmsg;$rejectmenu;dtmf:6;menu;$nodrugndc;dtmf:1;menu;$
4. greeting-1;pmsg;$repeat;pmsg;$callertype;dtmf:2;menu;$claimmenu;dtmf:2;menu;$xferline2;pmsg;$claimmenu;dtmf:1;menu;$rejectmenu;dtmf:7;menu;$xferline2;pmsg;$rejectmenu;dtmf:6;menu;$nodrugndc;dtmf:1;menu;$rejectmenu;dtmf:1;menu;$notcovered;dtmf:1;menu;$rejectmenu;dtmf:7;menu;$
5. greeting-1;pmsg;$repeat;pmsg;$callertype;dtmf:2;menu;$claimmenu;dtmf:2;menu;$xferline2;pmsg;$claimmenu;dtmf:1;menu;$rejectmenu;dtmf:7;menu;$xferline2;pmsg;$rejectmenu;dtmf:6;menu;$nodrugndc;dtmf:1;menu;$rejectmenu;dtmf:1;menu;$notcovered;dtmf:1;menu;$rejectmenu;dtmf:7;menu;$rejectmenu;dtmf:6;menu;$nodrugndc;dtmf:1;menu;$
輸出包含在單個DTMF所有選項呼叫流程是worng。任何輸入都會對您有所幫助。