国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

銀行軟件測試:基于互聯(lián)網(wǎng)金融平臺的測試框架設(shè)計(jì)與分析

0
分享至

目前互聯(lián)網(wǎng)金融火的一塌糊涂,基于互聯(lián)網(wǎng)金融平臺的自動化測試的項(xiàng)目也是如火如荼的進(jìn)行。筆者手頭上負(fù)責(zé)一個p2p項(xiàng)目的測試框架開發(fā),因此如何設(shè)計(jì)一套有效的測試框架也成為工作所需和互相交流測試經(jīng)驗(yàn)的必須。

這個網(wǎng)站的后臺主要是php和java, 也就是說,一些基礎(chǔ)的服務(wù),如充值提現(xiàn),投標(biāo)起息還款,是采用spring mvc的框架來寫的,然后php來調(diào)用java的API,java平臺通過intercepter將php 傳遞過來的http請求映射到對應(yīng)的controller,controller再通過map映射到對應(yīng)的服務(wù)和實(shí)現(xiàn)。

簡單來說網(wǎng)站框架就類似如下:

網(wǎng)站一些基本的業(yè)務(wù)如注冊登錄,用戶中心,投資、紅包等等由用戶前臺觸發(fā)php調(diào)用,一些活動、紅包、禮品券等等由后臺觸發(fā)php調(diào)用,充值提現(xiàn)投資起息還款由java平臺實(shí)現(xiàn)。

基于這樣的平臺的自動化測試框架選型的時候,筆者考慮過以下幾種:

一種是采用基于selenium,集成thinkphp的框架來寫。主要的原理就是利用selenium的firefox插件來錄制,頁面上的html元素和javascript腳本,然后做2次封裝將這些錄取到的元素和js封裝成一個個的標(biāo)準(zhǔn)對象,保存到標(biāo)準(zhǔn)對象庫,然后再添加一些數(shù)據(jù)庫的數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)清理函數(shù),以及數(shù)據(jù)庫增刪改查語句。

然后在引擎腳本中,引用和調(diào)用這些對象的方法,類似如edit,type等等,然后就在頁面跳轉(zhuǎn)的時候加上馭循環(huán)和一些判斷,檢測頁面元素的值是否存在,或者是檢測一些方法返回值,或者是采用斷言來處理數(shù)據(jù)庫查詢到的結(jié)果和頁面上返回的結(jié)果做匹對,可以在以selenium為基本的框架的時候,引入thinkPHP或者YII框架加快開發(fā)腳本速度。

另外一種是采用QTP方式來使用,其基本原理也和采用selenium原理大同小異,唯一的差別就是QTP提供了一個很好和強(qiáng)大的基本類庫,以及一個很好的對象識別機(jī)制obeject Spy,QTP的基本類庫里面基本什么都有,java,.net, web,乃至于dephi……

在識別對象的時候可以直接通過java里面的類來映射,也可以直接用web相關(guān)類庫里面的類,甚至是windows平臺類……QTP提供了多種識別方式以幫助定位對象,這樣只用修改少量的對象屬性,在回放腳本和編輯核心代碼的時候,就可以起到事半功倍的效果,但是QTP也有缺點(diǎn),就是對于Js的處理不方便,還有就是時刻需要啟動QTP,而不能和一些開源測試框架特別是java開源項(xiàng)目,來實(shí)現(xiàn)自動部署測試用例和自動打包的集成。

ruby +watir 的原理和selenium也是類似,也是一種基于WEB GUI的自動化測試框架,筆者研究甚少,也就不多言了。

但是由于p2p行業(yè)的特性,這些基于web的自動化測試框架有很多不適合的地方,跟投資充值提現(xiàn)相關(guān)的這些相關(guān)的功能,比較在乎的不僅僅是頁面上的一些元素功能的顯示,更關(guān)心的是這個數(shù)據(jù)的正確性。

如果采用基于GUI的方式做自動化測試,個人感覺針對頁面元素的識別和校驗(yàn)往往并不能反映數(shù)據(jù)正確性,而在處理頁面元素異常的時候,也往往無法針對復(fù)雜業(yè)務(wù)邏輯和數(shù)據(jù)做較強(qiáng)的處理和效益,而且GUI是模擬人工處理,在執(zhí)行效率上面,也是效果較差,而且如果出現(xiàn)某個頁面元素?zé)o法識別或者異常,有可能中斷整個頁面的處理,在分析代碼覆蓋率的時候,基于web的方式也不是那么容易分析。

目前的這個項(xiàng)目,java向PHP平臺提供的主要是基于HTTP協(xié)議的restful應(yīng)用,之所以采用restful,而不用webservice來處理傳輸數(shù)據(jù)相關(guān),是因?yàn)閣ebservice即便是采用json而不是xml來處理傳輸數(shù)據(jù),相比較restful也顯得較重,json還需要加密解密解析、序列化什么的,而在 restful 里面直接就可以通過 http 請求對資源進(jìn)行操作。

因此筆者覺得還是從controller層直接進(jìn)行接口測試比較直接有效,又考慮到 spring框架里面提供了mock http請求的方法,而web UI的正確性相對于后臺業(yè)務(wù)數(shù)據(jù)正確性的優(yōu)先級就沒有那么高了,而spring的測試框架里面雖然可以通過斷言controller層返回的ModleAndView對象校驗(yàn)controller的正確性,即通過接口測試來效益結(jié)果,但是如果controller層后面的對象 太多的話,一旦出現(xiàn)問題也不便于排錯。

因此基本的測試框架思路就是采用spring mvc提供的mock restful的工具類,然后引入斷言機(jī)制和數(shù)據(jù)庫處理,來逐個controller分析業(yè)務(wù)邏輯的正確性和數(shù)據(jù)正確性。而sping MVC本身也提供了一套測試框架,可以通過服務(wù)端測試和客戶端測試分別來測試。

服務(wù)端測試在使用spring mvc測試框架之前,可能采取類似如下代碼:

@Test

public void serverSample() {

MockHttpServletRequest request = new MockHttpServletRequest();

ModelAndView mav = new sampleController.function(parameters);

ModelAndViewAssert.assertViewName(mav, user/view);

ModelAndViewAssert.assertModelAttributeAvailable(mv, user);

采用服務(wù)器端測試后,可以采用如下兩種方法:

standalone:

public class ServerTest {

@Autowired

private MockMvc mockMvc;

@Before

public void init() {

SampleController sample = new SampleController();

mockMvc = MockMvcBuilders.standaloneSetup(SampleController).build();

? 集成:

public class ServerTest {

@Autowired

private WebApplicationContext wac;

private MockMvc mockMvc;

@Before

public void init() {

mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();

? 測試:

@Test

public void testSample() throws Exception {

MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get(/user/1))

.andExpect(MockMvcResultMatchers.view().name(user/view))

.andExpect(MockMvcResultMatchers.model().attributeExists(user))

.andDo(MockMvcResultHandlers.print())

.andReturn();

Assert.assertNotNull(result.getModelAndView().getModel().get(user));

以上是采用spring MVC的服務(wù)端測試方法,至于客戶端則有幾種方法,

1.通過jetty啟動容器,真實(shí)映射到controller層實(shí)現(xiàn);

2.使用spring boot測試

3.使用mock service server測試,第三種方式基本上屬于使用resttemplate來測試客戶端比較好的方法;

即先通過MockRestServiceServer創(chuàng)建RestTemplate的Mock Server,然后添加客戶端請求斷言,判斷客戶端請求的斷言是否正確,3、添加服務(wù)端響應(yīng),檢查服務(wù)器端相應(yīng)是否正確。

客戶端相關(guān)代碼在網(wǎng)絡(luò)上也有很多資源,因此也就不再贅敘,這里主要是提供一種基于spring mvc框架和基于restful應(yīng)用如何測試controller層的思想。

最后:在我的V :atstudy-js,可以費(fèi)領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
阿隆索下課后 維尼修斯當(dāng)大腿:5場6球!皇馬開啟續(xù)約談判

阿隆索下課后 維尼修斯當(dāng)大腿:5場6球!皇馬開啟續(xù)約談判

葉青足球世界
2026-03-01 15:52:26
3名醫(yī)藥代表穿白大褂陪診時被刑偵部門當(dāng)場帶走!

3名醫(yī)藥代表穿白大褂陪診時被刑偵部門當(dāng)場帶走!

醫(yī)脈圈
2026-03-01 11:10:37
世預(yù)賽-日本男籃力克韓國穩(wěn)居小組第一 霍金森24+7李賢重28+11

世預(yù)賽-日本男籃力克韓國穩(wěn)居小組第一 霍金森24+7李賢重28+11

醉臥浮生
2026-03-01 14:54:49
4-1大勝!1-0絕殺!西甲最新積分榜:巴薩甩開皇馬,馬競反超黃潛

4-1大勝!1-0絕殺!西甲最新積分榜:巴薩甩開皇馬,馬競反超黃潛

萬花筒體育球球
2026-03-01 07:07:53
“以為是六個博士,結(jié)果是六個送外賣的!”六個兒子征婚視頻火了

“以為是六個博士,結(jié)果是六個送外賣的!”六個兒子征婚視頻火了

阿凱銷售場
2026-03-01 01:46:42
可惜!《人民的名義》里的她,早已離世而非退休享福

可惜!《人民的名義》里的她,早已離世而非退休享福

TVB的四小花
2026-02-27 12:38:14
狂吹!名宿力挺利物浦王牌:未來世界第一!

狂吹!名宿力挺利物浦王牌:未來世界第一!

奶蓋熊本熊
2026-03-02 05:06:17
沒想到,伊朗副總統(tǒng)宣布接管戰(zhàn)時政府,總統(tǒng)佩澤希齊揚(yáng)下落不明?

沒想到,伊朗副總統(tǒng)宣布接管戰(zhàn)時政府,總統(tǒng)佩澤希齊揚(yáng)下落不明?

井普椿的獨(dú)白
2026-03-01 23:30:27
“00后”陳某某被押赴刑場 執(zhí)行死刑

“00后”陳某某被押赴刑場 執(zhí)行死刑

閃電新聞
2026-02-07 16:53:35
國家為什么要在當(dāng)下這個節(jié)點(diǎn)提出共同富裕?

國家為什么要在當(dāng)下這個節(jié)點(diǎn)提出共同富裕?

流蘇晚晴
2026-01-28 18:25:23
57歲周濤再傳喜訊,印證董卿婚姻言論

57歲周濤再傳喜訊,印證董卿婚姻言論

楓塵余往逝
2026-03-01 05:59:50
李茂全家迪拜度假被滯留,發(fā)文表示想回家,卻讓普通人直接破防了

李茂全家迪拜度假被滯留,發(fā)文表示想回家,卻讓普通人直接破防了

小椰的奶奶
2026-03-02 01:10:07
中國正在大量囤油,一度吞掉世界9成囤量,有什么大事要發(fā)生?

中國正在大量囤油,一度吞掉世界9成囤量,有什么大事要發(fā)生?

森羅萬象視頻
2026-02-23 21:13:07
第5波伊朗導(dǎo)彈雨殺到,美軍航母基地劇烈大爆炸:徹底攔不住了!

第5波伊朗導(dǎo)彈雨殺到,美軍航母基地劇烈大爆炸:徹底攔不住了!

青煙小先生
2026-03-01 14:27:37
女子假信佛與多位高僧發(fā)生不當(dāng)關(guān)系,秘密錄制5600段視頻。

女子假信佛與多位高僧發(fā)生不當(dāng)關(guān)系,秘密錄制5600段視頻。

特約前排觀眾
2026-02-09 00:05:05
被兒子當(dāng)眾吐槽后,張?zhí)m徹底蔫了!前幾天笑盈盈 如今滿眼都是委屈

被兒子當(dāng)眾吐槽后,張?zhí)m徹底蔫了!前幾天笑盈盈 如今滿眼都是委屈

阿廢冷眼觀察所
2026-03-02 01:14:08
已婚也逃不過!在愛潑斯坦的安排下,比爾蓋茨和安妮·海瑟薇會面

已婚也逃不過!在愛潑斯坦的安排下,比爾蓋茨和安妮·海瑟薇會面

你的雷達(dá)站
2026-02-23 23:10:17
美伊沖突引市場巨震,油價或歷史性飆升,未來48小時決定金價走勢,比特幣近15萬人爆倉

美伊沖突引市場巨震,油價或歷史性飆升,未來48小時決定金價走勢,比特幣近15萬人爆倉

21世紀(jì)經(jīng)濟(jì)報(bào)道
2026-02-28 23:56:17
6分鐘19個導(dǎo)彈連全軍覆沒,82架戰(zhàn)機(jī)被擊落,此戰(zhàn)給我們敲響警鐘

6分鐘19個導(dǎo)彈連全軍覆沒,82架戰(zhàn)機(jī)被擊落,此戰(zhàn)給我們敲響警鐘

混沌錄
2026-02-04 22:25:03
壞消息:海港超級杯三連??! 好消息:兩個進(jìn)球機(jī)器復(fù)出了!

壞消息:海港超級杯三連??! 好消息:兩個進(jìn)球機(jī)器復(fù)出了!

80后體育大蜀黍
2026-03-01 23:39:34
2026-03-02 05:48:49
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

榮耀發(fā)布機(jī)器人手機(jī)、折疊屏、人形機(jī)器人

頭條要聞

特朗普警告伊朗“不要報(bào)復(fù)” 伊朗外長回應(yīng)

頭條要聞

特朗普警告伊朗“不要報(bào)復(fù)” 伊朗外長回應(yīng)

體育要聞

火箭輸給熱火:烏度卡又輸斯波教練

娛樂要聞

黃景瑜 李雪健坐鎮(zhèn)!38集犯罪大劇來襲

財(cái)經(jīng)要聞

中東局勢升級 如何影響A股、黃金和原油

汽車要聞

理想汽車2月交付26421輛 歷史累計(jì)交付超159萬輛

態(tài)度原創(chuàng)

本地
房產(chǎn)
數(shù)碼
時尚
軍事航空

本地新聞

津南好·四時總相宜

房產(chǎn)要聞

濱江九小也來了!集齊海僑北+哈羅、寰島...江東教育要炸了!

數(shù)碼要聞

曝蘋果WWDC 26將推Core AI框架取代Core ML并公布多項(xiàng)AI功能

今年春天最流行的4件衛(wèi)衣,照著穿就很好看

軍事要聞

伊朗前總統(tǒng)內(nèi)賈德遇襲身亡

無障礙瀏覽 進(jìn)入關(guān)懷版