性能面試題目
第二部分 loadrunner 部分
一、 性能測試的目的是什麼?
識別系統的弱點,評估系統能力,發現系統性能瓶頸,提升系統可靠性能和穩定性
二、 常見的性能測試方法有哪些?
a.負載測試:就是一步一步逐漸增長用戶數的測試
b.壓力測試:負載必定的狀況下持續運行一段時間
c.性能測試
性能測試包括上面兩項,且持續運行一段時間
三、 Loadrunner 由哪三部分組成,各個功能分別是什麼?
loadrunner 分爲腳本生成器,場景控制器,結果分析器三個部分。LoadRunner,是一種預測系統行爲和性能的負載測試工具。經過以模擬上千萬用戶實施併發負載及實時性能監測的方式來確認和查找問題。
四、 Loadrunner 調試的時候,日誌級別分別是什麼?
分爲標準日誌和拓展日誌,默認爲標準日誌,可是咱們每每須要拓展日誌,若是須要打開,能夠經過runtime settings-->log-->extended log
五、 簡述 loadrunner 的工做原理
用戶在腳本生成器中生成客戶端和服務端的協議交互的腳本,而後在場景控制器中模擬場景,模擬必定數量的用戶,對服務器產生壓力,同時對被測試系統涉及的操做系統,數據庫,中間件等資源進行監控,收集壓力狀況下的資源信息,測試結束後造成測試結果和監控數據,在結果分析器中進行分析,最後勝出測試結果報告
六、 Loadrunner 腳本中 action()和 init(),end()的區別是什麼?
能夠將它們理解爲三個大的事務,你能夠把你想要的任何操做,放在它們裏面,而後action能夠有多個而且重命名
int開頭的腳本,一般能夠放用戶登陸時候的腳本
action操做間的腳本,一般防止一些操做事件
end結束時的腳本,一般是退出腳本
可是須要注意的是int 和end 不能迭代屢次,只能運行一次,action能夠運行屢次
七、 使用檢查點的目的是什麼?
檢查頁面跳轉或者用戶登陸是否正確,由於LR向服務器發送請求,只要能發送,就認爲 是成功,不會判斷返回的結果是否正確,這個時候咱們須要加入 檢查點來判斷是否正確,經常使用的四種檢查點函數有web_find(),web_reg_find(),web_img_check()以及web_global_verification()
八、 關聯函數是哪一個?爲啥要作關聯?作關聯的步驟是什麼?
關聯函數有:web_reg_save_param(),Web_reg_save_param_ex(),
所謂的關聯就是把腳本中某些寫死的(hard-coded)數據,轉變成是取自服務器所送的、動態的、每次都不同的數據。若是不作關聯的話,會報錯
回放腳本發現每次執行到那一步報錯,經過觀察發現那是一個動態值(須要打開拓展日誌)
知道該動態值的左邊界固定值與右邊界固定值,而後添加關聯函數,寫入左右邊界值,便可成功添加關聯,記住關聯要放在請求以前
九、 參數化的做用是什麼?結合場景完成造數據
實現多個用戶使用一套腳本,給服務器形成的事實就是多個用戶同時在訪問系統,就是併發,實際狀況中不少項目是不容許同一個用戶登陸屢次的,因此須要參數化,更接近於顯示場景
比如對用戶的登陸名作參數化,能夠先從 數據庫中找到登陸用戶名,而後參數化的部分右鍵,而後選擇參數化,選擇文件參數化,點擊確認,最後將數據庫用戶登陸名拷貝到該參數化文件中
十、 當接口裏面用到了須要 java 代碼實現的簽名值(sign),怎麼轉換成 loadrunner 完成性能測試腳本?
1.在idea工具中新建一個項目lemon1,且建立對應的包爲testmd5
2.能夠由開發提供算法,以及調用,也能夠由開發給算法,本身編寫調用方法,本例中爲MD5.java,且將文件導入到testmd5下
3.post與get算法封裝方法文件,原本中爲HttpClientRequest.java,且將文件導入到testmd5下
4.導入包
5.建立主要測試腳本,本例中建立的腳本名字爲TestPayPasswdMd5:並對文件進編輯(這一步很關鍵)
6.打包,將MD5打包成jar文件MD5.jar
7.loadrunner中新建java Vusers協議腳本,導入Run-time Settings 中導入lib包,jdk中dt.jar與tool.jar,以及剛剛打的加密算法jar包
8.將idea工具中剛編寫的腳本貼入到Actions文件中
9.再加上if對事務進行判斷是否正確
十一、 在性能測試過程當中發現了什麼問題?
tps低,響應時間高
十二、 當發現這些問題的時候,是怎麼去定位的?
當tps低,響應時間高時,性能數據圖標分析(將兩個數據組合在一張圖標中查看數據):
步驟:
1.查看服務器的資源使用狀況,這個時候若是user%CPU高,定位到哪一個進程
2.查看服務器資源的使用狀況,發現系統資源佔用很低:
可能的緣由
1)查看網絡狀況,最直接的方法:在本機ping服務器地址,如輸入:ping 192.168.68.133 -t,看是否存在丟包
最好在同一個網絡端作性能測試,使用千兆網卡
2)客戶端請求有無發出去,本機的性能狀況
3)鏈接數:分Tomcat應用的鏈接數,Tomcat鏈接數據庫的鏈接數以及數據庫自己的鏈接數
第三部分:Linux
一、 下面哪一個 Linux 命令能夠一次顯示一頁內容? C
A.pause B. cat C. more D. grep
備註:page :page不能對文件操做,只有man指令用manpage頁面。
cat :查看文件內容,一次顯示所有文件內容。
more :分頁顯示文件內容;space翻頁。
grep :在文件中搜尋與指定字串匹配的行並輸出;配合正則表達式和通配符使用。
2. 怎麼更改一個文件的權限設置? B
A.attrib B.chmod C. change D.file
3. 下面哪條命令能夠把 f1.txt 複製爲 f2.txt? C
A.cp f1.txt | f2.txt B. cat f1.txt|f2.txt C.cat f1.txt>f2.txt D.copy f1.txt | f2.txt
4. 顯示一個文件最後幾行的命令是? B
A. tac B.tail C.rear D.last
5. 如何切換到用戶 make 用戶下? B
A.cd @make B.su – make C.su &make D.cd #make
六、如何在文件中查找顯示全部以「*」開頭的行? D
A.find \* file B.wc -l * < file C.grep -n * file D.grep ‘^\*’ file
7
. 在 ps 命令中什麼參數是用來顯示全部用戶的進程的? A
A.a B. b C.u D. x
八、如何刪除一個非空子目錄/tmp? B
A.del /tmp/* B.rm -rf /tmp C.rm -Ra /tmp/* D.rm -rf /tmp/*
九、在 Linux 系統中的腳本文件通常以什麼開頭? B
A.$/bin/sh B.#!/bin/sh C. use /bin/sh D.set shell=/bin/sh
十、在 vi 命令中,先要輸入什麼進行編輯狀態? D
A.b B.a C.g D.i
十一、在 vi 中退出不保存的命令是? D
A. :q B. :w C. :wq D:q!
十二、在 vi 中退出保存的命令是? C
A. :q B. :w C. :wq D:q!
1三、使用什麼命令檢測基本網絡鏈接? A
A.ping B. route C. netstat D.ifconfig
1四、什麼命令解壓縮 tar 文件? B
A.tar -zcvf filename.tar.gz B.tar -zxvf filename.tar.gz C.tar -tzvf filename.tar.gz D.tar -dzvf filename.tar.gz
1五、對 top,iostat,vmstat,sar 命令進行解釋
top:命令動態展現系統總體資源和各個進程資源佔用狀況,是linux下經常使用的性能分析工具
iostat:用於輸出CPU和磁盤I/O相關的統計信息
vmstat:命令主要是對操做系統的虛擬內存、進程、I/O讀取、CPU活動等總體狀況進程統計,可是它不會對某個進程進行深刻分析
sar:主要用於收集並統計系統資源的新秀,包括CPU、I/O、內存、網卡流量等
1六、乾淨的 linux 環境 2 套,能夠直接從原來安裝好的 Linux 複製出 來一份
已經安裝好2個linux
1七、在一套上面安裝好 Tomcat,而且可以訪問好比:輸入 ip+默認端 口(8080),看到 Tomcat 歡迎信息
將tomcat壓縮包下載到linux系統中,並解壓,進入到conf文件夾下修改server.xml,根據須要修改端口,改變端口以後記得在防火牆文件/etc/sysconfig/iptables添加相應端口,並重啓防火牆,以後進入tomcat的bin目錄,使用./startup.sh
1八、在另一套上面安裝 MySQL 服務,源碼安裝,安裝包網盤: mysql-5.6.13.tar.gz 1九、安裝好 Nginx+Tomcat 集羣,而且刷新 ip 地址會訪問到不一樣的 Tomcat
mysql已經安裝成功
Nginx安裝成功
兩個tomcat啓動成功沒端口分別是8080和9999,修改了9999對應tomcat下webapps/ROOT/index.jsp文件的以做爲區分
<div id="congrats" class="curved container">
<h2>Hello,Alice.……Tomcat2</h2>
</div>