測(cè)試工程師的面試總結(jié)(測(cè)試面試技術(shù)與項(xiàng)目重點(diǎn))_第1頁
測(cè)試工程師的面試總結(jié)(測(cè)試面試技術(shù)與項(xiàng)目重點(diǎn))_第2頁
測(cè)試工程師的面試總結(jié)(測(cè)試面試技術(shù)與項(xiàng)目重點(diǎn))_第3頁
測(cè)試工程師的面試總結(jié)(測(cè)試面試技術(shù)與項(xiàng)目重點(diǎn))_第4頁
測(cè)試工程師的面試總結(jié)(測(cè)試面試技術(shù)與項(xiàng)目重點(diǎn))_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

測(cè)試的面試重點(diǎn)分為兩大部分:技術(shù),項(xiàng)目

擴(kuò)充一下:技術(shù)的一些注意點(diǎn),項(xiàng)目上的一些處理方式(有些還會(huì)有一些溝通上的小技

巧),可能不會(huì)寫的特別詳細(xì),但點(diǎn)我都會(huì)點(diǎn)到

黑盒測(cè)試方法(可能會(huì)問等價(jià)類的分類,等價(jià)類和邊界值是最重要的:

1、等價(jià)類劃分:

(有效等價(jià)類:對(duì)于程序規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合)

(無效等價(jià)類:對(duì)于程序規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合)

2、邊界值分析方法

3、因果圖方法

4、正交實(shí)驗(yàn)設(shè)計(jì)方法

5、功能圖分析方法

6、錯(cuò)誤推測(cè)法

7、需求文檔轉(zhuǎn)化法

8、隨機(jī)測(cè)試

9、對(duì)象屬性分析法

二.白盒測(cè)試方法(可以選擇性記憶.…不知道會(huì)不會(huì)問):

1.語句覆蓋:就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一可執(zhí)行語句至少執(zhí)行

一次。

2.判定覆蓋:使設(shè)計(jì)的測(cè)試用例保證程序中每個(gè)判斷的每個(gè)取值分支至少經(jīng)歷一次。

3.條件覆蓋:條件覆蓋是指選擇足夠的測(cè)試用例,使得運(yùn)行這些測(cè)試用例時(shí),判定中每

個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次,但未必能覆蓋全部分支

4.判定條件覆蓋:判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所

有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(jié)果至少執(zhí)行,即要求各個(gè)判斷的

所有可能的條件取值組合至少執(zhí)行一次。

5.條件組合覆蓋:在白盒測(cè)試法中,選擇足夠的測(cè)試用例,使所有判定中各條件判斷結(jié)

果的所有組合至少出現(xiàn)一次,滿足這種覆蓋標(biāo)準(zhǔn)成為條件組合覆蓋。

6.路徑覆蓋:是每條可能執(zhí)行到的路徑至少執(zhí)行一次。

補(bǔ)充:

(1)語句覆蓋在所有的測(cè)試方法中是一種最弱的覆蓋。

(2)判定覆蓋和條件覆蓋比語句覆蓋強(qiáng),滿足判定/條件覆蓋標(biāo)準(zhǔn)的測(cè)試用例一定也滿

足判定覆蓋、條件覆蓋和語句覆蓋

(3)路徑覆蓋也是一種比較強(qiáng)的覆蓋,但未必考慮判定條件結(jié)果的組合,并不能代替

條件覆蓋和條件組合覆蓋。

三.TCP/IP分層協(xié)議(每層的協(xié)議要注意):

1.鏈路層(數(shù)據(jù)鏈路層/網(wǎng)絡(luò)接口層):包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序、計(jì)算機(jī)中對(duì)應(yīng)

的網(wǎng)絡(luò)接口卡

2.網(wǎng)絡(luò)層(互聯(lián)網(wǎng)層):處理分組在網(wǎng)絡(luò)中的活動(dòng),比如分組的選路。

3.運(yùn)輸層:主要為兩臺(tái)主機(jī)上的應(yīng)用提供端到端的通信。

4.應(yīng)用層:負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。

,和等

應(yīng)用層TelnetFTPe-mail

運(yùn)輸層|TCP和UDP

網(wǎng)絡(luò)層IP、ICMP和IGMP

鏈路層設(shè)備卵動(dòng)程序及接口卡

TCP和UDP的區(qū)別(網(wǎng)絡(luò)上的知識(shí)點(diǎn)):

1、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無連接的,即發(fā)送數(shù)據(jù)之前

不需要建立連接

2、TCP提供可靠的服務(wù)。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯(cuò),不丟失,不

重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付

3、TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)

文的UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很

有用,如IP電話,實(shí)時(shí)視頻會(huì)議等)

4、每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交

互通信

5、TCP首部開銷20字節(jié);UDP的首部開銷小,只有8個(gè)字節(jié)

6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道

四.TCP/IP三次握手,四次揮手(常問項(xiàng))

三次握手:

第一次握手(SYN=Lseq=x):

客戶端發(fā)送一個(gè)TCP的SYN標(biāo)志位置1的包,指明客戶端打算連接的服務(wù)器的端口,

以及初始序號(hào)X,保存在包頭的序列號(hào)(SequenceNumber)字段里。

第二次握手(SYN=1,ACK=1,seq=y,ACKnum=x+l):

服務(wù)器發(fā)回確認(rèn)包(ACK)應(yīng)答。即SYN標(biāo)志位和ACK標(biāo)志位均為1。服務(wù)器端選擇

自己的ISN序列號(hào),放在seq域里,同時(shí)將確認(rèn)序號(hào)(AcknowledgementNumber)設(shè)置為客

戶的ISN加1,即X+1。發(fā)送完畢后,服務(wù)器端進(jìn)入SYN_RCVD狀態(tài)。

第三次握手(ACK=1,ACKnum=y+l):

客戶端再次發(fā)送確認(rèn)包(ACK),SYN標(biāo)志位為0,ACK標(biāo)志位為1,并且把服務(wù)器發(fā)

來ACK的序號(hào)字段+1,放在確定字段中發(fā)送給對(duì)方,并且在數(shù)據(jù)段放寫ISN的+1。

發(fā)送完畢后,客戶端進(jìn)入ESTABLISHED狀態(tài),當(dāng)服務(wù)器端收到這個(gè)包時(shí),也進(jìn)入

ESTABLISHED狀態(tài),TCP握手結(jié)束,TCP連接建立完成

我的理解….:

A問B:你聽到了么,發(fā)確認(rèn)信息

B回答A:聽到了,告訴A它能接收到A的消息

A再回B:我能接收到你的消息,再發(fā)一次確認(rèn),然后建立連接

四次揮手:

state客戶端服務(wù)器state

第一次揮手(FIN=1,seq=x):

假設(shè)客戶端想要關(guān)閉連接,客戶端發(fā)送一個(gè)FIN標(biāo)志位置為1的包,表示自己已經(jīng)沒

有數(shù)據(jù)可以發(fā)送了,但是仍然可以接收數(shù)據(jù)。

發(fā)送完畢之后,客戶端進(jìn)入FIN_WAIT_1狀態(tài)。

第二次揮手(ACK=1,ACKnum=x+l):

服務(wù)器端確認(rèn)客戶端的FIN包,發(fā)送一個(gè)確認(rèn)包,表明自己接收到了客戶端關(guān)閉連接

的請(qǐng)求,但還沒有準(zhǔn)備好關(guān)閉連接。

發(fā)送完畢后,服務(wù)器端進(jìn)入CLOSE_WAIT狀態(tài),客戶端接收到這個(gè)確認(rèn)包之后進(jìn)入

FIN_WAIT_2狀態(tài),等待服務(wù)器端關(guān)閉連接。

第三次揮手(FIN=1,seq=y):

服務(wù)器端準(zhǔn)備好關(guān)閉連接時(shí),向客戶端發(fā)送結(jié)束連接請(qǐng)求,F(xiàn)IN置為1。

發(fā)送完畢后,服務(wù)器端進(jìn)入LAST_ACK狀態(tài),等待來自客戶端的最后一個(gè)ACK

第四次揮手(ACK=1,ACKnum=y+l):

客戶端接收到來自服務(wù)器的端的關(guān)閉請(qǐng)求,發(fā)送一個(gè)確認(rèn)包,并進(jìn)入TIME_WAIT狀態(tài),

等待可能出現(xiàn)的要重傳的ACK包。

服務(wù)器端接收到這個(gè)確認(rèn)包之后,關(guān)閉連接,進(jìn)入CLOSED狀態(tài)。

客戶端等待了某個(gè)固定時(shí)間(兩個(gè)最大段生命周期,2MSL,2MaximumSegment

Lifetime)之后,沒有收到服務(wù)器端的ACK,認(rèn)為服務(wù)器端已經(jīng)正常關(guān)閉連接,于是自己也

關(guān)閉連接,進(jìn)入CLOSED狀態(tài)。

為什么是三次,不是兩次或者四次(這個(gè)問題真的可能會(huì)被問到)

兩次握手并不能保證可靠性(B不確定A能收到自己的信息),四次握手又浪費(fèi)了效率

五.OSI七層模型(記一記應(yīng)用層,傳輸層,網(wǎng)絡(luò)層我覺得就可以了….)

0SI中的層功篇TCP/I喻議陳

應(yīng)用層文件傳輸,電子四件,文件服務(wù),擊擬終端TFTP.HTTP.SNMP.FTP.SMTP,DNS.RIP.Telnet

表示層批據(jù)格式化,代碼轉(zhuǎn)推,數(shù)據(jù)加密沒有協(xié)議

會(huì)話層解除或例立與別的接點(diǎn)的聯(lián)系漫育協(xié)議

傳輸層提典端對(duì)版州口TCP.UDP

網(wǎng)熊為戴旭送掾路由IP.ICMP.OSPF.BGP.IGMP.ARP.RARP

凝據(jù)鉞路層傳輸有地址的“以及錯(cuò)深檢刪功能SUP.CSUP.PPP.MTU.ARP.RARP

六.DNS(運(yùn)行在UDP協(xié)議上,端口53)

概念:dns是一個(gè)域名系統(tǒng),是萬維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)

庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串

七:http協(xié)議(細(xì)致的大家可以閱讀這一篇)

restful接口:

1.URI資源2.表現(xiàn):XML,HTML等格式3.狀態(tài)轉(zhuǎn)移:get,post等

HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)

答的標(biāo)準(zhǔn)(TCP),用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏

覽器更加高效,使網(wǎng)絡(luò)傳輸減少

HTTPS:是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版,即HTTP下加入

SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL。

HTTP和HTTPS區(qū)別:(這個(gè)還挺重要的,端口號(hào)稍微記一下)

1、https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。

2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)

議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是

443o

4、http的連接很簡(jiǎn)單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行力口

密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。

HTTP協(xié)議特點(diǎn):

1.支持客戶/服務(wù)器模式。

2.簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有

GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。由于HTTP協(xié)議簡(jiǎn)

單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。正在傳輸?shù)念愋陀蒀ontent-Type

(Content-Type是HTTP包中用來表示內(nèi)容類型的標(biāo)識(shí))加以標(biāo)記。

4.無連接:無連接的含義是限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完客戶的請(qǐng)求,

并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。

5.無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺

少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的

數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

HTTP原理:

1、客戶端連接到Web服務(wù)器

一個(gè)HTTP客戶端,通常是瀏覽器,與Web服務(wù)器的HTTP端口(默認(rèn)為80)建立一

個(gè)TCP套接字連接。

2、發(fā)送HTTP請(qǐng)求

通過TCP套接字,客戶端向Web服務(wù)器發(fā)送一個(gè)文本的請(qǐng)求報(bào)文,一個(gè)請(qǐng)求報(bào)文由請(qǐng)

求行、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù)4部分組成。

3、服務(wù)器接受請(qǐng)求并返回HTTP響應(yīng)

Web服務(wù)器解析請(qǐng)求,定位請(qǐng)求資源。服務(wù)器將資源復(fù)本寫到TCP套接字,由客戶端

讀取。一個(gè)響應(yīng)由狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)數(shù)據(jù)4部分組成。

4、釋放連接TCP連接

若connection模式為close,則服務(wù)器主動(dòng)關(guān)閉TCP連接,客戶端被動(dòng)關(guān)閉連接,釋放

TCP連接;若connection模式為keepalive,則該連接會(huì)保持一段時(shí)間,在該時(shí)間內(nèi)可以繼續(xù)

接收請(qǐng)求;

5、客戶端瀏覽器解析HTML內(nèi)容

客戶端瀏覽器首先解析狀態(tài)行,查看表明請(qǐng)求是否成功的狀態(tài)代碼。然后解析每一個(gè)響

應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應(yīng)

數(shù)據(jù)HTML,根據(jù)HTML的語法對(duì)其進(jìn)行格式化,并在瀏覽器窗口中顯示。

GET和POST請(qǐng)求的區(qū)另tJ(個(gè)人感覺這個(gè)是要了解的):

1.GET提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,

如EditPosts.aspx?name=testl&id=123456.POST方法是把提交的數(shù)據(jù)放在HTTP包的Body

中.

2.GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對(duì)URL的長(zhǎng)度有限制),而POST方法提交

的數(shù)據(jù)沒有限制.

3.GET方式需要使用Request.QueryString來取得變量的值,而POST方式通過

Request.Form來獲取變量的值。

4.GET方式提交數(shù)據(jù),會(huì)帶來安全問題,比如一個(gè)登錄頁面,通過GET方式提交數(shù)據(jù)

時(shí),用戶名和密碼將出現(xiàn)在URL上,如果頁面可以被緩存或者其他人可以訪問這臺(tái)機(jī)器,

就可以從歷史記錄獲得該用戶的賬號(hào)和密碼.

狀態(tài)碼:

Ixx:指示信息-表示請(qǐng)求已接收,繼續(xù)處理

2xx:成功-表示請(qǐng)求已被成功接收、理解、接受

3xx:重定向-要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作

4xx:客戶端錯(cuò)誤-請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)

5xx:服務(wù)器端錯(cuò)誤-服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

常見狀態(tài)碼:

200OK//客戶端請(qǐng)求成功

400BadRequest〃客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解

401Unauthorized〃請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起

使用

403Forbidden//服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)

404NotFound//請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL

500InternalServerError//服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤

503ServerUnavailable〃服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常

八:TestNG(這個(gè)我自己用過,感興趣也可以看看)testng傳參方式(parameter在testng.xml

或者通過dataprovider)

運(yùn)行方式:LRunas2.testng.xml

按網(wǎng)頁序執(zhí)行:preserve-order=true

忽略測(cè)試:@Test(enable=false)

分組測(cè)試:@Test(groups=..)

依賴測(cè)試:@Test(dependsonmethods=...)

結(jié)果在oup-put,H志級(jí)別是verbose

并發(fā)運(yùn)行用例:paraUel=methods

九:appium(可以稍稍了解,和selenium異曲同工,有些點(diǎn)我覺得是UI自動(dòng)化想通的)

特點(diǎn)(為什么流行我覺得):

跨平臺(tái),nativehybridwebview(H5)

跨設(shè)備,androidiOS

跨app,可以在多個(gè)app之間交互

不依賴APP開源代碼(保留意見,androidUiautomator對(duì)H5的支持需要代碼支持,這里

不細(xì)說)

支持SeleniumWebDriver/SeleniumGrid

跨語言,javapythonrubynodejs

OpenSource原理:

Android

1.左邊的WebDriverscript是我們的selenium測(cè)試腳本(其實(shí)就是測(cè)試代碼)

2.中間是起的Appium的服務(wù),Appium在這邊起了一個(gè)Server(4723端口),跟selenium

Webdriver測(cè)試框架類似,Appium支支持標(biāo)準(zhǔn)的WebDriverJSONWireProtocol。在這里提供

了一套web服務(wù),AppiumServer接收webdriver標(biāo)準(zhǔn)請(qǐng)求,解析請(qǐng)求內(nèi)容,調(diào)用用對(duì)應(yīng)的

框架響應(yīng)操作。

如:腳本發(fā)送一個(gè)點(diǎn)擊按鈕的請(qǐng)求給appiumserver,appiumserver會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給中間

件Bootstrap.jar,它是用java寫的,安裝在手機(jī)上.Bootstrap接收appium的命令(4724端

口),最終通過調(diào)用用UiAutomator的命令來實(shí)現(xiàn)。4.最后執(zhí)行行的結(jié)果由Bootstrap返回給

appiumserver5.另外,appium還用至!J了chromedriver來支支持基于H5(webview)的測(cè)試。

IOS:

?Cappium_

J

3Instruments

-

Ocontroller

N

U

8

J

E

J

Q

q

BInstruments

Mcommand

1.左邊的WebDriverscript是selenium測(cè)試腳本

2.中間是起的Appium的服務(wù),Appium在這邊起了-■個(gè)Server(4723端口),跟

seleniumWebdriver測(cè)試框架類似,Appium支支持標(biāo)準(zhǔn)的WebDriverJSONWireProtocol。

3.在這里提供了一套web服務(wù),AppiumServer接收webdriver標(biāo)準(zhǔn)請(qǐng)求,解析請(qǐng)求內(nèi)

容,調(diào)用用對(duì)應(yīng)的框架響應(yīng)操作。

如:腳本發(fā)送一個(gè)點(diǎn)擊按鈕的請(qǐng)求給appiumserver,appiumserver調(diào)用instruments.js啟

動(dòng)socketserver,同時(shí)分出■個(gè)子子進(jìn)程運(yùn)彳亍行instruments.app,將bootstrap.js(一

個(gè)UIAutomation腳本)注入入到device用用于和外界進(jìn)行行交互。

4.對(duì)于H5的操作,運(yùn)用用了iOSwebkitdebugproxy來實(shí)現(xiàn)Android和IOS的區(qū)別我

覺得就是bootstrap.jar和bootstrap.js去分另嗎區(qū)動(dòng)uiautomator和uiautomation,新版本的Appium

已經(jīng)支持uiautomator2了,IOS支持XCUItest定位元素方法(By后面那些東西,ID可以唯一

定位):webdriver提供的用By定位元素find_element(By.ID,Hkw")

find_element(By.NAME,nwdn)

find_element(By.CLASS_NAME,ns_iptn)find_element(By.TAG_NAME,"input")

find_element(By.LINK_TEXT,un新聞”)find_element(By.PARTIAL_LINK_TEXT,u"新”)

find_element(By.XPATH,'7/*[@class='bgs_btn']H)find_element(By.CSS_SELECTOR,"span.bg

s_btn_wr>input#su”)find_element()方法只用于定位元素。它需要兩個(gè)參數(shù),第一個(gè)參數(shù)是定

位方式,這個(gè)由By提供;另第二個(gè)參數(shù)是定位的值。

+.linux常用命令(我覺得比較可能問的多的)

Cd徹?fù)Q目錄

當(dāng)前目錄和上層目錄:

主目錄:~/

查看當(dāng)前路徑:pwd

清屏:clear

退出當(dāng)前命令:ctrl+c徹底退出

軟鏈接:In-sslinksource

查找自己所在的終端信息:whoami

查看當(dāng)前誰在使用該主機(jī):who

Is-1(也可以直接11):列出長(zhǎng)數(shù)據(jù)串,包含文件的屬性與權(quán)限數(shù)據(jù)等

Is-a:列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)

find-name文件名:找匹配的文件名

mkdir:創(chuàng)建指定的名稱的目錄

cp-afilelfile2:連同文件的所有特性把文件filel復(fù)制成文件file2

cpfilelfile2file3dir:把文件filel>file2>file3復(fù)制到目錄dir中

mvfilelfile2file3dir:把文件filel>file2>file3移動(dòng)到目錄dir中

mvfilelfile2:把文件filel重命名為file2

rm-frdir:強(qiáng)制刪除目錄dir中的所有文件

ps-eflgrepjava:找出所有java進(jìn)程

kill-9進(jìn)程號(hào):徹底殺死某個(gè)進(jìn)程

chmod改變文件的權(quán)限

語法:chmod[options]modefiles

多數(shù)用三位八進(jìn)制數(shù)字的形式來表示權(quán)限,第一位指定屬主的權(quán)限,第二位指定組權(quán)限,

第三位指定其他用戶的權(quán)限,每位通過4(讀)、2(寫)、1(執(zhí)行)三種數(shù)值的和來確定權(quán)限。如

6(4+2)代表有讀寫權(quán),7(4+2+1)有讀、寫和執(zhí)行的權(quán)限

chmodu+xfile:給file的屬主增加執(zhí)行權(quán)限

vi:文件名#編輯方式查看,可修改

cat:文件名#顯示全部文件內(nèi)容

more:文件名#分頁顯示文件內(nèi)容

less:文件名#與more相似,更好的是可以往前翻頁

head:文件名#僅查看頭部,還可以指定行數(shù)

tail-f20160921.1ogs:查看正在改變的日志文件

tail-3000catalina.out:查看倒數(shù)前3000行的數(shù)據(jù)

history:查看用過的命令列表

df-hl:查看磁盤使用空間

which:只能查可執(zhí)行文件

whereis:只能查二進(jìn)制文件、說明文檔,源文件等

du:顯示目錄或文件的大小

df:顯示每個(gè)〈文件〉所在的文件系統(tǒng)的信息,默認(rèn)是顯示所有文件系統(tǒng)

df命令獲得真正的文件系統(tǒng)數(shù)據(jù),而du命令只查看文件系統(tǒng)的部分情況

bashshell的內(nèi)置命令let可以進(jìn)行整型數(shù)的數(shù)學(xué)運(yùn)算

free:顯示系統(tǒng)當(dāng)前內(nèi)存的使用情況,包括已用內(nèi)存、可用內(nèi)存和交換內(nèi)存的情況

top:顯示當(dāng)前系統(tǒng)中占用資源最多的一些進(jìn)程

netstat-anplgrepport:查看某端口是否被占用

chown-R:更改某個(gè)文件或目錄的屬主和屬組

Shift+PageUp:翻頁

清空文件:echo"">filename或者cat/dev/null>a.txt或者〉a.txt

Linux統(tǒng)計(jì)文件中出現(xiàn)的次數(shù):

(1)單個(gè)字符串:grep-otargetstrfilename|wc-1

多個(gè)字符串:grep-octtargetstr_l\targetstr_2,,filename|wc-1

(2)awk'{s+=gsub(/targetStr/,n&n)}END{prints}'filename

Linux查找某個(gè)文件中的某個(gè)詞:

grepCtesfa,b,c在文件a,b,c中尋找test這個(gè)詞

grep-r'test*.#在當(dāng)前目錄中找test這個(gè)詞

grep-r'test'example#在example目錄中找test這個(gè)詞

wc-1filename:查看文件里有多少行

uniqtestfile:刪除一個(gè)文件中重復(fù)都是行

sorttestfile1|uniq:刪除重復(fù)之后進(jìn)行排序(次數(shù)的)

十一.Mysql(亂七八糟語句不寫了,寫點(diǎn)我覺得可能會(huì)被問到的)

授權(quán)語句:

grantselect,insert,update,deleteontestdb.*tocommon_user@'%'

事務(wù):

1.原子性:要么全部完成,要么不完成,若發(fā)生錯(cuò)誤會(huì)進(jìn)行回滾操作;

2.一致性:開始到結(jié)束后,數(shù)據(jù)庫完整性約束沒收到破壞;(實(shí)體完整性,參照完整性,

用戶定義的完整性)

3.隔離性:事務(wù)與事務(wù)之間相隔離,串行化執(zhí)行;

4.持久性:事務(wù)完成對(duì)數(shù)據(jù)的影響是永久的;

四個(gè)隔離:

1.臟讀

臟讀是指在一個(gè)事務(wù)處理過程里讀取了另一個(gè)未提交的事務(wù)中的數(shù)據(jù)。

當(dāng)一個(gè)事務(wù)正在多次修改某個(gè)數(shù)據(jù),而在這個(gè)事務(wù)中這多次的修改都還未提交,這時(shí)一

個(gè)并發(fā)的事務(wù)來訪問該數(shù)據(jù),就會(huì)造成兩個(gè)事務(wù)得到的數(shù)據(jù)不一致。例如:用戶A向用戶B

轉(zhuǎn)賬100元,對(duì)應(yīng)SQL命令如下

updateaccountsetmoney=money+100wherenameTB';(此時(shí)A通知B)

updateaccountsetmoney=money-100wherename='A';

當(dāng)只執(zhí)行第一條SQL時(shí),A通知B查看賬戶,B發(fā)現(xiàn)確實(shí)錢已到賬(此時(shí)即發(fā)生了臟

讀),而之后無論第二條SQL是否執(zhí)行,只要該事務(wù)不提交,則所有操作都將回滾,那么當(dāng)

B以后再次查看賬戶時(shí)就會(huì)發(fā)現(xiàn)錢其實(shí)并沒有轉(zhuǎn)。

2.不可重復(fù)讀

不可重復(fù)讀是指在對(duì)于數(shù)據(jù)庫中的某個(gè)數(shù)據(jù),一個(gè)事務(wù)范圍內(nèi)多次查詢卻返回了不同的

數(shù)據(jù)值,這是由于在查詢間隔,被另一個(gè)事務(wù)修改并提交了。

3.虛讀(幻讀)

幻讀是事務(wù)非獨(dú)立執(zhí)行時(shí)發(fā)生的一種現(xiàn)象。例如事務(wù)T1對(duì)一個(gè)表中所有的行的某個(gè)數(shù)

據(jù)項(xiàng)做了從“1”修改為“2”的操作,這時(shí)事務(wù)T2又對(duì)這個(gè)表中插入了一行數(shù)據(jù)項(xiàng),而這個(gè)數(shù)

據(jù)項(xiàng)的數(shù)值還是為“1”并且提交給數(shù)據(jù)庫。而操作事務(wù)T1的用戶如果再查看剛剛修改的數(shù)

據(jù),會(huì)發(fā)現(xiàn)還有一行沒有修改,其實(shí)這行是從事務(wù)T2中添加的,就好像產(chǎn)生幻覺一樣,這

就是發(fā)生了幻讀

Serializable(串行化):可避免臟讀、不可重復(fù)讀、幻讀的發(fā)生。

Repeatableread(可重復(fù)讀):可避免臟讀、不可重復(fù)讀的發(fā)生。

Readcommitted(讀已提交):可避免臟讀的發(fā)生。

Readuncommitted(讀未提交):最低級(jí)別,任何情況都無法保證。

四種隔離級(jí)別最高的是Serializable級(jí)別,最低的是Readuncommitted級(jí)別,級(jí)別越高,

執(zhí)行效率就越低。

主鍵,外鍵:

主鍵:對(duì)表中數(shù)據(jù)進(jìn)行唯一標(biāo)識(shí)的數(shù)據(jù)列的組合;不能缺失;不能空值;

外鍵:該列為另一表的主鍵

索引:

L數(shù)據(jù)庫索引,是數(shù)據(jù)庫管理系統(tǒng)中一個(gè)排序的數(shù)據(jù)結(jié)構(gòu),以協(xié)助快速查詢、更新數(shù)據(jù)

庫表中數(shù)據(jù)。索引的實(shí)現(xiàn)通常使用B樹及其變種B+樹

2.通過創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性

CREATEINDEXindex_nameONtable_name(username(length));

建立索引的缺陷:

1.雖然索引大大提高了查詢速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行

INSERT,UPDATE和DELETE。因?yàn)楦卤頃r(shí),mysql不僅要保存數(shù)據(jù),還要保存一下索引

文件

2.建立索引會(huì)占用磁盤空間的索引文件。一般情況這個(gè)問題不太嚴(yán)重,但如果你在要給

大表上建了多種組合索引,索引文件會(huì)膨脹很寬

drop.delete與truncate的區(qū)別

drop直接刪掉表truncate刪除表中數(shù)據(jù),再插入時(shí)自增長(zhǎng)id又從1開始delete刪除表

中數(shù)據(jù),可以加where字句

一般而言,drop>truncate>delete

連接種類,區(qū)別:

Innerjoin,leftjoin,rightjoin,fulljoin

分庫分表:

數(shù)據(jù)庫引擎:rnyisam和innodb,前者比較適合大量select,事務(wù)不安全;后者支持外鍵,事務(wù)

安全”適合大量update,insert

十二.Jmeter

1.性能測(cè)試幾個(gè)概念

TPS:每秒鐘request/事務(wù)數(shù)量

并發(fā)數(shù):系統(tǒng)同時(shí)處理的request/事務(wù)數(shù)

響應(yīng)時(shí)間:一般取平均響應(yīng)時(shí)間

下面幾個(gè)概念可以看看

負(fù)載測(cè)試(LoadTest):負(fù)載測(cè)試是一種性能測(cè)試,指數(shù)據(jù)在超負(fù)荷環(huán)境中運(yùn)行,程序

是否能夠承擔(dān)(通俗講我覺得就是到了拐點(diǎn)就停了,再往上指標(biāo)也不會(huì)上漲)

壓力測(cè)試(StressTest):壓力測(cè)試(又叫強(qiáng)度測(cè)試)也是一種性能測(cè)試,它在系統(tǒng)資源

特別低的情況下軟件系統(tǒng)運(yùn)行情況,目的是找到系統(tǒng)在哪里失效以及如何失效的地方。

(1)穩(wěn)定性壓力測(cè)試:在選定的壓力值下,長(zhǎng)時(shí)間持續(xù)運(yùn)行。通過這類壓力測(cè)試,可以

考察各項(xiàng)性能指標(biāo)是否在指定范圍內(nèi),有無內(nèi)存泄漏、有無功能性故障等;

(2)破壞性壓力測(cè)試:在穩(wěn)定性壓力測(cè)試中可能會(huì)出現(xiàn)一些問題,如系統(tǒng)性能明顯降低,

但很難暴露出其真實(shí)的原因。通過破壞性不斷加壓的手段,往往能快速造成系統(tǒng)的崩潰或讓

問題明顯的暴露出來

極限測(cè)試Extremetesting:在過量用戶下的負(fù)載測(cè)試Hammertesting:連續(xù)執(zhí)行所有能

做的操作

像一般性能測(cè)試可能會(huì)發(fā)現(xiàn)數(shù)據(jù)庫連接上的錯(cuò)誤,代碼的異常,也有可能是jmeter自

身這個(gè)軟件有性能瓶頸

Jmeter-plugins-manager(一個(gè)插件)

下載之后放到lib/ext下面,重啟,然后就如圖

添加邏病控制器

配置元件>

Start

定時(shí)器

Startnopauses

前2s處理器

Validate

Sampler繼續(xù)OStartNextThrea

再切Ctrl*X后置處理器>

復(fù)制Ctri*C斷言》

*Ctrl+V監(jiān)聽墨>AggregateGraph

DuplicateCtrl*Shift+C二,二inseconasjBackendListener

卜送|1-|

ResetGuiBeanShellListener

刪除DeleteaadcreationunBSFListener

bzm-BiazeMeterSenseUploader

Undo

ComparisonAssertionVisualizer

Redo

jp@gc?ActiveThreadsOverTime

打開…jp@gc-CompositeGraph

合并jp@gc-ConsoleStatusLogger

朝為..jp@gc-FlexibleFileWriter

jp@gc-HitsperSecond

SaveNodeAsImageCtrUG

jp@gc-PerfMonMetricsCollector

SaveScreenAsImageCtrl+Shift+G

jp@gc-ResponseTimesOverTime

啟用jp@gc-SynthesisReport(filtered)

禁用IjP@gc-TransactionsperSeconq

ToggleCtrl*TJSR223Listener

ResponseTimeGraph

幫助

SimpleDataWriter

SummaryReport

1.其中TransactionperSecond就是tps圖,ResponseTimeOverTime就是平均響應(yīng)時(shí)間,

方便實(shí)時(shí)觀察,而不是最后看查看結(jié)果樹

2.一般短的壓測(cè)都是相同條件壓三次取平均值

3.一般很少會(huì)直接壓線上,所以會(huì)有一個(gè)線上和測(cè)試的機(jī)器參數(shù)對(duì)比,有一個(gè)倍數(shù)關(guān)系,

測(cè)試環(huán)境做完壓測(cè)后再計(jì)算大概線上的結(jié)果

怎么確定性能指標(biāo)?

1.互聯(lián)網(wǎng)上對(duì)于用戶響應(yīng)時(shí)間,有一個(gè)普遍的標(biāo)準(zhǔn),2—5—10原則

2.1.5倍峰值作為參考+服務(wù)器(內(nèi)存,CPU等等)

jmeter怎么用上一個(gè)接口的結(jié)果作為下一個(gè)接口的參數(shù)(使用Jsonextractor)-加分點(diǎn)

十三.測(cè)試用例設(shè)計(jì)

這一塊的東西我寫個(gè)大致的范圍

登陸模塊

1.功能用例

2.兼容性(app版本,操作系統(tǒng)版本,不同移動(dòng)設(shè)備分辨率)

3.性能上(單用戶的響應(yīng)時(shí)間,高并發(fā),長(zhǎng)時(shí)間多用戶登陸)

4.安全性(加密,SQL注入(通過把SQL命令插入到Web表單提交或輸入域名或頁面請(qǐng)求

的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令),腳本攻擊,多設(shè)備登陸的互斥)

5.弱網(wǎng)(android在fiddler下,ios通過自身的status,下一章寫)

6.UI測(cè)試

7.可用性,易用性(全鍵盤輸入,enter,tab)

8.本地化(多語言)

還有很多,測(cè)試紙杯,電梯,購(gòu)物車,支付功能(這都是我面試遇到過的)很多別的也可以考

慮這些方面,反正都憑自身經(jīng)驗(yàn)吧一

十四.弱網(wǎng)測(cè)試

l.IOS

IOS平臺(tái),通過自帶的開發(fā)者選項(xiàng)--NetworkLinkConditioner,簡(jiǎn)單的模擬各種速度的

網(wǎng)絡(luò)

????中國(guó)林動(dòng)號(hào)下午5;32每100%???

<DevelopeNetworkLinkConditioner

Enable

CHOOSEAPRORIE,.

4①>

100%Loss①

3G①

DSL①

Edge①

HighLatencyDNSR

VeryBadNetworkj

Wifi①>

pro3t

Addaprofile...

2.android

Fiddler

l.先開啟網(wǎng)絡(luò)模擬

2.開啟延遲

OFiddler卜什卜

FilefcQWjoohViewHdp91Kde口G*oEdQ.

HideImageK?q?*iU11MMIVCNM,*frPmensftQ*dKUvr她?■Broww?ClearCd.

PntMCONNfE]

!HtMS-1r<W

i由_________________J航2>.3一*i'<MtDKtMT^BjCOM0OW9F(tSeSv<K

1Cuttomis*Mult,C*I*RJ.,

.必stlecroneortoreseuforvinrfle*e?StsHonslistto,,―fitrfoftnet

T.RequwProxyAa^herrbcabonrttrrsticr.

f47App)yGZTPEncodeL,

6.3)IUmo?*AC(ncodingt卜;

■L_.meSecondEditionoftMDcst-scllinqMok*DeX81n4withFiddler*,sno*

¥為Hkk3O4?產(chǎn),available.

曼50M;iNmnor<aocwvrhepaperMKk?nao?w-fr?coooc?tHttt):一;fiaa!erboo<.cow

1fUqumJ?p?n*wCotten(島;

*$2Au*omMK?UyAwtfwnbTJrt*bij;

f??卜:

I?、0n___________________________iKJ

?57HTTPdM.bMu.con

?5a*fnpitat^edu^oMAw-tMrcMMtoft**

<>?200?nTVtr.XfltnF-

SWNOMA

哥TMPTOOBM>99C<xton?de?.*Mt>o?MatSunAr260230:2SUFC?4

然后編輯腳本

3|CustomRulesjs-記事本

文件(F)漏場(chǎng)⑹tet(O)查看(V)JtSb(H)

if((null!=bpMethod)&&(oSession.HTTPMethodls(bpMethod))){

}QS(;ssion["x-breakrequest"]二"method”;

if((nul11=uiBoldURI)&&oSession.uriContains(uiBoldURI)){

}oSession["ui-bold"]="QuickExec”;

if(m_SiiriulateModem){

//Delaysendsby300msperKBuploaded.

oSession[*request-trickle-delay**]二"3000”;

//Delayreceivesby150msperKBdownloaded.

oSession[*response-trickle-delay**]=T000”,

if(m_DisableCaching){“?

oSession.oRequest.headers.Remove(*1f-None-Match*);

oSession.oRequest.headers.Remove(**Ifodified-Sinee*);

oSession.oRequest[^Pragma^]="no-cache”,

每上傳和下載1KB的數(shù)據(jù)要延遲多少秒

Charles:

延遲設(shè)置-選擇相應(yīng)的網(wǎng)絡(luò)延遲設(shè)置或者自定義延遲-開啟延遲即可

?CharlesFileEditViewToxyToolsWindowHelp

」JStopRecording(Session1)*R

StartThrottling第T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論