国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法與流程

      文檔序號(hào):11250795閱讀:1078來源:國(guó)知局
      一種基于Python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法與流程

      本發(fā)明涉及服務(wù)器測(cè)試技術(shù)領(lǐng)域,具體地說是一種基于python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法。



      背景技術(shù):

      隨著目前互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的不斷發(fā)展,服務(wù)器的數(shù)量需求與型號(hào)需求越來越豐富。為了滿足所有產(chǎn)品都經(jīng)過完整測(cè)試的要求,單個(gè)測(cè)試人員勢(shì)必要進(jìn)行多個(gè)項(xiàng)目的測(cè)試,測(cè)試效率直線下降。因此,自動(dòng)化測(cè)試的必要性就進(jìn)一步加強(qiáng)。自動(dòng)化測(cè)試一個(gè)很重要的特點(diǎn)就是遠(yuǎn)程測(cè)試。

      以往的遠(yuǎn)程測(cè)試,大致分為兩種:

      第一種,測(cè)試人員手動(dòng)ssh登陸

      這種方法的優(yōu)點(diǎn)是測(cè)試結(jié)果直觀有效,測(cè)試人員能夠進(jìn)行豐富的操作。缺點(diǎn)在于,一旦不能順利連接,測(cè)試人員需要進(jìn)行各類排查,這一塊根據(jù)測(cè)試人員經(jīng)驗(yàn)的豐富度,難易程度呈兩級(jí)分化狀態(tài),不利于工業(yè)化測(cè)試。

      第二種,利用expect自動(dòng)登陸:

      這種方法的優(yōu)點(diǎn)是能夠自動(dòng)登陸,進(jìn)行自動(dòng)化測(cè)試。缺點(diǎn)在于,通用性不夠好。expect適用于交互性測(cè)試,但在遠(yuǎn)程測(cè)試的場(chǎng)景中,當(dāng)自動(dòng)登陸后,假若交回控制,當(dāng)前終端將為遠(yuǎn)程機(jī)器,在隨后的測(cè)試結(jié)束退出方面存在問題。假若不交回控制,直接結(jié)束連接。那么對(duì)于一個(gè)測(cè)試動(dòng)輒好幾十個(gè)命令的情況將會(huì)大量的建立連接,不僅存在穩(wěn)定性的問題,還浪費(fèi)時(shí)間。



      技術(shù)實(shí)現(xiàn)要素:

      為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種高效、客觀的基于python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法。

      本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法,其特征是:包括以下步驟,

      s1,控制機(jī)對(duì)多個(gè)待測(cè)機(jī)同時(shí)進(jìn)行遠(yuǎn)程連接測(cè)試;

      s2,對(duì)通過連接測(cè)試的待測(cè)機(jī)進(jìn)行遠(yuǎn)程連接;

      s3,控制機(jī)對(duì)連接的待測(cè)機(jī)進(jìn)行狀態(tài)檢測(cè),待測(cè)機(jī)狀態(tài)正常的進(jìn)入s4,對(duì)狀態(tài)不正常的待測(cè)機(jī)中斷測(cè)試;

      s4,對(duì)狀態(tài)正常的待測(cè)機(jī)進(jìn)行遠(yuǎn)程測(cè)試,并向控制機(jī)回傳測(cè)試結(jié)果。

      進(jìn)一步地,步驟s1中所述遠(yuǎn)程連接測(cè)試包括ping通測(cè)試和ssh連接測(cè)試。

      進(jìn)一步地,所述ping通測(cè)試具體為:ping向每個(gè)待測(cè)機(jī)發(fā)送若干請(qǐng)求包,檢測(cè)獲取的響應(yīng)包的個(gè)數(shù),若至少獲得1個(gè)響應(yīng)包,則該待測(cè)機(jī)通過ping通測(cè)試,否則每隔特定時(shí)間重復(fù)發(fā)送請(qǐng)求包,直至達(dá)到最大發(fā)送次數(shù),若控制機(jī)始終未收到響應(yīng)包,則判定該待測(cè)機(jī)未通過ping通檢測(cè)。

      進(jìn)一步地,控制機(jī)記錄通過ping通測(cè)試的待測(cè)機(jī)返回響應(yīng)包耗費(fèi)的時(shí)間。

      進(jìn)一步地,所述特定時(shí)間為30秒,所述最大發(fā)送次數(shù)為20次。

      進(jìn)一步地,步驟s2中控制機(jī)通過python的paramiko模塊進(jìn)行遠(yuǎn)程連接,所述paramiko模塊分別對(duì)待測(cè)機(jī)進(jìn)行密碼登陸嘗試和rsa登陸嘗試。

      進(jìn)一步地,步驟s3中所述遠(yuǎn)程連接包括:待測(cè)機(jī)記錄自身的開機(jī)時(shí)間,控制機(jī)將所述開機(jī)時(shí)間與所述通過ping通測(cè)試的待測(cè)機(jī)返回響應(yīng)包耗費(fèi)的時(shí)間進(jìn)行比較,根據(jù)比較的差值,判斷待測(cè)機(jī)的啟動(dòng)狀態(tài)是否正常。

      進(jìn)一步地,步驟s4中對(duì)所述狀態(tài)正常的待測(cè)機(jī)進(jìn)行遠(yuǎn)程測(cè)試包括在控制機(jī)上建立paramiko對(duì)象,根據(jù)待測(cè)機(jī)的信息,建立待測(cè)機(jī)與控制機(jī)的ssh連接,控制機(jī)通過ssh通道向待測(cè)機(jī)發(fā)送測(cè)試命令,待測(cè)機(jī)執(zhí)行所述測(cè)試命令,獲取測(cè)試結(jié)果,并將所述測(cè)試結(jié)果回傳至控制機(jī)。

      進(jìn)一步地,所述待測(cè)機(jī)的信息包括待測(cè)機(jī)的ip、用戶名和登陸密鑰。

      本發(fā)明的有益效果是:本發(fā)明利用1臺(tái)控制機(jī)同時(shí)對(duì)多臺(tái)待測(cè)機(jī)進(jìn)行遠(yuǎn)程連接測(cè)試和遠(yuǎn)程檢測(cè),形成1對(duì)多的測(cè)試觀察,提高測(cè)試效率,為后續(xù)的自動(dòng)化測(cè)試奠定了基礎(chǔ);

      在對(duì)待測(cè)機(jī)狀態(tài)監(jiān)測(cè)時(shí),比較控制機(jī)和待測(cè)機(jī)分別記錄的ping通時(shí)間和開機(jī)時(shí)間,客觀的體現(xiàn)待測(cè)機(jī)的狀態(tài)結(jié)果,避免人為監(jiān)測(cè)的測(cè)試經(jīng)驗(yàn)對(duì)于監(jiān)測(cè)堅(jiān)果的主觀影響,使對(duì)待測(cè)機(jī)狀態(tài)的監(jiān)測(cè)更加準(zhǔn)確;

      控制機(jī)對(duì)待測(cè)機(jī)進(jìn)行遠(yuǎn)程連接時(shí),使用python的paramiko模塊進(jìn)行兩種登錄方式的嘗試,避開了linux系統(tǒng)不同版本間兼容性的問題,使本發(fā)明所述遠(yuǎn)程測(cè)試方法的應(yīng)用范圍更加廣泛。

      附圖說明

      圖1是本發(fā)明所述方法的流程圖。

      圖2是本發(fā)明所述遠(yuǎn)程連接檢測(cè)的流程圖。

      具體實(shí)施方式

      為能清楚說明本方案的技術(shù)特點(diǎn),下面通過具體實(shí)施方式,并結(jié)合其附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。本發(fā)明省略了對(duì)公知常識(shí)的描述以避免不必要地限制本發(fā)明。

      如圖1所示,本發(fā)明的一種基于python對(duì)服務(wù)器進(jìn)行遠(yuǎn)程測(cè)試的方法,是在控制機(jī)上執(zhí)行的python測(cè)試,包括控制機(jī)對(duì)多個(gè)待測(cè)機(jī)同時(shí)進(jìn)行遠(yuǎn)程連接測(cè)試,python檢測(cè)待測(cè)機(jī)是否進(jìn)行有效連接,對(duì)通過連接測(cè)試的待測(cè)機(jī)發(fā)送連接命令,進(jìn)行連接,控制機(jī)檢測(cè)待測(cè)機(jī)的/proc/uptime記錄的開機(jī)時(shí)間,進(jìn)行待測(cè)機(jī)啟動(dòng)狀態(tài)的判斷,對(duì)于啟動(dòng)狀態(tài)正常的待測(cè)機(jī)建立有效連接,開始遠(yuǎn)程測(cè)試。

      具體來說,本發(fā)明所述方法包括以下s1-s4,4個(gè)步驟:

      s1,控制機(jī)執(zhí)行python測(cè)試,對(duì)多個(gè)待測(cè)機(jī)同時(shí)進(jìn)行遠(yuǎn)程連接測(cè)試;

      如圖2所示,遠(yuǎn)程連接檢測(cè)主要檢測(cè)兩方面:能否ping通,能否進(jìn)行ssh連接。

      檢測(cè)能否ping通,所謂ping通是指兩臺(tái)設(shè)備之間網(wǎng)絡(luò)是通的??紤]到機(jī)器間的啟動(dòng)時(shí)間差異,這里采用輪動(dòng)式方法進(jìn)行測(cè)試。每輪間隔30秒,總共20輪測(cè)試。這樣做,一來可以節(jié)省連接時(shí)間,二來保證了在能夠連接的情況下,肯定能夠連接。

      具體地,控制機(jī)每次ping發(fā)三個(gè)請(qǐng)求包,如果每次能夠獲取最少一個(gè)響應(yīng)包,則視該待測(cè)機(jī)為可以ping通,標(biāo)識(shí)ping通檢測(cè)結(jié)果為pass,進(jìn)行下一個(gè)待測(cè)機(jī)的檢測(cè)。如果三個(gè)請(qǐng)求包都無法收到響應(yīng),則間隔30秒后進(jìn)行第二次ping通請(qǐng)求,接收響應(yīng)包,重復(fù)次數(shù)最多為20次(10分鐘為系統(tǒng)啟動(dòng)最大限度時(shí)間)。

      對(duì)于通過ping通檢測(cè)的待測(cè)機(jī)檢測(cè)能否ssh連接:

      遠(yuǎn)程文件傳輸通過ssh通道,一來速度快,二來是加密傳輸。

      在能夠ping通的基礎(chǔ)上檢測(cè)能否進(jìn)行ssh連接,這里直接遠(yuǎn)程密鑰登陸,根據(jù)登陸結(jié)果進(jìn)行下一步驟的動(dòng)作,如果登陸出錯(cuò),則提示錯(cuò)誤信息,并中斷程序且安全退出該待測(cè)機(jī)。

      進(jìn)一步地,控制機(jī)記錄通過ping通測(cè)試的待測(cè)機(jī)返回響應(yīng)包耗費(fèi)的時(shí)間。

      s2,對(duì)通過連接測(cè)試的待測(cè)機(jī)進(jìn)行遠(yuǎn)程連接;

      遠(yuǎn)程連接利用python的paramiko模塊(paramiko是用python語言寫的一個(gè)模塊,遵循ssh2協(xié)議,支持以加密和認(rèn)證的方式,進(jìn)行遠(yuǎn)程服務(wù)器的連接)。paramiko模塊支持密碼登陸與rsa登陸兩種方式。之所以需要做這兩種嘗試,是由于在不同的機(jī)器上ssh設(shè)置的權(quán)限不同,特別是root賬戶下,基本不支持密碼登陸。因此對(duì)于具體針對(duì)待測(cè)機(jī)的連接方式這里需要做兩種登陸嘗試,分別為密碼登陸嘗試與rsa登陸嘗試,因此有必要做兼容性處理

      所述兼容性處理是指:linux系統(tǒng)下,不同發(fā)行版本之間差異很大,很多廠商也都做了自己的定制化系統(tǒng),導(dǎo)致不同系統(tǒng)下,ssh協(xié)議的設(shè)置不同,部分系統(tǒng)不支持rsa登陸。這里正常的做法是第一次建立連接采用密碼的方式,之后就采用rsa登陸的方式(rsa更快更穩(wěn)定)。當(dāng)二次登陸rsa無法建立連接時(shí),應(yīng)該再次啟用密碼登陸,而不能當(dāng)作連接錯(cuò)誤處理。

      s3,控制機(jī)對(duì)連接的待測(cè)機(jī)進(jìn)行狀態(tài)檢測(cè),待測(cè)機(jī)狀態(tài)正常的進(jìn)入s4,對(duì)狀態(tài)不正常的待測(cè)機(jī)中斷測(cè)試;

      連接待測(cè)機(jī)后,控制機(jī)檢測(cè)/proc/uptime文件,該文件記錄系統(tǒng)的運(yùn)行時(shí)間,包括系統(tǒng)啟動(dòng)到現(xiàn)在的時(shí)間和系統(tǒng)的空閑時(shí)間。根據(jù)啟動(dòng)時(shí)間長(zhǎng)短,判斷是否啟動(dòng)異常。

      具體地,linux系統(tǒng)下的待測(cè)機(jī),/proc/uptime中記錄了機(jī)器啟動(dòng)時(shí)長(zhǎng),對(duì)其進(jìn)行檢測(cè),是為了與步驟s1中控制機(jī)記錄通過ping通測(cè)試的待測(cè)機(jī)返回響應(yīng)包耗費(fèi)的時(shí)間進(jìn)行比較,當(dāng)二者差值過大時(shí),意味著在系統(tǒng)啟動(dòng)過程中必然遇到了意料之外的事情,系統(tǒng)極有可能非正常啟動(dòng),在這種情況下,就應(yīng)該對(duì)待測(cè)機(jī)的測(cè)試進(jìn)行中斷,保留測(cè)試環(huán)境,確定屬于正常情況下,再繼續(xù)進(jìn)行測(cè)試。

      相較于手動(dòng)測(cè)試,這種基于時(shí)間對(duì)比的方式,能夠更加客觀的體現(xiàn)測(cè)試結(jié)果

      s4,當(dāng)上面步驟s1-s3的結(jié)果都是pass時(shí),控制機(jī)開始對(duì)待測(cè)機(jī)進(jìn)行遠(yuǎn)程測(cè)試并在測(cè)試結(jié)束后將結(jié)果回傳。

      具體地,由于已經(jīng)可以建立ssh連接,此時(shí)直接建立paramiko對(duì)象,然后根據(jù)待測(cè)機(jī)的ip、用戶名和密碼等信息,建立控制機(jī)與待測(cè)機(jī)之間的ssh連接,并傳遞測(cè)試命令并且在待測(cè)機(jī)上執(zhí)行,控制機(jī)會(huì)向待測(cè)機(jī)發(fā)送多個(gè)測(cè)試命令,對(duì)應(yīng)的,獲取多個(gè)測(cè)試結(jié)果(無論正確與否),并將其回傳至控制機(jī),進(jìn)行顯示與保存。

      對(duì)測(cè)試結(jié)果通過控制機(jī)的shell框進(jìn)行顯示,每個(gè)待測(cè)機(jī)有獨(dú)立的shell顯示框,對(duì)多個(gè)測(cè)試結(jié)果分開顯示。

      以上所述只是本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也被視為本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1