關(guān)于部署和平時(shí)測試的總結(jié)

一、基于阿里云部署

(一)先了解整個(gè)阿里云部署的整體框架,系統(tǒng)知識,如服務(wù)器ECS,負(fù)載均衡SLB,路由器,交換機(jī),redis,云數(shù)據(jù)庫等

負(fù)載均衡,英文名稱為Load Balance,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行(我理解是:負(fù)載均衡會(huì)根據(jù)服務(wù)器的各種情況,隨機(jī)把請求給一個(gè)服務(wù)器)

redis:我的理解是相當(dāng)于一個(gè)中介。比如app發(fā)送一個(gè)請求,先去redis看下有無這個(gè)結(jié)果數(shù)據(jù)。如果有的話 ,就直接取redis的數(shù)據(jù)回來,不會(huì)再訪問數(shù)據(jù)庫了。因?yàn)閿?shù)據(jù)庫是保存在硬盤上,讀取數(shù)據(jù)庫數(shù)據(jù)比較慢,所以用了redis,還可以加快訪問速度

(二)做出基本方案,類似如下

負(fù)載均衡可以對應(yīng)多個(gè)端口號,服務(wù)器中可以同時(shí)部署多個(gè)項(xiàng)目(只要端口不沖突就行)


(三)購買服務(wù)器,負(fù)載均衡等

1、購買服務(wù)器ECS

到阿里云購買云服務(wù)器 ECS。選了最便宜的套餐:CPU: 1核 / 內(nèi)存: 1024 MB / 帶寬:1Mbps / 操作系統(tǒng): CentOS 7.0購買環(huán)節(jié)會(huì)設(shè)置 ssh 登陸密碼,記下密碼。登陸到阿里云,查看購買的實(shí)例。注意公網(wǎng) IP,下一步會(huì)用到

2、購買負(fù)載均衡SLB,另外可根據(jù)項(xiàng)目情況,決定是否購買云數(shù)據(jù)庫,或者自己安裝等

(四)登錄服務(wù)器ECS

打開 Terminal, 輸入 ssh root@公網(wǎng)IP 登陸服務(wù)器。首次登陸會(huì)詢問公鑰,yes 即可。關(guān)于 ssh 登陸,具體可以看SSH原理與運(yùn)用http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 這篇文章


(五)環(huán)境部署

1、上傳文件到Linux云主機(jī):

本地系統(tǒng)為Windows系統(tǒng),可以使用命令安裝 yum -y install lrzsz,運(yùn)行 rz ,會(huì)自動(dòng)打開一個(gè)Windows窗口,選擇你要上傳到服務(wù)器的文件,點(diǎn)擊確定。ls 看一下,這個(gè)文件已經(jīng)在你的目錄下


本地系統(tǒng)為mac系統(tǒng),打開終端,使用命令scp或者ftp

服務(wù)器端口號為默認(rèn)的22:scp 文件名稱 root@ip地址:

服務(wù)器端口號非22:scp -p 端口號 文件名稱 root@ip地址:

2、部署redis

可參考Redis的部署和啟動(dòng) https://yq.aliyun.com/articles/38257

3、部署JDK+tomcat+jenkis等

可參考百人計(jì)劃成員的文章阿里云服務(wù)器環(huán)境部署JDK+Tomcat+Jenkins+Maven+Python+Git http://www.itdecent.cn/p/0e67b4545d08

4、根據(jù)方案配置端口

1)如果是tomcat,在cd tomcat/conf目錄下的文件server.xml中配置端

2)如果是java等代碼,則在代碼里面的配置文件中配置即可(跟開發(fā)了解具體的配置)

5、在阿里云配置SLB端口

6、配置路由等

7、啟動(dòng)項(xiàng)目腳本配置(因?yàn)橛袝r(shí)候開發(fā)給的是開發(fā)環(huán)境的配置,我們要改為測試環(huán)境的才可以),也是我們說的發(fā)布測試環(huán)境的項(xiàng)目


二、測試與數(shù)據(jù)庫,linux的簡單打交道

因?yàn)?9%的軟件,處理的數(shù)據(jù)最終是需要落地,到數(shù)據(jù)庫或者文件里的,我們必須知道是數(shù)據(jù)本身的問題,還是處理數(shù)據(jù)的過程出了問題。在測試過程中會(huì)出現(xiàn)一些諸如session過期、數(shù)值校驗(yàn)、參數(shù)傳遞錯(cuò)誤等現(xiàn)象,知道開發(fā)的規(guī)則,是更好掌握測試結(jié)果的充分條件。

所以,建議測試都能拿到測試環(huán)境的賬號等,其實(shí)最嚴(yán)格的來說,開發(fā)是不能動(dòng)測試環(huán)境的,測試環(huán)境由測試人員掌管,但是看公司部門和測試人員的具體情況

(二)測試與數(shù)據(jù)庫的簡單打交道

1、測試通過查看表結(jié)構(gòu),快速定位問題

如發(fā)布評論功能,需求定義可以輸入文字200個(gè),但最后你發(fā)布成功之后,只顯示了100個(gè)字,剩余的100字不見了。這時(shí)候直接跟開發(fā)說?

====先查看表結(jié)構(gòu),看是否是字段的長度設(shè)置的不夠,如下圖,升級表中,升級內(nèi)容的長度是100,是絕對不夠的


2、驗(yàn)證數(shù)據(jù)的正確性

對數(shù)據(jù)庫的數(shù)據(jù)正確性的檢查,如時(shí)間的檢查。

比如一個(gè)活動(dòng),結(jié)束時(shí)間,你填的是2017/7/1.但是存到數(shù)據(jù)庫中是2017/7/1 00:00:00,這就代表你在2017/7/1號已經(jīng)看到這個(gè)活動(dòng)了=========正確是要存為2017/7/1 23:59:59

3、查看linux下的日志和數(shù)據(jù)庫結(jié)合起來看的一個(gè)例子

你在APP中發(fā)現(xiàn)有2條重復(fù)記錄,這時(shí)候你去數(shù)據(jù)庫查,數(shù)據(jù)庫中只有1條記錄,這時(shí)候能看日志的,就去看下日志返回了幾條記錄

用tail -f 日志文件名稱 | grep '關(guān)鍵詞1'|grep '關(guān)鍵詞2'

具體關(guān)鍵詞,可以平時(shí)多看接口文檔

4、通過日志和數(shù)據(jù)庫進(jìn)行測試

如配置了排序規(guī)則,通過關(guān)鍵字查看(tail -f ?a.log|grep '關(guān)鍵字a'),看到后臺返回的排序是[431, 433, 449, 434, 442, 443, 444, 432]

此時(shí)根據(jù)需求去查看正確的排序


(二)測試與服務(wù)器linux的簡單打交道

1、部署項(xiàng)目,有tomcat,java的;查看項(xiàng)目是否啟動(dòng)(***為需要查找的進(jìn)程名稱)ps -ef|grep ***

2、查看日志,尤其是報(bào)錯(cuò)日志(如內(nèi)部錯(cuò)誤等):tail -f error.log;也可以查看前端上傳的數(shù)據(jù),后端返回的數(shù)據(jù)是否有錯(cuò)

如有腳本沒有跑,會(huì)報(bào)錯(cuò):

3、發(fā)布測試環(huán)境的項(xiàng)目,一般是直接發(fā)布腳本,腳本是以.sh結(jié)尾的,發(fā)布操作,直接./腳本文件

現(xiàn)在有一種是直接發(fā)布腳本,腳本中會(huì)把最新代碼pull下來,這個(gè)方式是快,而且簡單,只要開發(fā)提交了代碼到相對于的分支即可,但是沒那么安全

一種是打成war包或者rar包,通過解壓之后,配置好部署文件再發(fā)布,這個(gè)方式是比較安全,但是比較麻煩,而且屬于非集成,失誤會(huì)比較多,而且如果是頻繁更新發(fā)布的話,會(huì)比較痛苦

最后的總結(jié):

我的習(xí)慣是:

1、一個(gè)新項(xiàng)目,我會(huì)拿到測試環(huán)境的數(shù)據(jù)庫,服務(wù)器等賬號。因?yàn)槲覀儠簳r(shí)沒有做數(shù)據(jù)庫的文檔,所有會(huì)要求開發(fā)給我大概講下數(shù)據(jù)庫的各種表(這個(gè)有文檔的話,就不用了,可以自己主動(dòng)去了解)

2、對于復(fù)雜功能,要求開發(fā)補(bǔ)充具體的邏輯文檔或者口頭給測試人員說明,防止漏測(這個(gè)覺得適合比較小的公司吧)

3、對于數(shù)據(jù)的更改要慎重,提前跟開發(fā)溝通,免得是更改數(shù)據(jù)導(dǎo)致的bug


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容