黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

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

系統(tǒng) 2054 0

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

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

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

?

任務(wù):

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

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

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

?

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

1.讀取用戶輸入

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

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

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

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

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

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

?

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

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

?

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

?

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

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

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

?

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

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

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

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

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

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

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

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

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

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

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

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

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

所有人還沒有成功從git上拿代碼,也沒有人成功執(zhí)行單元測試。。。。這個我進入team當天就幫大家搞定了,主要是其他所有人都沒用過git,也不了解python的單元測試框架怎么運行,當然對我們專門搞自動化測試的人來說,不管什么語言的單元測試框架,都是那么的相似。

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

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

?

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

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

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

2.迅速按照要求實現(xiàn)出至少一個我們要做的關(guān)鍵字,完成一種消息的收發(fā),并測試通過。然后這個代碼拿給其他人做參考,因為有的人真心不適合寫代碼,沒東西參考基本可以保證他們的模塊完不成。

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

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

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

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論