日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

第一次編寫簡(jiǎn)單的中間件測(cè)試工具(1) - 記一次

系統(tǒng) 1872 0

去年11月,我加入了N記,緊接著進(jìn)入新員工訓(xùn)練營(yíng)。

開始一次簡(jiǎn)單的中間件測(cè)試工具編寫任務(wù)。

這次訓(xùn)練營(yíng)體驗(yàn)給我的感覺就是:大公司不愧是大公司,這回我終于可以安心學(xué)點(diǎn)核心技術(shù)了。

?

任務(wù):

這個(gè)訓(xùn)練營(yíng)有兩個(gè)任務(wù),一是熟悉這邊的敏捷開發(fā)流程;二是在訓(xùn)練營(yíng)里做一定的編碼,用python編寫一個(gè)測(cè)試工具(樁,stub)。

我們要做的這個(gè)工具,是用來(lái)測(cè)試我們一種通信設(shè)備(B)上運(yùn)行的程序(某種中間件),這個(gè)工具模擬另一種通信設(shè)備(A),發(fā)送一些按特定協(xié)議編碼的消息給另一種通信設(shè)備B,并能反編碼設(shè)備B返回的消息,也就是說(shuō)要測(cè)設(shè)備B上的程序在收到一些消息時(shí)能否做出正確的回應(yīng)。

設(shè)備B對(duì)于不同消息的不同回應(yīng)有一系列的業(yè)務(wù)場(chǎng)景,每種業(yè)務(wù)場(chǎng)景可能包含幾種正確的情況,幾種異常的情況。這些場(chǎng)景,類似于我們做黑盒手工測(cè)試時(shí)經(jīng)常看到的業(yè)務(wù)場(chǎng)景。

?

而我們的工具要做的事情,就是:

1.讀取用戶輸入

2.把用戶輸入組裝成待編碼的文本

3.對(duì)待編碼的文本以需求規(guī)定的協(xié)議進(jìn)行編碼,編碼成特定的由0101構(gòu)成的8位元組串,通常就是類似這樣:0101010111010000110101011010100 一大串大家肉眼看不懂的東東

4.讓我們工具跟指定的ip地址通過(guò)3次握手建立TCP鏈接

5.在建立好TCP鏈接后,通過(guò)發(fā)送/接收指定的登錄消息完成兩種設(shè)備在我們自定義的協(xié)議層面上的連接

6.把第3步編碼好的消息發(fā)到目標(biāo)ip,并且接收對(duì)方返回的消息,把收到的消息壓入消息隊(duì)列。最后從消息隊(duì)列中提出我們期望收到的反饋消息

7. 再把結(jié)果反饋給用戶。

?

整個(gè)過(guò)程,這么多步驟,以一定的規(guī)則分別封裝成robot關(guān)鍵字,以便自動(dòng)化測(cè)試組成員進(jìn)行調(diào)用。

所有以上這些步驟,均以python實(shí)現(xiàn)。

?

此外,還有附帶的單元測(cè)試腳本,也是必須的。

?

現(xiàn)有代碼大概三四千行的樣子,實(shí)現(xiàn)了兩種設(shè)備之間通信的模擬,我們這一期,除了要增加一些這兩種設(shè)備之間的消息類型和場(chǎng)景之外,還要實(shí)現(xiàn)第三種設(shè)備的模擬器。

當(dāng)然,第三種設(shè)備C和待測(cè)設(shè)備的通信B的通信,同樣遵循A和B的通信的那套協(xié)議和規(guī)則,只是客戶端和服務(wù)端的角色有所變化。

也就是說(shuō),A是B的服務(wù)端,B是A的客戶端。一個(gè)A可以和多個(gè)B同時(shí)通信。同時(shí)B又是C的服務(wù)端,C是B的客戶端。

?

有一個(gè)導(dǎo)師幫我們解答一些疑難問(wèn)題,幫了大忙了~

還有一份詳細(xì)定義了協(xié)議和消息場(chǎng)景的文檔也幫了不少忙。

就算這樣子,我們還是遇到了不小的困難:

1.是進(jìn)入這個(gè)訓(xùn)練營(yíng)的時(shí)間,大家是不同的,也就是說(shuō)我們按入職先后分別進(jìn)入了訓(xùn)練營(yíng),并且有的人會(huì)提前離開訓(xùn)練營(yíng)。

第一批人進(jìn)入之后有一周時(shí)間學(xué)習(xí)和熟悉python并聽一些其他各方面的培訓(xùn)課程。(技術(shù)、業(yè)務(wù)、流程)

然后又有一周時(shí)間學(xué)習(xí)和熟悉這個(gè)工具的現(xiàn)有代碼。

第二批人也就是我進(jìn)來(lái)之后已經(jīng)是整個(gè)流程的第三周,就是說(shuō)要開始真實(shí)寫代碼了。我基本上沒時(shí)間熟悉python和讀代碼。

而且這一周一開始,第一批人就要走掉3個(gè),他們基本不能參與寫代碼了

2.是訓(xùn)練營(yíng)成員的編程基礎(chǔ)大不相同。但基本都不熟悉python。

這個(gè)訓(xùn)練營(yíng)新員工里有開發(fā)也有測(cè)試,開發(fā)基本上都是C出身,測(cè)試都是黑盒出身。。。只有我是自動(dòng)化測(cè)試出身的還學(xué)了雜七雜八一大堆語(yǔ)言。

所以我的優(yōu)勢(shì)是我學(xué)的亂七八糟的語(yǔ)言多,基本上再學(xué)個(gè)python達(dá)到能寫這個(gè)工具的程度是用不了一兩天的。

但問(wèn)題是其他測(cè)試一開始基本寫不了代碼。而所有人在我進(jìn)入這個(gè)team的時(shí)間點(diǎn)上,還沒有搞明白整個(gè)工具的內(nèi)部邏輯。

大部分人仍是一頭霧水,兩個(gè)C程序員基本搞懂一兩個(gè)模塊。(按我的劃分一共4個(gè)模塊)

所有人還沒有成功從git上拿代碼,也沒有人成功執(zhí)行單元測(cè)試。。。。這個(gè)我進(jìn)入team當(dāng)天就幫大家搞定了,主要是其他所有人都沒用過(guò)git,也不了解python的單元測(cè)試框架怎么運(yùn)行,當(dāng)然對(duì)我們專門搞自動(dòng)化測(cè)試的人來(lái)說(shuō),不管什么語(yǔ)言的單元測(cè)試框架,都是那么的相似。

3.是我由于不是第一批進(jìn)入,沒有時(shí)間參加其他課程的學(xué)習(xí),但是我還必須參加其他課程的考試。。。

以及被安排了很多網(wǎng)上學(xué)習(xí)課程必須盡快完成。。。

?

按照我對(duì)自己的要求,我既然參加了這個(gè)訓(xùn)練營(yíng),那么這個(gè)小工具的代碼我必須讀完。讀完的標(biāo)準(zhǔn),我定的是:必須做到這東西就跟全部是我親手寫出來(lái)的一樣。(慚愧的是最后離開訓(xùn)練營(yíng),還沒做到百分百跟親手寫出來(lái)一樣,大概達(dá)成了95%吧,剩下5%是對(duì)按某協(xié)議規(guī)則編碼的第三方類庫(kù)的內(nèi)部原理還沒看過(guò))。不然如果我參加完訓(xùn)練營(yíng)回到team,team的人問(wèn)我學(xué)了什么,我怎么說(shuō)呢,脫產(chǎn)兩周去訓(xùn)練營(yíng)做工具,竟然還不能把一個(gè)三四千行的工具全部搞懂搞透,我不知道別人怎么看,首先我自己這關(guān)我也過(guò)不了。

于是我定下的學(xué)習(xí)重點(diǎn)就是:

1.迅速完成現(xiàn)有代碼的閱讀,運(yùn)行并調(diào)試所有的單元測(cè)試,理解所有第三方庫(kù)的調(diào)用和使用他們的原因,理解所有這個(gè)工具的底層原理。

2.迅速按照要求實(shí)現(xiàn)出至少一個(gè)我們要做的關(guān)鍵字,完成一種消息的收發(fā),并測(cè)試通過(guò)。然后這個(gè)代碼拿給其他人做參考,因?yàn)橛械娜苏嫘牟贿m合寫代碼,沒東西參考基本可以保證他們的模塊完不成。

3.迅速完成所有我拿下來(lái)的關(guān)鍵字編寫任務(wù)。然后看誰(shuí)的來(lái)不及就給他搞定。并多給大家做code review。

總之雖然我沒不是scrum master或其他什么特殊角色,但我直覺知道這個(gè)sprint我不出大力氣的話,一定失敗。然后我估計(jì)了一下如果全部代碼由我一個(gè)人完成,差不多也能做完。不過(guò)還是給大家一點(diǎn)空間,讓大家自己做比較符合上面的期望。

下一篇分享讀代碼的個(gè)人心得、我對(duì)敏捷的理解、關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試、git基礎(chǔ)、等知識(shí)是如何應(yīng)用在這個(gè)簡(jiǎn)單的中間件測(cè)試工具上。

第一次編寫簡(jiǎn)單的中間件測(cè)試工具(1) - 記一次新員工訓(xùn)練營(yíng)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 黄浦区| 婺源县| 嘉义县| 邮箱| 垦利县| 山阳县| 仁寿县| 东辽县| 精河县| 沾化县| 乐平市| 和龙市| 武乡县| 肇庆市| 尤溪县| 镇远县| 洞口县| 元朗区| 章丘市| 南川市| 深州市| 攀枝花市| 文水县| 高邮市| 永新县| 中卫市| 共和县| 武清区| 阜平县| 芜湖市| 吉林市| 莆田市| 南皮县| 措勤县| 蒙山县| 济阳县| 富蕴县| 龙川县| 会昌县| 宜宾县| 林甸县|