KVM Autotest client的使用

本文详细介绍了使用autotest进行自动化测试的全过程,包括下载源代码、安装依赖、配置、运行测试、查看结果及错误处理等步骤。重点展示了如何通过脚本简化配置过程,以及如何在遇到测试错误时调整配置以实现立即退出。同时提供了理解autotest配置文件的指南,帮助开发者更深入地掌握自动化测试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装

下载源代码

git clone git://github.com/autotest/autotest.git


安装其他的依赖

https://github.com/autotest/autotest/wiki/KVMAutotest-InstallPrerequesitePackagesClient


2. 快速配置

client/test/kvm/get_started.py

运行这个脚本,会使用一些默认的配置文件,并且设只好默认的路径。


3.查看配置

在运行之前,可以先查看一下当前的配置。 这样可以看到底有哪些测试会在本次测试中运行。

richard@richard:~/git/autotest$ cd client/tests/kvm
richard@richard:~/git/autotest/client/tests/kvm$ ../../common_lib/cartesian_config.py tests.cfg
dict    1:  smp2.CustomGuestLinux.uptime

加上-c选项,可以列出详细参数

richard@richard:~/git/autotest/client/tests/kvm$ ../../common_lib/cartesian_config.py -c tests.cfg
dict    1:  smp2.CustomGuestLinux.uptime
    backup_image = no
    backup_image_on_check_error = no

4. 运行简单的测试

richard@richard:~/git/autotest/client/tests/kvm$ ../../bin/autotest control


5. 查看测试结果

测试结果存放在 client/results/default

1. html 格式的   client/results/default/job_report.html

2. 文本格式的   在kvm 目录下运行  scan_results.py

richard@richard:~/git/autotest/client/tests/kvm$ ../../tools/scan_results.py
Test                                        Status     Seconds  Info
----                                        ------     -------  ----
        (Result file: ../../results/default/status)
smp2.CustomGuestLinux.uptime                FAIL       369      Unhandled VMIPAddressMissingError: Cannot find IP address for MAC address 9a:6b:f5:f9:0a:6f    [context: logging into 'vm1']
----                                        GOOD       372      

3. 每个test的log存放在  client/results/default/test_name/log


6。添加一个uptime测试用例

diff --git a/client/tests/kvm/subtests.cfg.sample b/client/tests/kvm/subtests.cfg.sample
index ccfd2f8..16ee7cc 100644
--- a/client/tests/kvm/subtests.cfg.sample
+++ b/client/tests/kvm/subtests.cfg.sample
@@ -1113,6 +1113,9 @@ variants:
                 dd_timeout = 900
                 check_cmd_timeout = 900
 
+    - uptime: install setup image_copy unattended_install.cdrom
+        type = uptime
+
     - cpu_hotplug_test:
         type = cpu_hotplug
         cpu_hotplug_timeout = 600
diff --git a/client/virt/tests/uptime.py b/client/virt/tests/uptime.py
new file mode 100644
index 0000000..dba62bc
--- /dev/null
+++ b/client/virt/tests/uptime.py
@@ -0,0 +1,13 @@
+import logging
+def run_uptime(test, params, env):
+    """
+    Docstring describing uptime.
+    """
+    print run_uptime.__doc__
+    vm = env.get_vm(params["main_vm"])
+    vm.verify_alive()
+    timeout = float(params.get("login_timeout", 240))
+    session = vm.wait_for_login(timeout=timeout)
+    uptime = session.cmd('uptime')
+    logging.info("Guest uptime result is: %s", uptime)

+    if session.get_command_status("touch /tmp/snapshot_test") != 0:
+        error.TestFail("can not touch file");
+    else:
+       logging.info("can touch")
+    session.close()

7。 遇到测试错误 就退出

默认配置下,autotest会将所有的测试用例全部运行完后才退出。

不过有时候我们会希望当测试遇到错误后就直接退出。

将 tests.cfg中 abort_on_error = yes 注释去掉


8.  进一步理解kvm autotest 的配置文件

https://github.com/autotest/autotest/wiki/CartesianConfig

就是个笛卡尔积。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值