<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    QTP腳本—測試參數(shù)限制

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

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

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

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品一区二区三区免费视频| 精品久久久久久久久免费影院| 亚洲av无码专区国产乱码在线观看 | 婷婷综合缴情亚洲狠狠尤物| 久久精品成人免费国产片小草| 亚洲精品乱码久久久久久下载| 国产在线观看免费视频播放器| 成人黄网站片免费视频 | 日本在线免费观看| 亚洲国产精品日韩av不卡在线| 亚洲综合无码AV一区二区| 日本免费人成在线网站| 色多多免费视频观看区一区| 久久久久久亚洲精品| 又黄又大又爽免费视频| 最近中文字幕无免费| 一区二区三区免费视频观看| 亚洲一级毛片免观看| 亚洲色精品88色婷婷七月丁香 | 51在线视频免费观看视频| 疯狂做受xxxx高潮视频免费| 亚洲最新黄色网址| 在线亚洲精品福利网址导航| 成人午夜18免费看| 中国人xxxxx69免费视频| 精品乱子伦一区二区三区高清免费播放| 久久精品亚洲AV久久久无码 | 九九九精品视频免费| 亚洲一区二区三区91| 久久久久亚洲AV无码专区首| 亚洲国产成人久久笫一页| 成年女性特黄午夜视频免费看| 日本免费一区二区三区 | 中文字幕在亚洲第一在线| 成人毛片手机版免费看| 18禁黄网站禁片免费观看不卡| 男女拍拍拍免费视频网站| 男性gay黄免费网站| 亚洲国产精品成人AV在线| 亚洲人成人77777在线播放| 亚洲AV成人无码久久精品老人 |