测试开发之系统篇 - 按需创建测试虚拟机
首先,我们来了解一下 KVM 虚拟机有关的几个概念和工具。
kvm:基于内核的虚拟机(引擎)
qemu:用于模拟虚拟机 IO 设备
qemu-img:虚拟机磁盘管理工具
libvirt:虚拟化服务的 API 接口
virsh:基于 libvirt 实现的命令行工具
qemu-manager:图形化管理工具
新建 KVM 虚拟机时,可以指定另一磁盘文件作为 BackingFile。BackingFile 是一个只读的虚拟磁盘基础映像,可以在多个虚拟机间进行共享。基于 BackingFile 创建和运行虚拟机时,只会在自己的磁盘文件中增量地写入文件,从而提高效率、节省磁盘和维护成本。
虚拟机快照保存了虚拟机在某个指定时间点的状态,当我们在自动化测试过程中遭遇问题或错误时,可以利用快照保存、并恢复到执行中的某个时间点。借助 BackingFile 机制,虚拟机支持形如以下的多层依赖的快照链。
可使用以下命令,将处于快照链中的某个虚机,导出形成一个独立的磁盘映像文件,其不再依赖其它映像。
假设我们在用户的工作目录中,建立了以下目录。
下面用一个例子,给大家介绍下快速创建测试虚拟机的方法。
按照上一篇文章中的步骤,创建一个 Win10 虚拟机;
在虚拟机中,安装好工作中用到的测试软件;
使用以下命令,新建一个共享工具磁盘;
挂载共享磁盘到虚拟机,复制工具和文件到该盘中;
移除该虚拟机,确认对话框中,请选择不删除相关磁盘文件;
移动原虚机主磁盘文件到基础镜像目录,如 kvm/base/windows/win10/x64-pro-zh_cn.qcow2。
执行以下命令,以上述基础镜像作为 BackingFile,创建新的虚拟机磁盘;
图形界面中,新建测试虚拟机,挂在新建的虚拟机和共享磁盘。
除了使用图形界面的 qemu-manager 软件,这里也提供一种命令行的方法,大家可用于测试平台的代码中。
导出虚拟机 XML 配置文件
修改 XML 配置文件中的以下字段:
name
uuid
vcpu
memory 和 currentMemory
mac address
第 1 块 disk 的 source file
在第 1 块 disk 的 Elemnt 中,加入以下 BackingFile 有关的内容:
如需要用页面 VNC 访问虚拟机桌面,找到 XML 的 graphics 元素,修改成以下内容。
使用以下命令定义虚拟机。
使用以下命令启动虚拟机。
使用以下命令获取虚拟机的 VNC 端口编号,在 VNC 软件中使用”5900+该数字“的端口,访问虚拟机远程桌面。
常用命令:
专题目录
版权声明: 本文为 InfoQ 作者【禅道项目管理】的原创文章。
原文链接:【http://xie.infoq.cn/article/46a1141284698ff5f2a562e59】。文章转载请联系作者。
评论