美文网首页
测试开发之系统篇-按需创建测试虚拟机

测试开发之系统篇-按需创建测试虚拟机

作者: 陈哥聊测试 | 来源:发表于2021-08-05 13:59 被阅读0次

首先,我们来了解一下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容器的、按需测试环境管理平台,详情请参照网址https://github.com/easysoft/zagent

常用命令:

# 查看虚拟机信息

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

相关文章

  • 测试开发之系统篇-按需创建测试虚拟机

    首先,我们来了解一下KVM虚拟机有关的几个概念和工具。 kvm:基于内核的虚拟机(引擎) qemu:用于模拟虚拟机...

  • 软件测试,如何薪资破万

    测试理论实践 测试概论 测试流程 需求分析 测试计划 测试用例设计 缺陷管理 版本管理 测试执行 操作系统 虚拟机...

  • 测试

    软件测试的分类 按开发阶段来分:单元测试、集成测试、系统测试、验收测试。按测试的实施单位来分:开发方测试、用户测试...

  • 2、软件测试方法

    测试方法分类 按开发阶段划分1、单元测试2、集成测试3、系统测试4、回归测试5、验收测试ps.在系统测试前,可进行...

  • 如何使用控控远程控制VM-Esxi系统

    相信不少人都在VMwareWorkstation里面装虚拟机系统来进行开发测试,里面安装不同的系统可以模拟完整的网...

  • 测试开发之系统篇-安装KVM虚拟机

    虚拟机(Virtual Machine)和容器(Container)是两种流行的虚拟化技术。 虚拟机模拟机器的硬件...

  • 读书:技术团队启示录-TOP100实践案例(4)

    本节案例主旨:测试管理/质量平台 第五篇 测试管理/质量平台 使用JS创建测试文化 JS是用于Web开发中最主要的...

  • VMware Workstation Pro 14.0.0 正式

    VMware是功能最强大的虚拟机软件,用户可以在虚拟机同时运行各种操作系统,进行开发、测试、演示和部署软件,虚拟机...

  • 四、测试技术体系

    目录 软件测试分类 分层测试体系 一、软件测试分类 1、系统测试分类 2、验收测试分类 α测试:测试人员在开发环境...

  • 源码目录结构

    一般的目录结构 build --编译系统规则开发包配置 cts --兼容性测试 dalvik --java虚拟机 ...

网友评论

      本文标题:测试开发之系统篇-按需创建测试虚拟机

      本文链接:https://www.haomeiwen.com/subject/awumvltx.html