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

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

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

0
分享至

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

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

簡(jiǎn)單來(lái)說(shuō)網(wǎng)站框架就類似如下:

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

基于這樣的平臺(tái)的自動(dòng)化測(cè)試框架選型的時(shí)候,筆者考慮過(guò)以下幾種:

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

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

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

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

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

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

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

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

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

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

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

@Test

public void serverSample() {

MockHttpServletRequest request = new MockHttpServletRequest();

ModelAndView mav = new sampleController.function(parameters);

ModelAndViewAssert.assertViewName(mav, user/view);

ModelAndViewAssert.assertModelAttributeAvailable(mv, user);

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

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();

? 測(cè)試:

@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ù)端測(cè)試方法,至于客戶端則有幾種方法,

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

2.使用spring boot測(cè)試

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

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(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)推薦
外媒稱哈梅內(nèi)伊在其工作場(chǎng)所遇害,為何沒(méi)躲避?為何能精準(zhǔn)定位?

外媒稱哈梅內(nèi)伊在其工作場(chǎng)所遇害,為何沒(méi)躲避?為何能精準(zhǔn)定位?

之乎者也小魚(yú)兒
2026-03-01 11:44:00
大滿貫不和諧一幕:王曼昱2-4孫穎莎 比輸球可怕是觀眾一邊倒支持

大滿貫不和諧一幕:王曼昱2-4孫穎莎 比輸球可怕是觀眾一邊倒支持

侃球熊弟
2026-03-01 20:27:26
死了白死?俄方絕口不提貝加爾湖慘劇賠償 中日美此類案例都有賠款

死了白死?俄方絕口不提貝加爾湖慘劇賠償 中日美此類案例都有賠款

勁爆體壇
2026-02-28 18:30:13
美國(guó)2個(gè)月內(nèi)悍然對(duì)兩國(guó)領(lǐng)導(dǎo)人發(fā)動(dòng)襲擊,繼委內(nèi)瑞拉、伊朗之后,下一個(gè)會(huì)是誰(shuí)?專家:有可能是古巴

美國(guó)2個(gè)月內(nèi)悍然對(duì)兩國(guó)領(lǐng)導(dǎo)人發(fā)動(dòng)襲擊,繼委內(nèi)瑞拉、伊朗之后,下一個(gè)會(huì)是誰(shuí)?專家:有可能是古巴

極目新聞
2026-03-01 15:07:54
回顧:浙江幼師幼兒園潛伏22年,警察曝光真實(shí)身份,家長(zhǎng)后怕不已

回顧:浙江幼師幼兒園潛伏22年,警察曝光真實(shí)身份,家長(zhǎng)后怕不已

談史論天地
2026-03-01 09:49:38
哈梅內(nèi)伊:舊時(shí)代的最后一個(gè)獨(dú)裁者

哈梅內(nèi)伊:舊時(shí)代的最后一個(gè)獨(dú)裁者

黔有虎
2026-03-01 19:08:14
哈梅內(nèi)伊被精準(zhǔn)斬首,為何伊朗人民載歌載舞?

哈梅內(nèi)伊被精準(zhǔn)斬首,為何伊朗人民載歌載舞?

歷史總在押韻
2026-03-01 11:59:19
哈梅內(nèi)伊死后,有伊朗人分析:現(xiàn)在還沒(méi)到慶祝的時(shí)候

哈梅內(nèi)伊死后,有伊朗人分析:現(xiàn)在還沒(méi)到慶祝的時(shí)候

小蘿卜絲
2026-03-01 09:56:11
高興太早,中國(guó)男籃大勝中國(guó)臺(tái)北隊(duì),卻收壞消息,打日本隊(duì)要小心

高興太早,中國(guó)男籃大勝中國(guó)臺(tái)北隊(duì),卻收壞消息,打日本隊(duì)要小心

宗介說(shuō)體育
2026-03-01 18:19:54
特朗普沒(méi)想到:哈梅內(nèi)伊雖然死了,但臨終前的一項(xiàng)安排會(huì)這么厲害

特朗普沒(méi)想到:哈梅內(nèi)伊雖然死了,但臨終前的一項(xiàng)安排會(huì)這么厲害

健身狂人
2026-03-01 13:53:47
暴雪藍(lán)色預(yù)警:山西、河北、山東、河南等地部分地區(qū)有暴雪

暴雪藍(lán)色預(yù)警:山西、河北、山東、河南等地部分地區(qū)有暴雪

界面新聞
2026-03-01 10:11:27
中方呼吁美以立即停止對(duì)伊軍事行動(dòng)

中方呼吁美以立即停止對(duì)伊軍事行動(dòng)

看看新聞Knews
2026-03-01 12:31:25
復(fù)旦神級(jí)教授“預(yù)言”:美國(guó)不敢打伊朗,國(guó)力嚴(yán)重下降難支撐全球霸權(quán)

復(fù)旦神級(jí)教授“預(yù)言”:美國(guó)不敢打伊朗,國(guó)力嚴(yán)重下降難支撐全球霸權(quán)

回旋鏢
2026-03-01 21:20:11
伊朗宣布戰(zhàn)果!

伊朗宣布戰(zhàn)果!

占豪
2026-03-01 00:34:55
34歲武磊再留憾!時(shí)隔288天復(fù)出難救海港,生涯仍無(wú)緣超級(jí)杯冠軍

34歲武磊再留憾!時(shí)隔288天復(fù)出難救海港,生涯仍無(wú)緣超級(jí)杯冠軍

我愛(ài)英超
2026-03-01 17:36:55
學(xué)費(fèi)太貴!一家長(zhǎng)哭訴繳費(fèi)11000多,網(wǎng)友:上私立高中就不要抱怨

學(xué)費(fèi)太貴!一家長(zhǎng)哭訴繳費(fèi)11000多,網(wǎng)友:上私立高中就不要抱怨

火山詩(shī)話
2026-03-01 12:06:34
哈梅內(nèi)伊之死和伊朗性史

哈梅內(nèi)伊之死和伊朗性史

哲空空
2026-03-01 11:14:17
哈梅內(nèi)伊的死,將了特朗普的軍!哈梅內(nèi)伊最后“陽(yáng)謀”,有多毒?

哈梅內(nèi)伊的死,將了特朗普的軍!哈梅內(nèi)伊最后“陽(yáng)謀”,有多毒?

軍機(jī)Talk
2026-03-01 14:05:59
特朗普,“殺死哈梅內(nèi)伊就走”

特朗普,“殺死哈梅內(nèi)伊就走”

中國(guó)新聞周刊
2026-03-01 20:27:20
哈梅內(nèi)伊將就美以襲擊發(fā)表講話

哈梅內(nèi)伊將就美以襲擊發(fā)表講話

財(cái)聯(lián)社
2026-02-28 23:05:07
2026-03-01 22:23:00
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

小米超跑概念車全球首秀!殺入頂豪俱樂(lè)部

頭條要聞

全球1/5"石油動(dòng)脈"被切斷 海運(yùn)行業(yè)遭遇急性運(yùn)營(yíng)危機(jī)

頭條要聞

全球1/5"石油動(dòng)脈"被切斷 海運(yùn)行業(yè)遭遇急性運(yùn)營(yíng)危機(jī)

體育要聞

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

娛樂(lè)要聞

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

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

中東局勢(shì)升級(jí) 如何影響A股、黃金和原油

汽車要聞

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

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

數(shù)碼
游戲
本地
房產(chǎn)
公開(kāi)課

數(shù)碼要聞

英特爾至強(qiáng)600系列處理器規(guī)格揭秘,最高睿頻4.8GHz!

LCK決賽:GEN橫掃BFX!達(dá)成在2026LCK杯大場(chǎng)全勝奪冠成就

本地新聞

津南好·四時(shí)總相宜

房產(chǎn)要聞

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

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

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