Chromium OS Autotest 客户端测试

本文介绍了Chromium OS Autotest客户端测试的流程,包括在chroot环境下运行测试用例、编辑测试用例、检查测试结果和编写Autotest。重点讲解了如何使用test_that命令以及如何处理测试日志。
摘要由CSDN通过智能技术生成

Chromium OS Autotest 客户端测试(Client side test)


概述


背景

Autotest是一个用来测试Linux内核的开源项目。Autotest作为一个分布式系统,通过集成web接口、数据库、服务器和客户机本身
负责管理多个客户机的状态。Autotest查找client/tests和client/site_tests中的所有目录,查找以“control.”开头的简单python文件。
这些文件包含变量列表和对job.run_test()的调用。control文件中的变量告诉文件何时调度测试用例,对run_test()的调用告诉autotest
如何调用测试用例。每个测试用例都是作业(job)的一部分。Autotest创建此作业(job)对象并fork一个子进程去执行其control文件。

测试用例在的你Linux环境下的一个重要的位置,并且映射到被测设备的相似的目录位置:

  • <cros_checkout>/src/third_party/autotest/files/client/site_tests/:autotest的客户端测试用例
    • 对应到被测设备(DUT)上的目录是/usr/local/autotest/tests

先决条件

  • chroot环境
  • python知识

在客户端运行一个测试用例

当你有了Autotest后你将有两种方法运行测试用例,要么用你的chroot环境作为server要么直接在被测机器上直接运行。直接在被测机器
上运行的速度会更快,但至少需要先从服务器运行一次。

在chroot环境下使用test_that

test_that是在Chromium OS设备上运行autotest用例的命令,它替换了以前的旧命令run_remote_tests

test_that.py usage:
                            [-h] [-w WEB] [-x MAX_RUNTIME_MINS] [--oldrpc] [--fast]
                            [--args ARGS] [--results_dir RESULTS_DIR] [--pretend]
                            [--no-experimental] [--enforce-deps] [--debug]
                            [--iterations ITERATIONS] [--ssh_verbosity {0,1,2,3}]
                            [--ssh_options SSH_OPTIONS] [-b BOARD] [-m MODEL]
                            [-i BUILD] [-p POOL] [--autotest_dir AUTOTEST_DIR]
                            [--no-quickmerge] [--whitelist-chrome-crashes]
                            [--ssh_private_key SSH_PRIVATE_KEY]
                            REMOTE TEST [TEST ...]

使用 test_that(常用用法):

在指定host地址和board板卡信息的机器上运行testName的测试用例:test_that -b board dut_ip[:port] TEST

  • 运行一个名为audio_Aplay的测试用例:

    $ test_that -b ${BOARD} 172.18.92.102 audio_Aplay
    
  • 运行一个套件suite:audio,确保套件在/src/third_party/autotest/files/site_utils/attribute_whitelist.txt文件中

    $ test_that -b ${BOARD} 172.18.92.102 suite:audio
    
  • 运行名称与正则表达式匹配的所有测试^login_.*$

    $ test_that -b ${board} ${host} e:login_.*
    
  • 运行控制文件filename与正则表达式匹配的所有测试^.*control.dummy$

    $ test_that -b ${board} ${host} f:.*control.dummy
    

可以使用CTRL-C 向目标机发送一个SIGINT信号,停止自动测试。

在Chromium OS被测机器(DUT)上

在Chromium OS的机器上需要使用autotest,首先需要在chroot环境下以sever运行一次autotest,这将会将autotest的测试用例推
送到Chromium OS的机器上,否则/usr/local/autotest可能不存在于设备上,之后在Chromium OS的机器上运行如下命令:

  $/usr/local/autotest/bin/autotest_client /usr/local/autotest/tests/*testName*/control

以client的形式运行名为testName的autotest用例。

编辑一个测试用例


对于只做了python上的修改,test_that使用autotest_quickmerge复制你的python修改到sysroot上。因此不需要运行rcp/scp
去将更改推送到你的被测设备上。

最快速的修改方法是直接在客户机上修改测试例程。但如果您发现Chromium OS设备上的文本编辑器用起来不爽,则可以在
本地编辑好该文件,然后使用rcp / scp之类的复制工具将其发送到DUT。方法如下:

  • 首先增加修改到一个测试用例的python脚本文件中

  • 之后将其复制到被测机器的/usr/local/autotest/tests目录下

    rcp path/to/test_name.p
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值