3 回答

TA貢獻1752條經驗 獲得超4個贊
你完全沒了解QTP的Action和DataTable間的關系~還有QTP循環迭代設置與Action的關系
建議一:不使用QTP中的循環迭代,自定義For循環調用Action。
RunAction 登陸,oneiteration
For i = 1 to 2
RunAction 新增,oneiteration
Next
RunAction 退出,oneiteration
建議二:多多了解下QTP的Action和DataTable吧~
QTP有一個隱藏Action的,既Action0,既GlobalSheet對應的Action(補充:DataTable中每個Sheet都對應一個Action,GlobalSheet也不例外的),是QTP腳本執行的入口,相當于C語言里的main函數,很多人剛使用QTP,創建一個腳本就看到Action1,以為腳本是從Action1開始的,實際上Action1是在Action0中被調用了~
Action0中的腳本一般就一句話~
RunAction Action1,oneiteration
如果你把測試數據放在GlobalSheet中,然后Setting頁面又設置DataTable循環執行,那最后的結果就是使用GlobalSheet里的數據循環執行Action0,也就是所有腳本都循環。
你這種情況,解決方法就是把測試數據從GlobalSheet中移到“新增”Action的LocalSheet中,然后調用新增Action時循環迭代
如:RunAction 新增,alliterations
-------------以上兩個方法都可以解決你的問題,個人建議使用For循環,如果使用QTP的迭代循環,沒弄明白規律是容易出錯的。

TA貢獻1811條經驗 獲得超4個贊
設置多個Action。把新增那一步單獨放進一個Action中。添加Action從QTP工具中選擇Insert——Cell to New Action。給你提供這個思路。具體的方法自己查一下。
好吧,補充一下:比如說你想循環Action2,那么在Test Flow選中Action2點鼠標右鍵,選擇Action Call Properties,然后選擇Run on all rows,確定。
- 3 回答
- 0 關注
- 324 瀏覽
添加回答
舉報