CheckBox Navigation(九)Checkbox launchers tutorial

CheckBox Navigation(九)Checkbox launchers tutorial

CheckBox Navigation 9

Understanding Checkbox

复选框启动器是INI文件,自定义复选框体验。
自定义包括:

  • 选择运行哪些作业
  • 如何处理机器重启
  • 使用什么类型的UI
  • 如何处理结果

启动器中的每个部分都是可选的,如果没有提供,将使用默认值。

本教程介绍了Launchers版本1。

1. External configuration files

启动器可以指定外部文件来加载值。

[config]
配置部分的开始。

  • config_filename

    要查找的配置文件的名称。默认值:checkbox.conf

    要搜索的目录是/etc/xdg/~/.config/
    Example:

    [config]
    config_filename = testing.conf
    

    这将使复选框查找/etc/xdg/test .conf~/config/test .conf文件。

  • config_filename可以是绝对路径,也可以使用环境变量
    Example:

    [config]
    config_filename = $MYCONFIGS/testing.conf
    
    [config]
    config_filename = /home/ubuntu/next-testing.conf
    

    有关值解析顺序的更多细节,请参见configs

2. Launcher meta-information

启动器元信息有助于在将来提供一致的复选框行为。

[launcher]
启动器元信息部分的开始。

  • app_id
    此字段有助于区分复选框前端。这样,由带有一个app_id的launcher启动的会话就不会与由另一个launcher启动的会话发生冲突(前提是app_id设置为其他值)。app_id应采用IQN形式。默认值:com.canonical: checkbox-cli

  • app_version
    这个领域是纯粹的信息。

  • launcher_version
    版本的启动语言语法和语义使用

  • api_flags
    API标志变量确定可选的特性集。这个启动器需要的API标志列表。项目之间应该用空格或逗号分隔。默认值为空列表。

  • api_version
    API版本决定了启动器的行为。每个复选框特性都是在特定的API版本中添加的。默认行为不会悄然改变;需要显式的启动器更改。默认值:0.99

  • session_title
    应用于使用此启动器创建的会话的标题。这可以用来识别存储的会话,也可以用于生成报告。

  • session_desc可以应用于使用此启动器创建的会话的字符串。用于存储关于会话的一些上下文信息。

  • stock_reports
    stock_reports是创建普通报表的快捷方式。不必在启动器中指定出口商、传输和报告部分,您可以使用任何数量的库存。在launchers版本1中,你可以使用4种stock_reports:

    • text-在标准输出中将结果打印为文本
    • submission_files -写html, jsontar.xz文件到$XDG_DATA_HOME目录(或到~/.local/share/ 如果$XDG_DATA_HOME
    • certification-将结果发送到认证站点
    • certification-staging—将结果发送到认证站点的阶段版本

    如果您不希望自动生成任何stock_reports,请使用none作为值。

    这个字段是一个列表;用逗号或空格分隔股票报告。默认值:textcertificationsubmission_files

    当使用certificationstock_reports时,启动程序可能会覆盖secure_id变量。为此,在transport:c3部分中定义secure_id(这是certificationstock_reports所使用的传输)。

    Launcher section example:

    [launcher]
    app_id = com.foobar:system-testing
    launcher_version = 1
    stock_reports = text
    session_title = MegaCorp Thingy Alpha-1
    session_desc = Testing the alpha-1 release of MegaCorp Thingy including feature X
    

    启动器使用所有默认设置覆盖secure_id:

    [transport:c3]
    secure_id = 001122334455667788
    

    禁用所有stock_reports的启动器:

    [launcher]
    app_id = com.foobar:system-testing
    launcher_version = 1
    stock_reports = none
    

3. Test plan section

这个部分提供了对哪些测试计划在菜单中可见的控制,并强制应用程序使用特定的测试计划。

[test plan]
测试计划部分的开始。

  • unit
    默认情况下应该选择的测试计划的ID。默认情况下,不选择任何选项。

  • filter
    测试计划id必须匹配的Glob,以便可见。默认值:*

  • forced
    如果设置为yes,测试计划选择屏幕将被跳过。需要设置unit字段,默认值:no

4. Test selection section

这个部分提供了对测试选择的控制。

[test selection]
开始测试选择部分

  • forced
    如果设置为yes,将跳过测试选择屏幕,并选择测试计划中指定的所有测试。
    默认值:no

  • exclude
    作业id将被匹配的正则表达式模式列表。匹配的作业将被排除在会话的两个阶段:bootstrapping和normal阶段。
    请注意,如果您指定的模式与用于实例化模板单元的资源作业相匹配,那么这些单元将不会生成。
    这些模式应该用空格分隔。

    例子:排除id中包含“bluetooth”的所有作业:

    [test selection]
    exclude = .*bluetooth.*
    

    排除id中包含bluetooth的所有作业,或者id以com.canonical.certification::dock/wireless开头的作业:

    [test selection]
    exclude = .*bluetooth.* com.canonical.certification::dock/wireless.*
    

    Note: 在启动器中设置的排除字段可以在配置中被覆盖,按照复选框值的解析顺序。
    更多信息见configs

    Note: 要清除排除列表,请使用…

    exclude =   
    

    在你的“最后”配置中。

5. User Interface section

本节控制要使用哪种类型的UI。

[ui]
从用户界面一节开始

  • type
    要使用的UI类型。
    这必须设置为interactive, silent, convergedconverged-silent

  • interactive运行在非自动化测试中提示用户的标准复选框命令行版本。

  • silent跳过了需要人类互动的测试。它不是传统命令行工具意义上的“沉默”。

    默认值:interactive

    note:convergedconverged-silentUI类型将启动QML接口,并要求在您的系统上安装复选框融合。
    note:使用silentconverged-silentUI类型需要强制测试选择和测试计划选择。

    dont_suppress_output

    Note

    这个字段已弃用,使用’ output '指定哪些作业的输出应该打印到屏幕上。

    将此字段设置为yes将禁止对类型为resourceattachment的作业隐藏命令输出。默认值:no

  • output
    此设置允许您隐藏由复选框运行的命令输出。它可以设置为以下值之一:

    • show—打印所有作业的输出
    • hide-resource-and-attachment-资源和附件作业的输出将被隐藏,其他类型的作业输出将被打印
    • hide-automated- shell作业以及附件和资源作业的输出将被隐藏。只显示交互式作业命令的输出
    • hide-与hide-automated相同。此值已弃用,请使用hide-automated

    默认值:show

    Note

    单个作业可以通过在定义中指定“suppress-output”来隐藏其输出。

  • verbosity
    此设置使复选框从复选框内部报告更多信息。可能的值是:

    • normal-只报告警告和错误。
    • verbose-报告在执行过程中发生的重要事件(例如添加单元、启动作业、改变会话状态)
    • debug-打印出所有内容

    默认值:normal

    Note

    在调用复选框时,还可以分别使用——verbose——debug选项来更改此行为。

  • auto_retry
    如果设置为yes,失败的作业将在测试会话结束时自动重试。此外,将不会显示重新运行屏幕(用户可以在此选择失败和跳过的作业以重新运行)。
    默认值:no

  • max_attempts定义以自动重试模式运行作业的最大次数。如果作业通过,即使没有达到最大尝试次数,也不会重试作业。
    默认值:3

  • delay_before_retry测试会话结束时,在重试失败作业之前等待的秒数。当工作依赖于外部因素(例如WiFi接入点),并且你想在重新尝试相同的工作之前等待时,这是非常有用的。
    默认值:1

    Warning

    auto_retry设置为yes时,将重试每个失败的作业。例如,对于需要很长时间运行的作业来说,这可能是个问题。为了避免这种情况,您可以在测试计划中使用auto-retry=no inline override来显式标记每个不希望看到重试的作业。
    Example:

    	id: foo-bar-and-froz
    	_name: Tests Foo, Bar and Froz
    	include:
        	foo
        	bar     auto-retry=no
        	froz
    

    在这种情况下,即使作业栏失败并且自动重试被激活,它也不会被重试。

6. Restart section

本节允许对如何重新启动复选框进行精细控制。

[environment]
重新启动部分的开始

  • strategy
    重写应该使用的重启策略。目前支持的策略是XDGSnappy。默认情况下,最佳策略是在运行时确定的。

7. Environment section

[environment]

环境部分的开始

  • environment部分中的每个变量都将作为运行的所有作业的环境变量。
[environment]
TESTING_HOST = 192.168.0.100

8. Daemon-specific configuration

[daemon]

特定于守护进程部分的开始。
本节中的设置仅适用于作为守护进程生成的checkbox-slave运行的会话。

  • normal_user

    当作业没有指定作为哪个用户运行时使用的用户名。

    Checkbox-slave守护进程是由root运行的,所以为了以非特权用户的身份运行一些作业,可以使用这个变量。

9. Manifest section

[manifest]
清单部分的开始。

  • manifest部分中的每个变量都将被用作系统清单的预设值,优先于磁盘缓存。

    Example:

    [manifest]
    com.canonical.certification::has_touchscreen = yes
    com.canonical.certification::has_usb_type_c = true
    com.canonical.certification::foo = 23
    

10. Generating reports

报告的创建由三个部分report, exporter and transport报告、导出程序和传输程序。每个部分都可以指定多次以提供多个报告。

(1)Exporter

[exporter:exporter_name]
出口商声明的开始。
请注意,exporter_name应该被替换为有意义的东西,比如html

  • unit
    需要使用的出口商ID。要获得系统上可用导出程序的列表,请运行$ plainbox dev list导出程序。

  • options
    将提供给出口商的选项列表。
    项目之间应该用空格或逗号分隔。

    Example:

    [exporter:html]
    unit = com.canonical.plainbox::html
    
(2)Transport

==[transport:transport_name]==传输声明的开始。
注意,transport_name应该被替换为有意义的东西,比如standard_out。

  • type

    要使用的传送器类型。
    允许的值有:stream, file, and certification

    根据传输的类型,可能会有其他字段。
    CheckBox Navigation(九)Checkbox launchers tutorial

(3)Report

[report:report_name]

报告声明的开始。
注意,report_name应该被替换为有意义的东西,比如to_screen

  • exporter
    要使用的出口商名称

  • transport
    要使用的传输程序的名称

  • forced
    如果设置为yes将使复选框总是生成报告(跳过提示)。
    默认值:no

    所有三个部分的工作产生一份报告的例子:

    [exporter:text]
    unit = com.canonical.plainbox::text
    
    [transport:out]
    type = stream
    stream = stdout
    
    [report:screen]
    exporter = text
    transport = out
    forced = yes
    

11. Launcher examples

  • 1)全自动运行所有测试从’ com.canonical。
    认证:通过生成文本报告到标准输出得出smoke测试计划。

    #!/usr/bin/env checkbox-cli
    
    [launcher]
    launcher_version = 1
    app_id = com.canonical.certification:smoke-test
    stock_reports = text
    
    [test plan]
    unit = com.canonical.certification::smoke
    forced = yes
    
    [test selection]
    forced = yes
    
    [ui]
    type = silent
    
    [transport:outfile]
    type = stream
    stream = stdout
    
    [exporter:text]
    unit = com.canonical.plainbox::text
    
    [report:screen]
    transport = outfile
    exporter = text
    
  • 2)FooBar项目的交互测试。
    报告应上传到认证站点的分段版本,并保存到 /tmp/submission.tar.xz

    #!/usr/bin/env checkbox-cli
    
    [launcher]
    launcher_version = 1
    app_id = com.foobar:system-testing
    
    [providers]
    use = com.megacorp.foo::bar*
    
    [test plan]
    unit = com.megacorp.foo::bar-generic
    
    [ui]
    type = silent
    output = hide
    
    [transport:certification]
    type = certification
    secure-id = 00112233445566
    staging = yes
    
    [transport:local_file]
    type = file
    path = /tmp/submission.tar.xz
    
    [report:c3-staging]
    transport = certification
    exporter = tar
    
    [report:file]
    transport = local_file
    exporter = tar
    
  • 3)自动运行桌面SRU测试计划的典型启动器。
    启动程序将自动重试失败的测试作业。
    此外,这个启动器还包括另一个launcherlauncher.conf作为其定制的环境配置。

    The launcher

    #!/usr/bin/env checkbox-cli
    [launcher]
    launcher_version = 1
    
    [config]
    config_filename = $HOME/launcher.conf
    
    [test plan]
    unit = com.canonical.certification::sru
    forced = yes
    
    [test selection]
    forced = yes
    
    [ui]
    type = silent
    auto_retry = yes
    max_attempts = 3
    delay_before_retry = 15
    

    启动程序配置laucher.conf

    #!/usr/bin/env checkbox-cli
    [launcher]
    launcher_version = 1
    stock_reports = text, submission_files, certification
    
    [transport:c3]
    secure_id = <your secure ID>
    
    [transport:local_file]
    type = file
    path = /home/ubuntu/c3-local-submission.tar.xz
    
    [exporter:example_tar]
    unit = com.canonical.plainbox::tar
    
    [report:file]
    transport = local_file
    exporter = tar
    forced = yes
    
    [environment]
    ROUTERS = multiple
    WPA_BG_SSID = foo-bar-bg-wpa
    WPA_BG_PSK = foo-bar
    WPA_N_SSID = foo-bar-n-wpa
    WPA_N_PSK = foobar
    WPA_AC_SSID = foo-bar-ac-wpa
    WPA_AC_PSK = foobar
    OPEN_BG_SSID = foo-bar-bg-open
    OPEN_N_SSID = foo-bar-n-open
    OPEN_AC_SSID = foo-bar-ac-open
    BTDEVADDR = ff:oo:oo:bb:aa:rr
    TRANSFER_SERVER = cdimage.ubuntu.com
    Checkbox
    Navigation
    Using Checkbox
    Understanding Checkbox
    Checkbox tutorials
    Checkbox Remote
    Checkbox Slave Daemon Service
    Checkbox Unit Types
    Reporting Bugs
    The “Checkbox Stack”
    Checkbox launchers tutorial
    External configuration files
    Launcher meta-information
    Test plan section
    Test selection section
    User Interface section
    Restart section
    Environment section
    Daemon-specific configuration
    Manifest section
    Generating reports
    Exporter
    Transport
    Report
    Launcher examples
    Side-loading Providers
    Checkbox Configs
    Checkbox nested test plans tutorial
    Contributing to Snappy Testing with Checkbox
    Running Checkbox on Ubuntu Core
    Creating a custom Checkbox application for Ubuntu Core testing
    Glossary
    Quick search
    
    
    Beat Triplebyte's online coding quiz. Get offers from top companies. Skip resumes & recruiters.
    Sponsored · Ads served ethically
    
上一篇:【网络安全】HSTS


下一篇:【Netty】传输(Transport)