qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          基于數(shù)據(jù)驅(qū)動(dòng)的接口測(cè)試框架設(shè)計(jì)

           首先簡(jiǎn)要介紹一下我們的系統(tǒng)。我們整個(gè)系統(tǒng)中,可視化的應(yīng)用(web,APP)都是基于后端的saasapi。我們的saasapi采用rest風(fēng)格,采用http協(xié)議,以json作為數(shù)據(jù)載體。所以,對(duì)后端的api接口進(jìn)行測(cè)試很有必要。
            用到的技術(shù)包括:maven、junit4,json開(kāi)發(fā)包、hudson、jdbc等等。
            1.項(xiàng)目目錄結(jié)構(gòu)(采用maven)
            2.用例組織和規(guī)則約束
            用例組織
            例如:trackSegListWithTime(軌跡分段)、segTrackData(軌跡點(diǎn)顯示)接口屬于我的車模塊。那么就在src/test/java源文件夾下面建立一個(gè)我的車模塊包c(diǎn)om.cpsdna.saasapi.test.vehicle,然后新建測(cè)試接口的類:    TrackSegListWithTimeTest.java、 SegTrackDataTest.java
            命名規(guī)則
            測(cè)試類命名規(guī)則:接口名稱+Test,例如SegTrackDataTest.java(軌跡點(diǎn)顯示接口的測(cè)試類)
            方法命名規(guī)則:test+方法意義,例如testSegTrackDataWithNoObjId(以沒(méi)有objId參數(shù)方式測(cè)試segTrackData接口 )
            3.測(cè)試方法步驟
            1.聲明參數(shù)變量
            2.從數(shù)據(jù)庫(kù)讀取該參數(shù)變量的值
            3.組裝發(fā)送的json報(bào)文,把參數(shù)變量加入其中
            4.向服務(wù)器端發(fā)送json
            5.接收從服務(wù)器端返回的信息(json或者其它)
            6.通過(guò)json開(kāi)發(fā)包(json-lib,gson)解析從服務(wù)器返回的json
            7.添加斷言(預(yù)期的結(jié)果和解析的實(shí)際結(jié)果是否一致)
            下面給一個(gè)實(shí)例:
           4.數(shù)據(jù)驅(qū)動(dòng)
            1.為什么要用數(shù)據(jù)驅(qū)動(dòng)?
            測(cè)試數(shù)據(jù)(參數(shù)變量)和測(cè)試行為(邏輯代碼)分離。這些對(duì)于用例的健壯性,復(fù)用性都是至關(guān)重要的。
            2.為什么存在數(shù)據(jù)庫(kù)?
            易于管理,存儲(chǔ)方便。(后期我還建一個(gè)用例數(shù)據(jù)管理的web平臺(tái))
            5.如何保證取到所想要的參數(shù)值?
            類名+方法名+參數(shù)名,3個(gè)組合必須系統(tǒng)唯一,以此來(lái)保證調(diào)用正確的參數(shù)
            SELECT PARAM_VALUE FROM params WHERE CLASS_NAME = '"+className+"' AND METHOD_NAME='"+methodName+"' AND PARAM_NAME='"+paramName+"' AND `STATUS` = '0'
            6.測(cè)試數(shù)據(jù)管理
            1.通過(guò)數(shù)據(jù)庫(kù)軟件直接操作(存在誤操作風(fēng)險(xiǎn))
            2.通過(guò)開(kāi)發(fā)的測(cè)試數(shù)據(jù)管理平臺(tái)管理
            7.持續(xù)集成
            對(duì)于龐大的測(cè)試用例,一個(gè)個(gè)執(zhí)行或者通過(guò)測(cè)試套件執(zhí)行,很明顯不方便。我們通過(guò)和hudson集成,把寫(xiě)好的代碼提交到svn后,maven和hudson配合,對(duì)接口測(cè)試用例進(jìn)行持續(xù)集成。這樣也好得到測(cè)試報(bào)告。
            上面就是我對(duì)于基于數(shù)據(jù)驅(qū)動(dòng)的接口測(cè)試框架設(shè)計(jì)的一些實(shí)踐。比較大概的寫(xiě)出來(lái),具體還有很多很多的細(xì)節(jié),以及在這開(kāi)發(fā)之中遇到的困難,如果有機(jī)會(huì)再慢慢道來(lái)。平凡的技術(shù)做踏實(shí)的事情。

          posted on 2014-07-08 13:59 順其自然EVO 閱讀(325) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2014年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 丹巴县| 和静县| 奉新县| 怀化市| 茶陵县| 兰州市| 鄂温| 贡山| 水城县| 富阳市| 云阳县| 裕民县| 广水市| 宜良县| 本溪市| 阿鲁科尔沁旗| 庆城县| 宜城市| 定日县| 商南县| 古丈县| 阳曲县| 阿拉善左旗| 黄石市| 建宁县| 达拉特旗| 昌吉市| 建始县| 彩票| 陇南市| 德兴市| 林甸县| 通化县| 建水县| 筠连县| 惠水县| 西平县| 喜德县| 龙山县| 永清县| 聂荣县|