




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、門戶 JUnit 開發(fā)流程 說明1:單元測試的入門知識3:請配置好 perties 中的uesserver 地址和 perties 中的 iserver,aserver,snsserv址,要保證各 url 和接口指向的地址可用hbserver,forumserver 地4:新建測試類時(shí),注意包路徑和類名稱的格式com.test 這個(gè)是基本路徑 datasource 表示是數(shù)據(jù)源(還有 action) portaluser 這個(gè)是子路徑(同類名)如果類中包含很多方法,需要針對不同的方法, 分別寫測試類,類名可為 methodTest(例如:5:代碼注釋經(jīng)過一系列debug,ues 門戶跑juni
2、t 用例時(shí),最好注釋掉 2 處代碼:(涉及 2 個(gè)類)1:CachedFactory 中的init 方法中的2:BaseHttpTools 中的sendHttpRequestByHttpCnt 方法內(nèi)部:和6:項(xiàng)目工程的路徑,請盡量不要包含中文。否則初始化配置文件會報(bào)錯(cuò)2.2 數(shù)據(jù)源的單元測試一:新建測試類設(shè)置junit 相關(guān)選中要測試的方法得到測試類繼承JUnit 基類(這個(gè)基類是專門為門戶寫的保證環(huán)境可以運(yùn)行的類)并設(shè)置當(dāng)前請求的request 和用戶信息當(dāng)前測試方法編寫1:查看該數(shù)據(jù)源方法主要調(diào)用的接口2:針對該接口寫測試樁3:最后一般是斷言結(jié)束。4:若數(shù)據(jù)源包。參,則需要寫多個(gè)測試方法
3、。執(zhí)行test:查看結(jié)果:2.3 Action 的單元測試一:以 AddBlackListAction 為例,創(chuàng)建 test 類,并繼承 BaseJunitTest 基類二:查看 action 內(nèi)部調(diào)用的接口,并結(jié)合 action 最后的返回,得到不同的場景,然后創(chuàng)建不同的測試樁,test 不同的結(jié)果比如 AddBlackListAction 中,有 2 種結(jié)果,分別為跳轉(zhuǎn)到成功頁面和失敗頁面。對應(yīng)的是snsserver 接口 addBlackUser 的成功和失敗。所以測試方法需要寫 2 個(gè)(如果失敗的場景有具體的細(xì)分,比如接口的不同的異常碼,這時(shí)就需要的測試方法)注意:1:如果action
4、 內(nèi)部調(diào)用的接口為多個(gè)的話,就要組合不同的場景進(jìn)試。2:action 的測試并非固定的,需要根據(jù) action 內(nèi)部的邏輯然后選用最合適的測試方法。1:成功的接口返回2:失敗的接口返回測試方法-成功場景:(可以在方法名后面在場景標(biāo)識:成功 or 失敗 or 接口異常碼)測試方法-失敗場景執(zhí)行結(jié)果:2.4 包含 DSF 接口的調(diào)用的單元測試1:查看代碼可以看到,dsf 接口的調(diào)用,主要通過是:DSFserverAction 中的recordAction方法。這個(gè)方法內(nèi)部有對測試樁的處理,所以涉及 dsf 接口的調(diào)用,junit 使用測試樁。2:繼承BaseJunitTest,并寫測試邏輯3:注意
5、 dsf 接口測試樁的 url 配置,包含 2 部分:一個(gè)是對response 的設(shè)置:(服務(wù)名.接口名.class) setSnsServerUrl(paymentServi rofile.class,.getDirectPaymentAccountPcom.jaguar.cgyment.response.GetDirectPaymentAccountProfileRsp);一個(gè)是 url 的設(shè)置:(服務(wù)名.接口名. erface)setSnsServerUrl(paymentServi rofile.erface,.getDirectPaymentAccountP4:測試樁:);5:查看運(yùn)
6、行結(jié)果控制臺:3:遺留問題和建議:1:沒有啟動memcache 相關(guān)2:由于門戶的數(shù)據(jù)源方法較多,建議測試類名后+版本號+ 區(qū)分。 (見準(zhǔn)備工作 2.1.4)3:有時(shí)測試時(shí)間會比較長,經(jīng)查看發(fā)現(xiàn)是卡在 Class.forName4:會不自覺的啟動定時(shí)任務(wù),消耗內(nèi)存-需要注釋部分代碼5:暫時(shí)沒 dsf 接口的測試樣例 (已補(bǔ)充 dsf 接口調(diào)用樣例,見 2.4)6:日志暫時(shí)沒有打印到控制臺7:snsserver 接口調(diào)用,在一個(gè)測試過程中,一個(gè)接口只能寫一個(gè)測試樁,不能針對一個(gè)接 口寫多個(gè)測試樁(代碼中對URL 固定了)-如果修復(fù)這個(gè)問題,需要改動代碼(也可以不改動代碼)7:snsserver
7、和 dsf 接口模擬測試樁的時(shí)候,一個(gè)接口只能寫 一個(gè)測試樁(代碼中寫死了,會在 url 后面加上方法名),如果想解決,看下面的解決方案(4.4 和 4.5)8:一個(gè)潛在的死循環(huán)風(fēng)險(xiǎn):在調(diào)用 http 接口時(shí),會埋點(diǎn)日志相關(guān)(判斷埋點(diǎn)日志開關(guān)是否打開),但是埋點(diǎn)日志開關(guān)是門戶參數(shù),也會調(diào)用接口,這樣就導(dǎo)致了死循環(huán)的風(fēng)險(xiǎn)。(代碼測試中發(fā)現(xiàn)循環(huán)了300 次后就取到值了,代碼發(fā)現(xiàn)是由于緩存配置的maxThread=300,達(dá)到 300 后,會取默認(rèn)值,然后設(shè)置到緩存中)-解決這個(gè)問題,需要注釋掉埋點(diǎn)日志的代碼(http 接口調(diào)用中的 2 處)4:開發(fā)過程中遇到的問題以及解決方案:1:JDK 版本問題
8、。請使用JDK1.8 版本,否則報(bào)錯(cuò)2:如果不識別test 目錄下的java 類,需要添加路徑3:加載緩存配置時(shí),會啟動定時(shí)任務(wù)(共 20 個(gè)),這段代碼需要注釋掉4:關(guān)于 snsserver 接口調(diào)用問題對于snsserver 接口調(diào)用,根據(jù)接口名稱獲取接口調(diào)用地址,代碼是這樣的:由于最后返回的結(jié)果在 url 的基礎(chǔ)上追加了path,舉例:setSnsServerUrl(addBlackUser, );這 樣 根 據(jù) 上 面 的 方 法 , 針 對 addBlackUser 這 個(gè) 接 口 獲 取的 url 為可以通過: setSnsServerUrl(addBlackUser, )這樣的話
9、,無需改動代碼,但是,測試樁的接口名稱的規(guī)范就變動了。5:dsf 模擬接口測試樁,也存在和上面 4 一樣的問題:所以,需要: setSnsServerUrl(paymentServi rofile.class,.getDirectPaymentAccountPcom.jaguar.cgyment.response.GetDirectPaymentAccountProfileRsp);setSnsServerUrl(paymentServi.getDirectPaymentAccountProfile. erface,);最理想的情況是:setSnsServerUrl(addBlackUser,
10、 addBlackUser_1);所以,想要達(dá)到理想結(jié)果,需要改動 getApiUrl 這個(gè)方法。這樣會造成代碼污染。修改后的代碼6:關(guān)于埋點(diǎn)日志引起的死循環(huán)問題啟動初始化緩存和 dataload 時(shí)(CachedFactory.init()執(zhí)行時(shí)),當(dāng)Index=47 時(shí),進(jìn)入到 DBDtaLoader 時(shí),會卡 3 秒鐘左右。進(jìn)一步發(fā)現(xiàn)是通過反射創(chuàng)建 MonthlyTiketDataLoader這個(gè)類的時(shí)候,在獲取其靜態(tài)不可改變的屬性: LOADER_NUMBER (門戶參數(shù) book.monthly.ticket)引起的。更進(jìn)一步發(fā)現(xiàn),獲取門戶參數(shù),最終是通過 GENERALINFOCACHE 的 dataload 調(diào)用接口獲取的,而調(diào)用接,會判斷埋點(diǎn)日志的開關(guān)是否打開,這個(gè)埋點(diǎn)日志開關(guān),同樣也是門戶參數(shù)(buried_po _switch)。就這樣,引起了(偽)死循環(huán)。幸好的是:GENERALINFOCACHE 緩存配置下面有這個(gè)配置:300。在 根 據(jù) 緩 存 名 稱 獲 取 獲 取 value 時(shí) , Refresha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海邊防護(hù)欄施工組織計(jì)劃方案
- 城市小學(xué)校本課程開發(fā)計(jì)劃
- 以弗魯姆期望理論為鑰開啟初中生思想品德課興趣之門
- 以審美體驗(yàn)為核奏響中小學(xué)音樂欣賞教學(xué)新樂章
- 保險(xiǎn)公司總務(wù)處資料歸檔計(jì)劃
- 幼兒園后勤管理崗位職責(zé)
- 2025年“書香校園”創(chuàng)新閱讀競賽方案計(jì)劃
- 石油天然氣工程投標(biāo)質(zhì)量保證及售后服務(wù)計(jì)劃
- 外貿(mào)企業(yè)疫情防控措施提升
- 浙江省桐鄉(xiāng)市第一中學(xué)2025年高二下化學(xué)期末綜合測試模擬試題含解析
- 2024年中國中式養(yǎng)生水行業(yè)發(fā)展趨勢洞察報(bào)告
- (完整版)自由泳教案
- 《困境兒童風(fēng)險(xiǎn)評估規(guī)范》
- 國開2024年《機(jī)械設(shè)計(jì)基礎(chǔ)》形考任務(wù)1-4答案
- CJT121-2000 再生樹脂復(fù)合材料檢查井蓋
- 生物的分子進(jìn)化和分子遺傳學(xué)
- 北京小型實(shí)驗(yàn)室建設(shè)計(jì)劃書
- 高校大型儀器設(shè)備利用評價(jià)研究-以華南農(nóng)業(yè)大學(xué)為例的中期報(bào)告
- 鋼結(jié)構(gòu)橋梁的設(shè)計(jì)與建造:鋼結(jié)構(gòu)橋梁的設(shè)計(jì)與施工要點(diǎn)與技術(shù)
- 中醫(yī)四大經(jīng)典備考刷題庫匯總(800題)
- 外科護(hù)理學(xué)課程說課課件
評論
0/150
提交評論