qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          QTP腳本—測試參數限制

           以前一直覺得自己沒有寫代碼的資質,太急于求成,以為一天就能寫好幾個功能,幾千行代碼,于是就沒耐心了,沒心情學下去了....但是最近發現其實寫代碼是一個漫長的過程,都是在修修改改中成長起來的。于是今天試著慢慢用QTP測下參數限制,雖然代碼量不多,其實也算不上編程,O(∩_∩)O哈哈~但也是個慢慢積累的過程。
            首先,我有一段登陸系統的測試模塊,可以把它設為可重用的,并且參數化必要的信息,比如登陸用戶名密碼等等,這些就不細說了??梢詤⒁姟禥TP自動化測試實踐》8.3節 Action測試輸入的參數化,調用過程見上一篇關于action的文章。
            現在我要測試參數的限制:
            第一步,必須要在當前項目下新建一個action,步驟如下:
            選擇Insert|Call to New Action:
            然后在彈出框中填寫新建action的name和description,可不可重用,以及新action的位置,這里我的參數檢查功能是在登陸模塊之后,所以選擇第一個At the end of the test
            第二步,既然2個action都是測試同一個軟件,可以重用它們的對象庫respositories,操作步驟是:
            先保存login這個action的對象庫,后綴是“.tsr",然后選擇Resources|Associate Respositories,選定剛剛保存的對象庫文件,然后下面的Available Action選擇login模塊,右邊的Associated Action選擇Test_Parameters模塊:
            于是,在測試參數的模塊中就可以直接使用login的對象庫了。 第三步,因為測試參數是一個繁雜的過程,有很多種組合方式,而且每個參數輸入框都要求輸入一遍,但是好在參數輸入框的規則都是一樣的,比如不能輸入符號,字母,負數,小數,空格等等,除此之外還有范圍限制,于是我就采用數據驅動測試的方法來做這個腳本。先寫好輸入參數的過程:
          Dialog("App(1.0.1.0)").WinEdit("MINS").Set ”1“
          Dialog("App(1.0.1.0)").WinEdit("MINX").Set ”1“
          Dialog("App(1.0.1.0)").WinEdit("MAXS").Set ”2“
          Dialog("App(1.0.1.0)").WinEdit("MAXX").Set ”2“
          Dialog("App(1.0.1.0)").WinEdit("IR").Set ”1“
          Dialog("App(1.0.1.0)").WinEdit("OR").Set ”2“
            然后根據數據驅動測試的步驟設置參數根據table中的值來輸入,詳情參見我博客《QTP:數據驅動測試》,Expert View的顯示如下:
          Dialog("App(1.0.1.0)").WinEdit("MINS").Set DataTable("minS", dtLocalSheet)
          Dialog("App(1.0.1.0)").WinEdit("MINX").Set DataTable("minX", dtLocalSheet)
          Dialog("App(1.0.1.0)").WinEdit("MAXS").Set DataTable("maxS", dtLocalSheet)
          Dialog("App(1.0.1.0)").WinEdit("MAXX").Set DataTable("maxX", dtLocalSheet)
          Dialog("App(1.0.1.0)").WinEdit("IR").Set DataTable("IR", dtLocalSheet)
          Dialog("App(1.0.1.0)").WinEdit("OR").Set DataTable("OR", dtLocalSheet)<br>Dialog("App(1.0.1.0)").WinButton("應用參數").Click    ' 點擊開始應用參數
            我設置了2種參數范圍邊界的數據,9種服務端會拒絕應用的參數組合,30種客戶端限制的參數類型組合。
            第四步,對測試結果進行判斷并顯示在QTP生成的測試報告中:
            開始我是這么寫的:
          If   Dialog("App(1.0.1.0)").Dialog("提示").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("提示").WinButton("應用參數成功-確定").Click    ' 應用成功
          reporter.ReportEvent micDone,"yes","前2個:可以應用成功"
          else
          reporter.ReportEvent micFail, "yes"," 前2個:服務端拒絕應用"
          End If
          If Dialog("App(1.0.1.0)").Dialog("錯誤").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("錯誤").WinButton("服務器不支持該參數-確定").Click
          reporter.ReportEvent micDone,"server no","中間9個:服務端拒絕應用"
          else
          reporter.ReportEvent micFail,"server no", "中間9個:服務端居然應用了"
          End If
          If  Dialog("App(1.0.1.0)").Dialog("警告").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("警告").WinButton("客戶端不支持該參數-確定").Click
          reporter.ReportEvent micDone,"client no","后30個:DTC拒絕應用"
          else
          reporter.ReportEvent micFail,"client no", "后30個:DTC居然應用了"
          End If
            運行之后發現,每一行參數的結果都有2個fail,因為我設置的三個主if是并列關系!符合其中一種情況之后,另外2種情況都會失敗。
            于是,我再寫成這樣的:
          If   Dialog("App(1.0.1.0)").Dialog("提示").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("提示").WinButton("應用參數成功-確定").Click    ' 應用成功
          reporter.ReportEvent micDone,"yes","前2個:可以應用成功"
          elseif Dialog("App(1.0.1.0)").Dialog("錯誤").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("錯誤").WinButton("服務器不支持該參數-確定").Click
          reporter.ReportEvent micDone,"server no","中間9個:服務端拒絕應用"
          elseif Dialog("App(1.0.1.0)").Dialog("警告").Exist(3) Then
          Dialog("App(1.0.1.0)").Dialog("警告").WinButton("客戶端不支持該參數-確定").Click
          reporter.ReportEvent micDone,"client no","后30個:客戶端拒絕應用"
          else
          reporter.ReportEvent micFail, "fail"," 結果跟預期不一致"
          End If
            現在如果全部測試通過,不會出現fail的情況,但是需要在測試報告中一層層點開,查看對于每個測試數據行的測試結果是不是符合以下描述:
            1.前2個:可以應用成功
            2.中間9個:服務端拒絕應用
            3.后30個:客戶端拒絕應用
            雖然上面的腳本避免了重復輸入41種數據,但是后期的結果查看還是一個艱辛的過程,不知道QTP有沒有把測試人員要求的結果描述統一到一個頁面來的功能呢,有待挖掘。

          posted on 2014-05-22 10:11 順其自然EVO 閱讀(380) 評論(0)  編輯  收藏 所屬分類: qtp

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桃源县| 鄯善县| 台南县| 谷城县| 临颍县| 郎溪县| 大田县| 田林县| 呼伦贝尔市| 炎陵县| 千阳县| 河西区| 文安县| 乌海市| 柳江县| 南雄市| 永和县| 阿勒泰市| 凤山市| 山阳县| 天峨县| 且末县| 南溪县| 达州市| 沅陵县| 南丹县| 乐清市| 扎囊县| 揭西县| 双辽市| 仁怀市| 将乐县| 康定县| 临汾市| 申扎县| 西贡区| 连江县| 长沙县| 志丹县| 石嘴山市| 杭锦后旗|