解決夜間需要不停重啟機器的自動化測試指令碼執行問題

2021-05-21 19:26:34 字數 2470 閱讀 5896

l

首先要解決指令碼使用命令列啟動的問題。由於

qtp本身不支援帶命令的執行方式。所以要找其他方法。

主要有兩種方法可以供參考,

一種是些

vbs指令碼,利用

qtp開放的

dll元件呼叫指令碼。

一種是利用現有的

qtp執行管理工具

mtm(multi test manager)

來實現,

mtm本身支援命令列啟動

qtp;並有較好的多用例管理功能。

採用vbs

指令碼編寫比較靈活,但是開發成本高,失敗風險高,考慮到專案比較緊張,所以我採用第二種方式

工具安裝及配置過程略去,需要注意的是在

mtm呼叫

qtp指令碼是,需要先啟動

qtp是

mtm版本和

qtp版本匹配的

bug。關注指令碼中

start

的方法指令碼如下:

@echo off

start qtpro.exe

ping /n 20 127.1>nul

start multitestmanager.exe /t "c:/program files/hp/quicktest professional/tests/qqstart" /close /close_mtm /log /summary

為了便於後面排程把指令碼存於

d:/runbat/testcase1.bat

#multitestmanager /noui /tb "d:/mytestmtm.mtm"

l解決完指令碼問題之後需要解決遠端重啟及作業系統問題

由於測試專案需要每做乙個測試用例就需要重啟機器,再進入測試。所以需要解決遠端重啟的問題,同時需要機器去除登入過程。

幸好shutdown

提供了遠端控制的命令如下:

start shutdown.exe -m 10.1.151.31 -r -t 0

去除計算機登入過程,需要修改登錄檔,詳細過程如下鏈結

在完成上述兩個準備之後,就要解決遠端排程的問題了。

按照之前我做過的專案都是採用在執行端做個

agent

監聽工具,然後控制端發命令給

agent

讓它來排程測試指令碼的。但是這次我想改變一下思路。

為此我開始採用

ssh方法來解決問題。通過

cygwin+openssh

來實現遠端傳送執行指令碼命令。

結果發現這種方法對於執行

gui的應用程式無效,無法排程。實驗宣告失敗,耗時

2.5個小時。為此只好採用老的方法,開發了乙個傳送端程式(

client),

和乙個監聽和排程程式

(server)

。通過server

來排程d:/runbat/testcase1.bat。l

其他傳送端指令碼如下

start shutdown.exe -m 10.1.151.31 -r -t 0       

ping /n 300 127.1>nul                         #

等待機器重啟的時間

start client 10.1.151.31 testcase1             #testcase1

表示要執行的測試用例

同時需要將

server

程式放到執行機器的啟動項裡邊。

目前未解決的問題:

執行方沒有將執**況告知傳送端。傳送端不知道何時結束,所以只能根據經驗來設定用例之間間隔時間。

補充關於遠端重啟機器

1、單擊「開始」按鈕,選擇「執行」,在對話方塊中輸入「gpedit.msc」,然後單擊「確定」,開啟「組策略編輯器」。  

2、在「組策略」視窗的左窗格中開啟「計算機配置」—「windows   設定」—「安全設定」—「本地策略」—「使用者權利指派」。  

3、在「組策略」視窗的右窗格中選擇「force   shutdown   from   a   remote   system   (從遠端系統強制關機)」,雙擊。  

4、在彈出的對話方塊中顯示目前只有「administrators」組的成員才有權從遠端關機;單擊對話方塊下方的「新增使用者或組」按鈕,然後在新彈出的對話方塊中輸入「guest」,再單擊「確定」。  

5、這時在「從遠端系統強制關機」的屬性中便新增了乙個「guest」使用者,單擊「確定」即可。  

6、關閉「組策略」窗中。  

通過上述操作後,我們便給計算機netproxy的guest使用者授予了遠端關機的許可權。以後,我們要遠端關閉計算機netproxy,只要在網路中其他裝有windows   xp   的電腦中輸入以下命令即可:  

shutdown   -s   –m   //netproxy   -t   30   (其他引數用法同上)  

7.關閉物件(機器)必須開啟guest使用者

centos重啟不能自動聯網的解決方法

在命令列下輸入 下面的ifcfg eth0,eth0為我的網絡卡名字。機器之間不同,請先檢視自己網絡卡的名字 vi etc sysconfig network scripts ifcfg eth0 進行如下修改 device eth0 描述網絡卡對應的裝置別名,例如ifcfg eth0的檔案中它為e...

FreeBSD關機後自動重啟的解決辦法

我用的是華碩的膝上型電腦,不知道別的電腦有沒有這個情況,按handbook關機指令為shutdown p now,但是我執行這個指令後電腦卻自動重啟,用linux關機指令shutdown h now,電腦不自動重啟了,卻停留在按任意鍵重啟的介面,查了一回之後,貌似原來的freebsd版本是這樣關機。...

公司自動化測試 需要解決的問題。

這也算是個問題 檔案分層,降低耦合,提高 閱讀性。1 時間控制項,選擇時間的問題。2 所有浮層 從浮層頁選擇產品,選擇使用者 等,沒有資料的問題。3 傳遞引數問題。建立 乙個產品,需要到 所有任務中,找到對應的產品 1 切換檢視。從 預設檢視,切換到iframe 中。selenium webdriv...