當前位置:首頁 » 網頁前端 » 操作系統基線檢查腳本
擴展閱讀
怎麼清除預覽圖片的緩存 2022-11-30 14:15:11
c語言創建有序鏈表 2022-11-30 14:08:06

操作系統基線檢查腳本

發布時間: 2022-09-23 00:26:24

1. 請設計一個腳本checkmd5,sh,實現用於檢測linux系統重要文件是否被修改的功能,該腳

從Linux操作系統出現開始,使用Linux替代Windows的觀點和期待就一直存在。經過多年的發展,Linux取得了長足的進步,在桌面計算機領域的佔有率也有了一定的提高。然而,當下的Linux操作系統是否已經在實用性上達到目標了呢

2. APP怎麼檢測腳本

APP檢測主要從以下幾個方面展開:
APP性能測試和監控:極限測試:在各種邊界壓力情況下(如:電池、存儲、網速等),驗證App是否能正確響應。響應能力測試:測試App中的各類操作是否滿足用戶響應時間要求壓力測試:反復/長期操作下,系統資源是否佔用異常;性能評估:評估典型用戶應用場景下,系統資源的使用情況。Benchmark測試(基線測試):與競爭產品的Benchmarking,產品演變對比測試等。
至於如何寫檢測腳本,1.可以再Saas平台選擇上百款真實機型,根據需要可進行調用哪一個雲真機2.在SaaS平台的雲端上傳APP,方便統一管理;無需編寫代碼,開始錄制腳本,並自動生成腳本步驟3.APP測試的腳本寫的對不對,還是要回放看一看的

3. 如何編寫自己的Linux安全檢查腳本

腳本大致內容: 基本信息統計(IP地址、MAC地址、埠信息、服務信息等)、主機安全檢查(包括等保三級要求主機相關的檢查點)、系統性能統計(暫時未加入分析)、惡意代碼、程序檢查等檢查點。

腳本內容涉及到:

1、查看系統密碼文件修改時間

2、查看是否開啟了ssh服務

3、查看系統SSH遠程訪問設置策略(host.deny拒絕列表)

4、查看shell是否設置超時鎖定策略

5、查看syslog日誌審計服務是否開啟

6、查看syslog日誌是否開啟外發

7、查看passwd文件中有哪些特權用戶

8、查看系統中是否存在空口令賬戶

9、PHP、JSP、perl、Python、HTML、以及linux下可執行文件內容的檢查

裡面列舉了一些常見webshell、提權EXP、以及Python掃描工具、嗅探工具的特徵,如果發現此類相關的文件,則會顯示出來,或者拷貝一份到/tmp/目錄下

例如:能掃描到的linux下提權工具:

一共是172個文件。都可以掃描的到。。。。

其實整個腳本相對起來比較簡單,主要用到的命令為

find / -type

if語句

awk命令

more

egrep

等命令組成。

比如說awk命令,我們用more或cat命令,讀取某個文件內容,然後通過awk進行篩選和輸出,來顯示我們想要看的東西

例如:
more /etc/login.defs | grep -E "PASS_MAX_DAYS" | grep -v "#" |awk -F' ' '{if($2!=90){print "/etc/login.defs裡面的"$1 "設置的是"$2"天,請管理員改成90天。"}}'

從這里我們可以看到,通過more來打開/etc/login.defs文件,並查找關鍵字 「PASS_MAX_DAYS」, 用awk命令,篩選以」為分隔符的內容,用作判斷,如果$2第二個分隔符位置的內容不等於90,則輸出該內容。

同理,任意針對文件內容做篩選的結果,都可以通過這樣的方式去顯示我們想要顯示的內容。

又例如:
echo "查看系統中存在哪些非系統默認用戶"
echo "root:x:「該值大於500為新創建用戶,小於或等於500為系統初始用戶」"
more /etc/passwd |awk -F ":" '{if($3>500){print "/etc/passwd裡面的"$1 "的值為"$3",請管理員確認該賬戶是否正常。"}}'
echo ------------------------------------------------------------------------

if語句相關:
echo --------------------------------------------------------------------------
echo "檢查系統文件完整性2(MD5檢查)"
echo "該項會獲取部分關鍵文件的MD5值並入庫,默認保存在/etc/md5db中"
echo "如果第一次執行,則會提示md5sum: /sbin/portmap: 沒有那個文件或目錄"
echo "第二次重復檢查時,則會對MD5DB中的MD5值進行匹配,來判斷文件是否被更改過"
file="/etc/md5db"
if [ -e "$file" ]; then md5sum -c /etc/md5db 2>&1;
else
md5sum /etc/passwd >>/etc/md5db
md5sum /etc/shadow >>/etc/md5db
md5sum /etc/group >>/etc/md5db
md5sum /usr/bin/passwd >>/etc/md5db
md5sum /sbin/portmap>>/etc/md5db
md5sum /bin/login >>/etc/md5db
md5sum /bin/ls >>/etc/md5db
md5sum /bin/ps >>/etc/md5db
md5sum /usr/bin/top >>/etc/md5db;
fi
echo ----------------------------------------------------------------------

這里呢,對部分敏感文件的MD5值做了下驗證,大致思路是,先檢查 /etc/md5db 是否存在,如果不存在的話,則將所涉及文件的MD5值入庫,並保存到 /etc/md5db文件中,當我們第二次對伺服器進行檢查時,則會對比兩次的MD5值,如果MD5值發生變化,則會進行提醒。

腳本本身沒什麼復雜的東西,我先貼出部分內容,供大家參考下。
#!/bin/bash
echo " (__)"
echo " (oo)"
echo " /------\/ "
echo " / | || "
echo " * /\---/\ "
echo " ~~ ~~ "
echo "...."Are You Ready?"..."
read key
echo "警告:本腳本只是一個檢查的操作,未對伺服器做任何修改,管理員可以根據此報告進行相應的設置。"
echo ---------------------------------------主機安全檢查-----------------------
echo "系統版本"
uname -a
echo --------------------------------------------------------------------------
echo "本機的ip地址是:"
ifconfig | grep --color "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"
echo --------------------------------------------------------------------------
awk -F":" '{if($2!~/^!|^*/){print "("$1")" " 是一個未被鎖定的賬戶,請管理員檢查是否需要鎖定它或者刪除它。"}}' /etc/shadow
echo --------------------------------------------------------------------------
more /etc/login.defs | grep -E "PASS_MAX_DAYS" | grep -v "#" |awk -F' ' '{if($2!=90){print "/etc/login.defs裡面的"$1 "設置的是"$2"天,請管理員改成90天。"}}'
echo --------------------------------------------------------------------------
more /etc/login.defs | grep -E "PASS_MIN_LEN" | grep -v "#" |awk -F' ' '{if($2!=6){print "/etc/login.defs裡面的"$1 "設置的是"$2"個字元,請管理員改成6個字元。"}}'
echo --------------------------------------------------------------------------
more /etc/login.defs | grep -E "PASS_WARN_AGE" | grep -v "#" |awk -F' ' '{if($2!=10){print "/etc/login.defs裡面的"$1 "設置的是"$2"天,請管理員將口令到期警告天數改成10天。"}}'
echo --------------------------------------------------------------------------
grep TMOUT /etc/profile /etc/bashrc > /dev/null|| echo "未設置登錄超時限制,請設置之,設置方法:在/etc/profile或者/etc/bashrc裡面添加TMOUT=600參數"
echo --------------------------------------------------------------------------
if ps -elf |grep xinet |grep -v "grep xinet";then
echo "xinetd 服務正在運行,請檢查是否可以把xinnetd服務關閉"
else
echo "xinetd 服務未開啟"
fi
echo --------------------------------------------------------------------------
echo "查看系統密碼文件修改時間"
ls -ltr /etc/passwd
echo --------------------------------------------------------------------------
echo "查看是否開啟了ssh服務"
if service sshd status | grep -E "listening on|active \(running\)"; then
echo "SSH服務已開啟"
else
echo "SSH服務未開啟"
fi
echo --------------------------------------------------------------------------
echo "查看是否開啟了TELNET服務"
if more /etc/xinetd.d/telnetd 2>&1|grep -E "disable=no"; then
echo "TELNET服務已開啟 "
else
echo "TELNET服務未開啟 "
fi
echo --------------------------------------------------------------------------
echo "查看系統SSH遠程訪問設置策略(host.deny拒絕列表)"
if more /etc/hosts.deny | grep -E "sshd: ";more /etc/hosts.deny | grep -E "sshd"; then
echo "遠程訪問策略已設置 "
else
echo "遠程訪問策略未設置 "
fi
echo --------------------------------------------------------------------------

4. 怎麼寫一個判斷操作系統類型,版本的腳本

這個就屬於在 UNIX/Linux 系統下面熟練使用 SHELL 編程技術的問題了。首先你必須要確定你到底想使用哪一種 SHELL 語言來進行 SHELL 腳本編程?因為 UNIX/Linux 系統裡面安裝有多個版本的 SHELL。至少安裝有:bash、C-Shell,因為不同的 SHELL 語言,它們在進行SHELL 編程時,哪怕是一個最簡單的 if else 判斷語句、while 循環語句等,它們的語句末尾是否含有分號,等等細節問題都是不一樣的。這一點尤其要特別注意,因為即使編程思路再清楚,如果這些細節問題不是真正搞清楚了,那麼這個 SHELL 腳本編程照樣調試不通過。
如果在以上的技術細節上、以及 SHELL 編程的語法細節上,都搞得非常清楚了,那麼再來編寫判斷操作系統的類型、以及操作系統的版本的腳本程序就不是問題了,無非就是利用各種UNIX/Linux提供的各種命令進行組合、編寫腳本程序了。
由於我已經很久很久沒有編寫過 SHELL 程序了,不過你記住一條就是:SHELL 編程的功能是極其強大的!例如:在SHELL編程過程中,可能會用到 awk、grep、$ 符號、以及管道操作 pipe 等命令,對你需要的最終信息進行篩選。

5. LoadRunner學習知多少

一. 什麼是LoadRunner
LoadRunner是一種預測系統行為和性能的工業標准級負載測試工具。通過以模擬多個用戶實施並發負載測試及實時性能檢測的方式來確認和查找問題,能對整個企業架構進行測試。
二. LoadRunner的優點
1. 輕松創建虛擬用戶:通過記錄下業務流程轉為測試腳本,在機器上產生多個用戶訪問,減少負載測試需要的硬體和人力資源。
2. 創建真實的負載:可以通過Controller設定負載方案,如定義用戶在什麼時候訪問系統以產生負載,所有用戶同時執行一個動作來模擬峰值負載情況等。
3. 實時監測器:可以實時顯示交易性能數據(如響應時間)和其他系統組件如資料庫,網路等的實時性能。
4. 分析結果以精確定位問題所在:LoadRunner能收集匯總所有測試數據,提供高級的分析和報告工具。
三. LoadRunner的安裝與使用
1.安裝過程詳見上傳的LoadRunner使用手冊,在此不再詳細介紹。
2.具體使用:

點擊File新建錄制文件,也可以點擊下面的NEW快捷鍵進行新建。使用File新建,會彈出協議選擇窗口,選擇新的單協議腳本(New SingleProtocol Script)的Web(HTTP/HTML)項,確定即可(選擇Web項是因為我們測試的是Web應用)。接著會彈出開始錄制的設置項,需要寫入錄入系統的地址,點擊確定後就會根據錄入地址展現系統頁面,開始錄制腳本,出現小工具條:

第一個按鈕為錄制鍵
第二個為回放腳本鍵
第三個為停止錄制鍵
第四個為暫停錄制鍵
第五個為編譯腳本鍵
第六個為創建新的Action鍵。LR的錄制腳本分為三個部分,vuser_init、vuser_end和 Action。腳本循環執行時,只執行一次vuser_init和vuser_end,而多次循環Action部分。比如錄制投保業務時,登陸系統部分放入vuser_init,退出登陸放到vuser_end,中間的投保操作放到Action中,則循環執行時就會登陸一次投保系統開始反復執行投保操作直到結束退出系統。
第七個為用來改變錄制的options設置按鈕
第八個和第九個為插入事務的起始點和結束點鍵,結合起來構成一個完整事物,用來衡量伺服器的性能。比如錄制腳本過程中,投保系統的查詢投保單號操作,可以在輸入完查詢信息後點擊查詢按鈕前插入事務的起始點,查詢出數據後插入事務的結束點,這樣在運行測試腳本時,Loadrunner在運行到該事務時,便會計算出這個查詢操作所花時間,便於衡量伺服器執行查詢操作的性能。
第十個為插入集合點鍵,可用於衡量在加重負載的情況下伺服器的性能。比如要驗證系統是否能承受100人同時進行報案操作,便可在腳本錄入過程中,點擊報案確認鍵操作前插入集合點,這樣當腳本運行到集合點時,Loadrunner會讓100個虛擬用戶同時點擊報案確認按鈕(如果有的用戶還沒運行到集合點,先到用戶要等未到用戶一起操作)進行報案,從而達到測試目的。
最後一個為設置驗證點鍵,在創建事物後,設置一個驗證點可以用來確認事物執行是否成功。比如進行查詢事務操作時,LR只要檢測到網頁的響應,就認為事務pass,而不管顯示頁面內容是否正確。因此為了檢查Web伺服器返回的網頁是否正確,可以插入Text/Image檢查點,驗證網頁上是否存在指定的Text或Image。
設置驗證點時,如果我們驗證的文本內容是中文,有時會返回無法找到驗證內容的報錯信息,而頁面顯示又是正確的,出現問題的原因可能是因為LR對中文的支持部好,盡量選擇驗證信息為數字或字母;也可能是設置問題,可以嘗試將Tools->Recording Options->HTTP Properties下的Advanced選項里設置支持UTF-8,再檢查開發人員有沒有設置支持中文。
錄制結束後,先點擊保存腳本,同時為腳本命名。然後編譯腳本,看是否存在語法錯誤,編譯成功後,即可回放,看錄制腳本是否成功。
LoadRunner錄製得到的腳本基本沒有錯誤,不像robot會有錄入數據的缺失,只是會錄入一些非錄入系統的網頁信息,根據地址可以識別並刪除掉。
四. LoadRunner腳本錄制學習小結
1. LoadRunner錄制腳本,主要是為了進行壓力測試,所以跑流程時,跑了主要流程即可,也就是系統必須的信息錄入就可以了。
2. LoadRunner的腳本運行過程中,只能用於一次業務辦理的數據需要做參數化,如車輛車架號,車牌,報案號等,以免出現重復投保或報案無法立案現象,不能繼續進行下去。參數化步驟:
1) 將需要做參數化的數據右鍵點擊,選擇Replace with a parameter,進行設置。
2) 在彈出編輯框里,設置易懂的參數名稱,再點擊Properties進行屬性設置。
3) 點擊Create Table 按鈕,生成參數表格,再點擊Edit with Notepad按鈕,即可在記事本里添加新的參數,添加完後再次回車(不回車可能最後條數據讀取不到)關閉,參數化操作完成。
4) 使用Ctrl +H鍵可以找到替換同樣的需要參數化的數據。
3. 腳本跑流程過程中,因為業務運轉,前面生成的投保單要接著進行提交核保業務,而每次生成的投保單號不一樣,用於進行提交核保的單號也要與之前的保持一致,因此需要做關聯處理,讀取到生成的新投保單號給提交核保流程。關聯步驟:
1) .查找關聯數據第一次出現的位置,判斷該數據是由什麼函數返回的。
2) .在樹形結構里點擊返回該數據值的函數,看它的Server Response信息,用復制的關聯數據進行查找它的返回語句,找到區分度明顯的語句(不一定要是第一個返回語句),然後使用web_reg_save_param函數進行關聯。
註:關聯函數一定要寫在第一個返回該數據值的函數前。
3) .web_reg_save_param (const char *ParamName, <List ofAttributes>, LAST);
函數的第一個參數是用來對關聯數據進行定義的,取名最好可讀性強;第二個參數是用來標識關聯數據在返回語句里的具體位置的,寫出該數據的左右邊界,程序才能識別;LAST表示屬性列的結束。比如辦理理賠業務的流程號,在伺服器的返回語句里是:
<input name=flowID type="hidden" value=L05012009110000035215>
做關聯為:
web_reg_save_param("LogFlowID",
"LB=name=flowIDtype=\"hidden\" value=",
"RB=>",
LAST);
定義的參數名就叫LogFlowID,表示流程號,易於明白;左邊界從name取就可以標識了,也可取長點或短點,只要能區分;右邊界只有>,寫上就好;最後寫上LAST。
在定義的左右邊界中,如果有雙引號,在腳本中是需要轉義的,因為雙引號在C中是有意義的,這里只要表示語句信息,加上右斜杠。尖括弧直寫。
左右邊界也需要用雙引號括起來。定義好的參數寫在程序中,需要在加上單尖括弧:swfLogFlowID={LogFlowID}
五. 腳本執行過程中的報錯處理
1. vuser_init.c(3051):Error -26377: No match found for the requested parameter"proposalNo". Check whether the requested boundaries exist in theresponse data. Also, if the data you want to save exceeds 256 bytes, useweb_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]
2. vuser_init.c(3051):web_submit_data("UIPrPoEnInputNext.jsp") highest severity level was"ERROR", 4312 body bytes, 258 header bytes [MsgId: MMSG-26388]
兩個錯誤一起出現,出錯語句都是在關聯函數下的提交數據函數位置,但是具體出錯有可能是:
1). 關聯函數左右邊界沒寫對,所有信息都要用字元輸入,不能是中文或其他。
2). 在關聯函數確認寫對的情況下,看提交數據函數中的業務設置,比如有可能是因為保單查詢語句,設置的查詢時間是過去的時間,新生成的投保單當然查不到,這樣程序也會報這樣的錯。
3. loadrunner 執行理賠的立案處理,錄制好腳本後,回放,報錯:

腳本日誌信息提示:
1.Action.c(400):Error -26366: "Text=立案信息提交成功" not found for web_reg_find [MsgId: MERR-26366]
2.Action.c(400):web_submit_data("claimSave.do") highest severity level was"ERROR", 4424 body bytes, 258 header bytes [MsgId: MMSG-26388]
腳本執行過程停止在立案信息提交頁面,錯誤原因:數據問題,可能是有的應該變化的信息沒有變。
在該流程中,一個報案號只能做一次立案,而初始腳本沒有設置參數、關聯,使用保單號進行查詢,錯誤被掩蓋。在立案系統中,一個保單號可以重復報案,但是一個報案號只能一次立案,要跑通流程,需要先將這一保單再重復報案,得到新的報案號。
六. 性能測試的場景設置
腳本錄制完畢後,接著准備測試場景。
1.首先准備測試數據。比如車險投保,需要投保人和車架號信息來唯一標識一輛被保車,因此就需要將投保人和車架號做參數化處理,編輯文本框錄入大量數據讓腳本唯一讀取:
1). 錄入投保人參數,車架號參數,過程同腳本錄制的參數化處理
2). 因為投保人和車架號一起生成一條投保數據,可設置車架號隨投保人參數一起讀取,設置步驟為:
投保人文件存放路徑--File path

投保人參數數據讀取方式

腳本按列名讀取參數,每行數據讀取一次,每次循環取一次新值。
接著設置車架號參數信息:
車架號參數讀取文件路徑設為和投保人文件路徑一樣

腳本按列名讀取參數,行號選擇和讀取的投保人數據同一行

這樣得到所需的投保單生成參數數據

2.設置測試場景
點擊Tools->Create Controller Scenarios,彈出場景類型選擇框:

錄入需要的虛擬用戶數,選擇生成結果存放路徑和組名。確定後進入具體設置頁面:

Quantity表示虛擬用戶個數,group name為組名。
1). 設置運行時間選項Run – time Settings

選擇循環次數Run Logic->Iteration Count,設置循環10次,虛擬用戶數為之前設置的5人,則預計一共可生成50張投保單。

設置思考時間,思考時間通常是錄制腳本過程中,填寫頁面信息花費的時間,選擇忽略項,節省跑腳本的時間。

設置網路連接時間,點擊網路協議項Internet Protocol 的Options鍵,將彈出頁面里的HTTP-request connect timeout和 HTTP-request receive timeout的數值改為1000。使得能在網路狀況不太好的情況下向伺服器發送接收數據。

2). 設置EditSchele
選擇虛擬用戶載入方式:

可以一次載入所有用戶,也可以按需要設置,一秒載入一個用戶或其他。
選擇結束方式:

當選擇一秒載入一個用戶時,結束設置為直到跑完所有腳本停止執行。如果選擇選擇一次載入所有用戶可以選擇運行多少時間後停止和不停止選項。
這些設置完成後,一次測試場景布置完成。可以進行基線檢查或單點並發測試。
七. 性能測試步驟
一). 除測試工具外性能測試必備的系統及業務知識
1、熟悉保險行業業務特點,有助於與開發和客戶討論需求,制定測試用例;
2、熟悉系統的實現特點,開發實現方式,有助於選擇程序處理復雜、消耗系統資源的用例點;
3、熟悉數據結構,了解數據存儲規則,對腳本調試、數據准備、測試執行和監視都有幫助;
4、熟悉系統所使用的資料庫、操作系統、中間件的監視和性能問題查看,有助於測試監視和發現問題;
5、熟悉系統架構及系統集成方式,有助於分析及明確定位性能問題。
二) 性能測試執行過程
1. 基線檢查
1).目的:驗證環境是否可用;
驗證腳本是否能在場景正常執行。
2).方法:1個人單獨循環5次--沒有其他人干擾,干凈的環境
3).結果:一般一個事物的響應時間超過3秒就可能存在問題,要提報開發人
2. 單點並發
1).目的:為了快速的發現問題,如多進程的鎖機制,看是否相互間有影響。
2).方法:一般是10人或20人執行10到15分鍾,執行過程忽略思考時間。
忽略思考時間可以減少客戶端時間,加快向伺服器傳送數據速度,很大程度上增大了伺服器的壓力,20個人單點並發的壓力就相當於200人正常執行帶給伺服器的壓力。
3).單點測試的數據可以用來進行混發測試,但是有可能單點測試的數據不足以進行混發,需要自己再准備足夠的數據。
3.方案測試--混發測試
1).目的:模擬生產環境
2).方法:執行1小時左右,加上思考時間
八.資源監控及調優
性能測試執行過程中,需要監控系統各項資源,看是否能滿足用戶實際需要,如內存使用,SQL SERVER等,結合LR生成的分析報告,分析系統哪裡可能存在問題,需要改進,進行調優,這也是我之後要接著進行學習的地方。
1. 學習使用weblogic,了解weblogic常配參數的意義。通過weblogic自身的監控台,可以了解到目前的JVM的大小、資料庫連接池的使用情況以及目前連接的客戶端數量以及請求狀況等等。
2. 學習oracle使用,熟悉它的體系結構,尤其是oracle10里 的awr,awr能採集與統計數據,並從那些統計數據中導出性能量度,以跟蹤潛在的問題。
3. 需要繼續學習LR的理論知識和實際操作,參考書籍《Web性能測試實戰》、《軟體性能測試過程詳解與案例剖析》

6. moa+for+windows裡面的安全基線檢查

摘要 Microsoft 基準安全分析器 (MBSA) 可以檢查操作系統和 SQL Server 更新。MBSA 還可以掃描計算機上的不安全配置。檢查 Windows 服務包和修補程序時,它將 Windows 組件(如 Internet 信息服務 (IIS) 和 COM+)也包括在內。MBSA 使用一個 XML 文件...

7. LoadRunner學習知多少

一. 什麼是LoadRunner
LoadRunner是一種預測系統行為和性能的工業標准級負載測試工具。通過以模擬多個用戶實施並發負載測試及實時性能檢測的方式來確認和查找問題,能對整個企業架構進行測試。
二. LoadRunner的優點
1. 輕松創建虛擬用戶:通過記錄下業務流程轉為測試腳本,在機器上產生多個用戶訪問,減少負載測試需要的硬體和人力資源。
2. 創建真實的負載:可以通過Controller設定負載方案,如定義用戶在什麼時候訪問系統以產生負載,所有用戶同時執行一個動作來模擬峰值負載情況等。
3. 實時監測器:可以實時顯示交易性能數據(如響應時間)和其他系統組件如資料庫,網路等的實時性能。
4. 分析結果以精確定位問題所在:LoadRunner能收集匯總所有測試數據,提供高級的分析和報告工具。
三. LoadRunner的安裝與使用
1.安裝過程詳見上傳的LoadRunner使用手冊,在此不再詳細介紹。
2.具體使用:

點擊File新建錄制文件,也可以點擊下面的NEW快捷鍵進行新建。使用File新建,會彈出協議選擇窗口,選擇新的單協議腳本(New SingleProtocol Script)的Web(HTTP/HTML)項,確定即可(選擇Web項是因為我們測試的是Web應用)。接著會彈出開始錄制的設置項,需要寫入錄入系統的地址,點擊確定後就會根據錄入地址展現系統頁面,開始錄制腳本,出現小工具條:

第一個按鈕為錄制鍵
第二個為回放腳本鍵
第三個為停止錄制鍵
第四個為暫停錄制鍵
第五個為編譯腳本鍵
第六個為創建新的Action鍵。LR的錄制腳本分為三個部分,vuser_init、vuser_end和 Action。腳本循環執行時,只執行一次vuser_init和vuser_end,而多次循環Action部分。比如錄制投保業務時,登陸系統部分放入vuser_init,退出登陸放到vuser_end,中間的投保操作放到Action中,則循環執行時就會登陸一次投保系統開始反復執行投保操作直到結束退出系統。
第七個為用來改變錄制的options設置按鈕
第八個和第九個為插入事務的起始點和結束點鍵,結合起來構成一個完整事物,用來衡量伺服器的性能。比如錄制腳本過程中,投保系統的查詢投保單號操作,可以在輸入完查詢信息後點擊查詢按鈕前插入事務的起始點,查詢出數據後插入事務的結束點,這樣在運行測試腳本時,Loadrunner在運行到該事務時,便會計算出這個查詢操作所花時間,便於衡量伺服器執行查詢操作的性能。
第十個為插入集合點鍵,可用於衡量在加重負載的情況下伺服器的性能。比如要驗證系統是否能承受100人同時進行報案操作,便可在腳本錄入過程中,點擊報案確認鍵操作前插入集合點,這樣當腳本運行到集合點時,Loadrunner會讓100個虛擬用戶同時點擊報案確認按鈕(如果有的用戶還沒運行到集合點,先到用戶要等未到用戶一起操作)進行報案,從而達到測試目的。
最後一個為設置驗證點鍵,在創建事物後,設置一個驗證點可以用來確認事物執行是否成功。比如進行查詢事務操作時,LR只要檢測到網頁的響應,就認為事務pass,而不管顯示頁面內容是否正確。因此為了檢查Web伺服器返回的網頁是否正確,可以插入Text/Image檢查點,驗證網頁上是否存在指定的Text或Image。
設置驗證點時,如果我們驗證的文本內容是中文,有時會返回無法找到驗證內容的報錯信息,而頁面顯示又是正確的,出現問題的原因可能是因為LR對中文的支持部好,盡量選擇驗證信息為數字或字母;也可能是設置問題,可以嘗試將Tools->Recording Options->HTTP Properties下的Advanced選項里設置支持UTF-8,再檢查開發人員有沒有設置支持中文。
錄制結束後,先點擊保存腳本,同時為腳本命名。然後編譯腳本,看是否存在語法錯誤,編譯成功後,即可回放,看錄制腳本是否成功。
LoadRunner錄製得到的腳本基本沒有錯誤,不像robot會有錄入數據的缺失,只是會錄入一些非錄入系統的網頁信息,根據地址可以識別並刪除掉。
四. LoadRunner腳本錄制學習小結
1. LoadRunner錄制腳本,主要是為了進行壓力測試,所以跑流程時,跑了主要流程即可,也就是系統必須的信息錄入就可以了。
2. LoadRunner的腳本運行過程中,只能用於一次業務辦理的數據需要做參數化,如車輛車架號,車牌,報案號等,以免出現重復投保或報案無法立案現象,不能繼續進行下去。參數化步驟:
1) 將需要做參數化的數據右鍵點擊,選擇Replace with a parameter,進行設置。
2) 在彈出編輯框里,設置易懂的參數名稱,再點擊Properties進行屬性設置。
3) 點擊Create Table 按鈕,生成參數表格,再點擊Edit with Notepad按鈕,即可在記事本里添加新的參數,添加完後再次回車(不回車可能最後條數據讀取不到)關閉,參數化操作完成。
4) 使用Ctrl +H鍵可以找到替換同樣的需要參數化的數據。
3. 腳本跑流程過程中,因為業務運轉,前面生成的投保單要接著進行提交核保業務,而每次生成的投保單號不一樣,用於進行提交核保的單號也要與之前的保持一致,因此需要做關聯處理,讀取到生成的新投保單號給提交核保流程。關聯步驟:
1) .查找關聯數據第一次出現的位置,判斷該數據是由什麼函數返回的。
2) .在樹形結構里點擊返回該數據值的函數,看它的Server Response信息,用復制的關聯數據進行查找它的返回語句,找到區分度明顯的語句(不一定要是第一個返回語句),然後使用web_reg_save_param函數進行關聯。
註:關聯函數一定要寫在第一個返回該數據值的函數前。
3) .web_reg_save_param (const char *ParamName, <List ofAttributes>, LAST);
函數的第一個參數是用來對關聯數據進行定義的,取名最好可讀性強;第二個參數是用來標識關聯數據在返回語句里的具體位置的,寫出該數據的左右邊界,程序才能識別;LAST表示屬性列的結束。比如辦理理賠業務的流程號,在伺服器的返回語句里是:
<input name=flowID type="hidden" value=L05012009110000035215>
做關聯為:
web_reg_save_param("LogFlowID",
"LB=name=flowIDtype=\"hidden\" value=",
"RB=>",
LAST);
定義的參數名就叫LogFlowID,表示流程號,易於明白;左邊界從name取就可以標識了,也可取長點或短點,只要能區分;右邊界只有>,寫上就好;最後寫上LAST。
在定義的左右邊界中,如果有雙引號,在腳本中是需要轉義的,因為雙引號在C中是有意義的,這里只要表示語句信息,加上右斜杠。尖括弧直寫。
左右邊界也需要用雙引號括起來。定義好的參數寫在程序中,需要在加上單尖括弧:swfLogFlowID={LogFlowID}
五. 腳本執行過程中的報錯處理
1. vuser_init.c(3051):Error -26377: No match found for the requested parameter"proposalNo". Check whether the requested boundaries exist in theresponse data. Also, if the data you want to save exceeds 256 bytes, useweb_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]
2. vuser_init.c(3051):web_submit_data("UIPrPoEnInputNext.jsp") highest severity level was"ERROR", 4312 body bytes, 258 header bytes [MsgId: MMSG-26388]
兩個錯誤一起出現,出錯語句都是在關聯函數下的提交數據函數位置,但是具體出錯有可能是:
1). 關聯函數左右邊界沒寫對,所有信息都要用字元輸入,不能是中文或其他。
2). 在關聯函數確認寫對的情況下,看提交數據函數中的業務設置,比如有可能是因為保單查詢語句,設置的查詢時間是過去的時間,新生成的投保單當然查不到,這樣程序也會報這樣的錯。
3. loadrunner 執行理賠的立案處理,錄制好腳本後,回放,報錯:

腳本日誌信息提示:
1.Action.c(400):Error -26366: "Text=立案信息提交成功" not found for web_reg_find [MsgId: MERR-26366]
2.Action.c(400):web_submit_data("claimSave.do") highest severity level was"ERROR", 4424 body bytes, 258 header bytes [MsgId: MMSG-26388]
腳本執行過程停止在立案信息提交頁面,錯誤原因:數據問題,可能是有的應該變化的信息沒有變。
在該流程中,一個報案號只能做一次立案,而初始腳本沒有設置參數、關聯,使用保單號進行查詢,錯誤被掩蓋。在立案系統中,一個保單號可以重復報案,但是一個報案號只能一次立案,要跑通流程,需要先將這一保單再重復報案,得到新的報案號。
六. 性能測試的場景設置
腳本錄制完畢後,接著准備測試場景。
1.首先准備測試數據。比如車險投保,需要投保人和車架號信息來唯一標識一輛被保車,因此就需要將投保人和車架號做參數化處理,編輯文本框錄入大量數據讓腳本唯一讀取:
1). 錄入投保人參數,車架號參數,過程同腳本錄制的參數化處理
2). 因為投保人和車架號一起生成一條投保數據,可設置車架號隨投保人參數一起讀取,設置步驟為:
投保人文件存放路徑--File path

投保人參數數據讀取方式

腳本按列名讀取參數,每行數據讀取一次,每次循環取一次新值。
接著設置車架號參數信息:
車架號參數讀取文件路徑設為和投保人文件路徑一樣

腳本按列名讀取參數,行號選擇和讀取的投保人數據同一行

這樣得到所需的投保單生成參數數據

2.設置測試場景
點擊Tools->Create Controller Scenarios,彈出場景類型選擇框:

錄入需要的虛擬用戶數,選擇生成結果存放路徑和組名。確定後進入具體設置頁面:

Quantity表示虛擬用戶個數,group name為組名。
1). 設置運行時間選項Run – time Settings

選擇循環次數Run Logic->Iteration Count,設置循環10次,虛擬用戶數為之前設置的5人,則預計一共可生成50張投保單。

設置思考時間,思考時間通常是錄制腳本過程中,填寫頁面信息花費的時間,選擇忽略項,節省跑腳本的時間。

設置網路連接時間,點擊網路協議項Internet Protocol 的Options鍵,將彈出頁面里的HTTP-request connect timeout和 HTTP-request receive timeout的數值改為1000。使得能在網路狀況不太好的情況下向伺服器發送接收數據。

2). 設置EditSchele
選擇虛擬用戶載入方式:

可以一次載入所有用戶,也可以按需要設置,一秒載入一個用戶或其他。
選擇結束方式:

當選擇一秒載入一個用戶時,結束設置為直到跑完所有腳本停止執行。如果選擇選擇一次載入所有用戶可以選擇運行多少時間後停止和不停止選項。
這些設置完成後,一次測試場景布置完成。可以進行基線檢查或單點並發測試。
七. 性能測試步驟
一). 除測試工具外性能測試必備的系統及業務知識
1、熟悉保險行業業務特點,有助於與開發和客戶討論需求,制定測試用例;
2、熟悉系統的實現特點,開發實現方式,有助於選擇程序處理復雜、消耗系統資源的用例點;
3、熟悉數據結構,了解數據存儲規則,對腳本調試、數據准備、測試執行和監視都有幫助;
4、熟悉系統所使用的資料庫、操作系統、中間件的監視和性能問題查看,有助於測試監視和發現問題;
5、熟悉系統架構及系統集成方式,有助於分析及明確定位性能問題。
二) 性能測試執行過程
1. 基線檢查
1).目的:驗證環境是否可用;
驗證腳本是否能在場景正常執行。
2).方法:1個人單獨循環5次--沒有其他人干擾,干凈的環境
3).結果:一般一個事物的響應時間超過3秒就可能存在問題,要提報開發人
2. 單點並發
1).目的:為了快速的發現問題,如多進程的鎖機制,看是否相互間有影響。
2).方法:一般是10人或20人執行10到15分鍾,執行過程忽略思考時間。
忽略思考時間可以減少客戶端時間,加快向伺服器傳送數據速度,很大程度上增大了伺服器的壓力,20個人單點並發的壓力就相當於200人正常執行帶給伺服器的壓力。
3).單點測試的數據可以用來進行混發測試,但是有可能單點測試的數據不足以進行混發,需要自己再准備足夠的數據。
3.方案測試--混發測試
1).目的:模擬生產環境
2).方法:執行1小時左右,加上思考時間
八.資源監控及調優
性能測試執行過程中,需要監控系統各項資源,看是否能滿足用戶實際需要,如內存使用,SQL SERVER等,結合LR生成的分析報告,分析系統哪裡可能存在問題,需要改進,進行調優,這也是我之後要接著進行學習的地方。
1. 學習使用weblogic,了解weblogic常配參數的意義。通過weblogic自身的監控台,可以了解到目前的JVM的大小、資料庫連接池的使用情況以及目前連接的客戶端數量以及請求狀況等等。
2. 學習oracle使用,熟悉它的體系結構,尤其是oracle10里 的awr,awr能採集與統計數據,並從那些統計數據中導出性能量度,以跟蹤潛在的問題。
3. 需要繼續學習LR的理論知識和實際操作,參考書籍《Web性能測試實戰》、《軟體性能測試過程詳解與案例剖析》

8. 如何通過linux shell腳本來檢查文件系統類型

方法/步驟

1
如何知道當前的shell,參看下面的圖片中的命令。

2
這是bash源文件resource的內容和存放路徑

3
命令ls中使用大F列出哪些是目錄哪些是文件

4
這里的backslash符號,也就是反斜杠符號是換行續寫的意思

5
這里使用backslash符號連續輸出2個目錄下的內容

分號分隔符號;的意思是,執行完成第一個命令然後才開始執行第二個命令。

可以在輸入命令行時,按下tab鍵執行命令行自動補齊

這里介紹emacs編輯器,也就是在命令行中輸入命令時使用的編輯器

在命令行編輯時游標cursor的back和forward

按下control加小寫的L將清除屏幕,並把當前行移動到屏幕的top位置

全局command編輯器配置

inputrc文件的內容

制定用戶的command行編輯工具

用命令bind的v選項看keyboard的bindings類型

這個是substitution命令,先執行,然後將輸出傳遞給前面一個command,這里不是單引號,是~鍵上的符號

9. 有沒有PC伺服器Windows操作系統巡檢腳本

伺服器系統和一般電腦系統的區別: 1、性能的穩定性,伺服器版本的要比普通版本要高得多; 2、在文件管理或網路應用上,伺服器版本能更好的發揮功效; 3、在圖形及娛樂上來說,普通的系統要比伺服器有著更好的功效