測試開發之系統篇-按需建立測試虛擬機器
首先,我們來了解一下KVM虛擬機器有關的幾個概念和工具。
- kvm:基於核心的虛擬機器(引擎)
- qemu:用於模擬虛擬機器IO裝置
- qemu-img:虛擬機器磁碟管理工具
- libvirt:虛擬化服務的API介面
- virsh:基於libvirt實現的命令列工具
- qemu-manager:圖形化管理工具
新建KVM虛擬機器時,可以指定另一磁碟檔案作為 BackingFile。BackingFile是一個 只讀的虛擬磁碟基礎映像,可以在多個虛擬機器間進行共享。基於BackingFile建立和執行虛擬機器時,只會在自己的磁碟檔案中增量地寫入檔案,從而提高效率、節省磁碟和維護成本。
虛擬機器快照儲存了虛擬機器在某個指定時間點的狀態,當我們在自動化測試過程中遭遇問題或錯誤時,可以利用快照儲存、並恢復到執行中的某個時間點。藉助BackingFile機制,虛擬機器支援形如以下的多層依賴的快照鏈。
base image <-- vm01 <-- snap 1 <-- snap 2 <-- vm02(active)
可使用以下命令,將處於快照鏈中的某個虛機,匯出形成一個獨立的磁碟映像檔案,其不再依賴其它映像。
qemu-img convert -O qcow2 vm02.qcow2 vm-templ.img
假設我們在使用者的工作目錄中,建立了以下目錄。
- kvm 根目錄
- iso 存放光碟映象
- base 存放BackingFile
- share 存放共享磁碟映象,使用者儲存測試工具、驅動等
- image 存放測試機的磁碟映象 xml 存放匯出的虛擬機器XML配置檔案
下面用一個例子,給大家介紹下快速建立測試虛擬機器的方法。
- 按照 上一篇文章中的步驟,建立一個Win10虛擬機器;
- 在虛擬機器中,安裝好工作中用到的測試軟體;
- 使用以下命令,新建一個共享工具磁碟;
qemu-img create -f qcow2 -o cluster_size=2M kvm/share/tools.qcow2 10G
- 掛載共享磁碟到虛擬機器,複製工具和檔案到該盤中;
- 移除該虛擬機器,確認對話方塊中,請選擇不刪除相關磁碟檔案;
- 移動原虛機主磁碟檔案到基礎映象目錄,如kvm/base/windows/win10/x64-pro-zh_cn.qcow2
- 執行以下命令,以上述基礎映象作為BackingFile,建立新的虛擬機器磁碟;
qemu-img create -f qcow2 -o cluster_size=2M,backing_file=kvm/base/windows/win10/x64-pro-zh_cn.qcow2 kvm/image/test-win10-x64-pro-zh_cn-01.qcow2 40G
- 圖形介面中,新建測試虛擬機器,掛在新建的虛擬機器和共享磁碟。
除了使用圖形介面的qemu-manager軟體,這裡也提供一種命令列的方法,大家可用於測試平臺的程式碼中。
-
匯出虛擬機器XML配置檔案
virsh dumpxml test-win10-x64-pro-zh > kvm/xml/test-win10-x64-pro-zh.xml
- 修改XML配置檔案中的以下欄位:
name
uuid
vcpu
memory和currentMemory
mac address
第1塊disk的source file
- 在第1塊disk的Elemnt中,加入以下BackingFile有關的內容。
<backingStore type="file" index="2"> <format type="qcow2"/> <source file="/home/aaron/kvm/base/windows/win10/x64-pro-zh_cn.qcow2"/> <backingStore/>
- 如需要用頁面VNC訪問虛擬機器桌面,找到XML的graphics元素,修改成以下內容。
<graphics type="vnc" port="-1" autoport="yes" listen="0.0.0.0" passwd="P2ssw0rd"> <listen type="address" address="0.0.0.0"/> </graphics>
-
使用以下命令定義虛擬機器。
virsh define kvm/xml/test-win10-x64-pro-zh.xml
-
使用以下命令啟動虛擬機器。
virsh start test-win10-x64-pro-zh
- 使用以下命令獲取虛擬機器的VNC埠編號,在VNC軟體中使用”5900+該數字“的埠,訪問虛擬機器遠端桌面。
virsh vncdisplay test-win10-x64-pro-zh
另外,本人使用GO語言實現了基於libvirt介面的虛擬機器管理有關功能,此開源專案旨在為大家提供一個基於KVM虛擬機器和Docker容器的、按需測試環境管理平臺,詳情請參照網址 。
常用命令:
# 檢視虛擬機器資訊 qemu-img info --backing-chain kvm/image/test-win10-x64-pro-zh_cn-01.qcow2 # 修改虛擬機器磁碟大小 qemu-img resize x64-pro-zh_cn.qcow2 +10G # 檢視虛擬機器裡列表 virsh list --all # 檢視虛擬機器VNC埠 virsh vncdisplay win10-test # 匯出虛擬機器XML配置檔案 virsh dumpxml win10-test > win10-test.xml # 建立虛擬機器磁碟映象 qemu-img create -f qcow2 -o cluster_size=2M,backing_file=base.qcow2 win10-test.qcow2 40G # 定義、取消定義,啟動、停止虛擬機器 virsh define win10-test.xml virsh start win10-test virsh destroy win10-test virsh undefine win10-test
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2785405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試開發之系統篇-安裝KVM虛擬機器虛擬機
- 測試開發之系統篇-常用系統命令
- 測試開發之系統篇-Docker常用操作Docker
- 測試開發之系統篇-Docker容器安裝Docker
- 測試開發之效能篇-JMeter介面測試JMeter
- LOL虛擬機器 最新測試可玩虛擬機
- 測試開發之效能篇-效能測試設計
- 深入Java虛擬機器之 -- 總結面試篇Java虛擬機面試
- 虛擬機器搭建測試環境解決方案虛擬機
- 測試開發之網路篇-IP地址
- 測試開發之自動化篇-自動化測試框架設計框架
- 【推薦系統篇】--推薦系統之測試資料
- 測試開發專題-開篇
- 測試開發之網路篇-網路路由路由
- 虛擬機器之linux系統命令虛擬機Linux
- 測試開發之介面篇-使用K6完成介面自動化測試
- 系統測試-從研發到測試過程
- Kali Linux 滲透測試手冊(1.1)安裝虛擬機器Linux虛擬機
- Parallels Desktop | Mac 系統超好用的虛擬機器,不來試試嗎ParallelMac虛擬機
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- 測試開發之網路篇-常用命令
- 門戶系統測試---功能測試
- .netcore持續整合測試篇之測試方法改造NetCore
- RabbitMQ工廠虛擬機器叢集可靠性測試報告MQ虛擬機測試報告
- 虛擬機器快速搭建弱網測試環境 ATC (適合新手)虛擬機
- 【親測有效】PD虛擬機器 17 for Mac功能!pd虛擬機器支援m1和12系統虛擬機Mac
- 地鐵閘機系統如何開展測試?
- 測試用例 虛擬dom下載
- 門戶系統測試---測試計劃
- 測試開發之網路篇-常用服務協議協議
- 深入淺出解讀 Java 虛擬機器的差別測試技術Java虛擬機
- 虛擬ECU:徹底改變汽車軟體開發與測試
- 效能測試之入門篇
- 測試開發之前端篇-瀏覽器開發者工具使用(TODO)前端瀏覽器
- 軟體系統測試有哪些測試過程?系統測試報告如何收費?測試報告
- jmeter模擬spike測試(尖峰測試)JMeter
- 虛擬化環境下的效能測試
- .net持續整合測試篇之Nunit引數化測試