CheckBox Navigation(一)Using Checkbox

Checkbox

Using Checkbox

1. Getting Started
Installation

Checkbox can be installed from a PPA.

$ sudo add-apt-repository ppa:hardware-certification/public
$ sudo apt-get update
$ sudo apt-get install checkbox-ng plainbox-provider-resource-generic plainbox-provider-certification-client plainbox-provider-checkbox canonical-certification-client

plain - box-provider-certification-client包将拉出许多与桌面相关的包。
如果打算在服务器上运行测试,请转而运行以下命令:

$ sudo add-apt-repository ppa:hardware-certification/public
$ sudo apt-get update
$ sudo apt-get install checkbox-ng plainbox-provider-resource-generic plainbox-provider-certification-server plainbox-provider-checkbox canonical-certification-server

要运行命令行版本的checkbox ,请在终端上运行checkbox-cli
您将看到测试计划选择屏幕:
checkbox-cli
选定测试计划后,可以选择要运行的各个测试:
在这里插入图片描述

当测试运行时,结果被保存到文件中,程序提示将它们提交到 Launchpad。

2. Checkbox Command Line

当checkbox 运行时没有任何参数,即:

$ checkbox-cli

交互式会话使用默认选项启动。

  • (1) checkbox-cli startprovider
    startprovider 子命令创建一个新的提供者,例如:
$ checkbox-cli startprovider com.acme:example

该命令还将向该提供程序添加示例单元,以创建一个空提供程序, 使用——empty选项,例如:

$ checkbox-cli startprovider --empty com.acme:another-example
  • (2) checkbox-cli list
    list命令打印出下列类型的所有单位。
    目前有以下类型你可以列出:
    • job
    • test plan
    • category
    • file
    • template
    • file
    • manifest entry
    • packaging meta-data
    • exporter
    • all-jobs (this special type list both, jobs and templates generating jobs and has a different output formatting)

example:

$ checkbox-cli list job
$ checkbox-cli list "test plan"
$ checkbox-cli list all-jobs
Note

对于像test plan这样的多单词类型,记得转义中间的空格,或者引用类型名。

  • Output Formatting

    对于"all-jobs"组,可以根据需要对输出进行格式化。在列出all-jobs时,使用——format选项。该字符串将使用列出的作业的属性来插入。调用checkbox-cli list all-jobs——format ?查看可用属性。如果作业定义没有指定的属性,则将在其位置打印<missing $property_name>。附加属性——当列出所有作业时,将向格式化程序提供unit_type。对于普通作业,它被设置为job;对于使用模板单元生成的作业,它被设置为template job

Example:

$ checkbox-cli list all-jobs -f "{id}\n\t{tr_summary}\n"
$ checkbox-cli list all-jobs -f "{id}\n"
$ checkbox-cli list all-jobs -f "{unit_type:12} | {id:50} | {summary}\n"
Note

格式化字符串中的\n\t分别被解释并替换为新的 line 和 tab。
当使用自己的格式时,作业不加新行后缀——您必须显式地使用它。

  • (3)checkbox-cli list-bootstrapped

    这个特殊的命令列出了在引导阶段之后将在设备上运行的所有作业,即在所有资源作业运行之后,以及所有模板都实例化之后。

    它需要一个参数,即应该执行引导的测试计划。

Example:

$ checkbox-cli list-bootstrapped com.canonical.certification::default

checkbox-cli list all-jobs命令类似,可以使用-f参数对checkbox-cli list-bootstrapped的输出进行格式化。
更多信息请参见checkbox-cli列表 Output Formatting部分。

  • (4)checkbox-cli tp-export

    tp-export 将测试计划导出为电子表格文档。测试按类别分组,并按字母顺序与完整描述(或工作总结,如果没有描述)。除了描述,还导出了认证状态(阻断/非阻断)。

    这个会话类似于 list-bootstrapped,但是所有的资源作业都返回假对象,并且模板过滤器被禁用以确保模板单元的实例化。默认情况下只返回一个资源对象。唯一的例外是graphics_card资源,其中使用两个对象来模拟混合图形。

Example:

$ checkbox-cli tp-export com.canonical.certification::client-cert-18-04

它可以使用pdf转换器自动生成测试用例指南:

Example:

$ checkbox-cli tp-export com.canonical.certification::client-cert-18-04 | xargs -d '\n' libreoffice --headless --invisible --convert-to pdf
  • (5)checkbox-cli launcher
    launcher命令允许您自定义checkbox 体验。

参见Checkbox launchers tutorial教程了解更多细节。

Note

当以文件作为唯一参数调用checkbox-cli时,将隐含launcher。例如:

$ checkbox-cli my-launcher

等价于:

$ checkbox-cli launcher my-launcher
  • (6)checkbox-cli run

    run允许您运行特定的测试计划或一组作业。

    要运行一个测试计划,使用测试计划的id作为参数,例如:

$ checkbox-cli run com.canonical.certification::smoke
Note

上面的命令运行所有id以com.acme开头的作业:

您可以使用多个模式进行匹配,例如:

$ checkbox-cli run .*true .*false
3. Looking Deeper
  • Providers

首先,我们安装了一些“提供者”包。提供者被设计来封装测试描述及其相关工具和数据。提供程序是在Debian包中发布的,这允许我们表达依赖关系,以确保安装所需的外部包,我们也可以分离这些依赖关系;例如,用于服务器测试的提供程序实际上并不包含特定于服务器的测试定义(我们试图将所有的测试定义保存在checkbox 提供程序中),但是它确实依赖于服务器测试所需的所有包。大多数用户都想要资源和checkbox 提供程序,因为它们包含了许多预先准备的测试,但是这个组织允许提供微小的核心和完全定制的提供程序,而不需要外部依赖。

提供程序在配置文件中描述(存储在 /usr/share/plainbox-providers-1中)。此文件描述在何处从提供程序中找到所有文件。这个文件通常是自动管理的(稍后详细介绍)。提供者可以提供作业、二进制文件、数据和测试计划。

作业或测试是checkbox 所知道的最小单元或描述。它描述了一个单一的测试(历史上称为工作)。最简单的工作是:

id: a-job
plugin: manual
_description: Ensure your computer is turned on. Is the computer turned on?

作业在提供者的作业目录中提供。这个超级简单的例子有三个字段:idplugindescription。(一份真正的工作也应该包括一个_summary field。)id标识作业(当然),_description提供作业的纯文本描述。在本例中,描述显示给用户,用户必须响应,因为plugin类型是manualplugin类型包括(但不限于):

  • manual – 要求用户执行某些操作并报告结果的测试。
  • shell – 不需要用户交互的自动化测试;测试是通过还是失败取决于脚本或命令的返回值。
  • resource – 任务,标识系统拥有的资源。(如离散GPU、Wi-Fi模块)。以后,其他作业可以使用此信息来控制其他作业的执行。(例如,如果没有Wi-Fi芯片,就跳过Wi-Fi测试)。
  • user-interact – 在执行测试之前,要求用户执行一些操作的测试。然后,测试根据测试的输出自动通过或失败。一个例子是keys/media-control,它运行一个工具来检测按键,要求用户按音量键,然后在最后一个键被按下或用户单击工具中的skip按钮时自动退出。
  • user-interact-verify – 这种类型的测试类似于user-interact测试,除了测试的输出将显示给用户,然后用户必须决定测试是通过还是失败。一个例子是usb/disk_detect测试,它要求用户插入一个usb key,单击test按钮,然后手动验证usb key是否被正确检测到。
  • user-verify – 用户手动执行或自动运行的测试,并要求用户验证结果是通过还是失败。这方面的一个例子是图形最大分辨率测试,它探测系统以确定支持的最大分辨率,然后要求用户确认分辨率是正确的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值