一个网站自动化测试程序的设计与实现
CSDN博客不再經(jīng)常更新,更多優(yōu)質(zhì)文章請(qǐng)來(lái) 粉絲聯(lián)盟網(wǎng) FansUnion.cn! (FansUnion)
代碼
下載地址:http://download.csdn.net/detail/fansunion/5018357(免積分)
???
代碼亮點(diǎn):可讀性很好,注釋詳盡
背景
?????? 工作中,在維護(hù)一個(gè)項(xiàng)目。幾個(gè)月前開(kāi)始了 后臺(tái)Java網(wǎng)站的重構(gòu)。
??
重構(gòu)的過(guò)程 需要不斷去 運(yùn)行網(wǎng)站,然后不斷去測(cè)試。其中,最常見(jiàn)的
問(wèn)題是 服務(wù)器內(nèi)部錯(cuò)誤 即 500錯(cuò)誤。只要不出現(xiàn)500,一般來(lái)說(shuō),程序的業(yè)務(wù)不會(huì)出錯(cuò)。
????? 此外,期間還要不斷地去 完成新的功能,修復(fù)出現(xiàn)的Bug,而后臺(tái)Java網(wǎng)站具體開(kāi)發(fā)人員幾乎就我一個(gè)。
無(wú)限制的測(cè)試工作,重復(fù)且無(wú)聊。是可忍,孰不可忍?
目標(biāo)
??
????? ?寫(xiě)一個(gè) 自動(dòng)化測(cè)試的程序。自動(dòng)發(fā)送相關(guān)請(qǐng)求到網(wǎng)站,把請(qǐng)求的結(jié)果和執(zhí)行時(shí)間等信息,作為報(bào)表展現(xiàn)出來(lái)。
?通過(guò)報(bào)表就可以發(fā)現(xiàn),服務(wù)器內(nèi)部錯(cuò)誤(500),頁(yè)面未找到錯(cuò)誤(404),哪些請(qǐng)求相對(duì)比較耗時(shí)。
???
?????? 重復(fù)的事情自動(dòng)化,減輕工作“壓力”,提高工作效率。
???
流程
???? ?1.把項(xiàng)目中需要訪問(wèn)的URL 記錄在配置文件中。
????? 2.讀取配置文件。
????? 3.訪問(wèn)每個(gè)URL。
????? 4.生成報(bào)表并查看測(cè)試結(jié)果。
設(shè)計(jì)
??
?? 1.配置文件的設(shè)計(jì)
????? conf文件下是所有的配置信息。
????? 每一個(gè)文件夾代表一個(gè)獨(dú)立的網(wǎng)站,比如conf目錄下 有 user和fans2個(gè)文件夾,就代表有2個(gè)網(wǎng)站需要分別訪問(wèn)測(cè)試。
?
???? ?一個(gè)網(wǎng)站的配置信息,分為 website_core.properties和 website_url_*.properties。
??
?website_url_*.properties專門放置一個(gè)模塊的url。
??
?? 2.讀取配置文件
???? 自定義一個(gè) 配置文件讀取器,讀取并解析配置信息。
??
?? 3.發(fā)送請(qǐng)求并保存結(jié)果
???? 使用Apache HttpClient執(zhí)行請(qǐng)求,然后保存每個(gè)請(qǐng)求的執(zhí)行結(jié)果到 集合中。
??
?? 4.生成報(bào)表?
???? ApachePOI 生成Excel2007(.xlsx)報(bào)表,每個(gè)sheet對(duì)應(yīng)一個(gè)網(wǎng)站或者子系統(tǒng)。
實(shí)現(xiàn)
?? 語(yǔ)言:Java
?? 工具:Apache HttpClient,Apache POI
截圖
??? 項(xiàng)目結(jié)構(gòu)??
?
??
遇到的問(wèn)題
1. 200 OK 不一定就 請(qǐng)求成功。
?? 服務(wù)器內(nèi)部對(duì)每個(gè)請(qǐng)求都進(jìn)行了Session檢查,未登錄或登錄失敗或未保持會(huì)話,都會(huì)跳轉(zhuǎn)到“登錄頁(yè)面”,此時(shí)也是200 OK。
?
?? 因此,需要 先登錄,并保存當(dāng)前會(huì)話。
2. 保持會(huì)話的方法。
?? 登錄成功后,獲取Cookie信息,之后的請(qǐng)求每次都帶上Cookie。
?
3. 根據(jù)執(zhí)行的操作,一個(gè)鏈接可以分為2大類:
?? 查詢與非查詢(增加-刪除-修改)。
??
?? 查詢請(qǐng)求大多有默認(rèn)參數(shù),大多可以不帶參數(shù),而非查詢請(qǐng)求一般需要帶參數(shù)。
??
?? 因此,非查詢請(qǐng)求并不能很好地進(jìn)行測(cè)試。
????
V1.0不足與V1.1改進(jìn)
1.需要手動(dòng)配置 URL。當(dāng)URL過(guò)多時(shí),顯得比較麻煩。
? 改進(jìn):可以合并類似的或者有規(guī)律的URL。
2.不能很好地支持帶參數(shù)的請(qǐng)求。
? 改進(jìn):可以將請(qǐng)求參數(shù)和URL分開(kāi)配置,一個(gè)URL對(duì)應(yīng)多個(gè)參數(shù)配置。
?
3.請(qǐng)求方法使用POST方法。
? 改進(jìn):增加請(qǐng)求方法的配置。
4.單線程順序執(zhí)行每個(gè)請(qǐng)求,效率不夠高。
? 開(kāi)發(fā)過(guò)程中,可能需要盡快地執(zhí)行請(qǐng)求,看到報(bào)表。
?
? 改進(jìn):增加配置,實(shí)現(xiàn)2種模式。
? 第1種,盡快執(zhí)行,適合開(kāi)發(fā)過(guò)程中。
? 第2種,按照一定的周期執(zhí)行,適合診斷和發(fā)現(xiàn)線上的問(wèn)題。
?
5.報(bào)表信息不夠詳盡,還存在不準(zhǔn)確的地方。
? 改進(jìn):增加字段,改進(jìn)不準(zhǔn)確的地方。
??????? 增加統(tǒng)計(jì)功能。
6.會(huì)話的保持。一個(gè)網(wǎng)站只有1個(gè)賬號(hào)登錄,之后的請(qǐng)求都在同一個(gè)會(huì)話中。
? 改進(jìn):增加多個(gè)會(huì)話,作用域小的可以覆蓋大的。
?
7.配置信息的驗(yàn)證不足。
? 改進(jìn):待細(xì)化。
結(jié)束語(yǔ)
?? 代碼重復(fù)是軟件開(kāi)發(fā)的大敵!
?? 測(cè)試重復(fù)又何嘗不是呢?
???
致謝
?? 第1版問(wèn)題多多,望海涵!
??
?? 謝謝閱讀!歡迎交流!
?
轉(zhuǎn)載于:https://www.cnblogs.com/qitian1/archive/2013/01/21/6463790.html
總結(jié)
以上是生活随笔為你收集整理的一个网站自动化测试程序的设计与实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cross-domain policy
- 下一篇: CAD迷你看图2019破解版|CAD迷你