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
,json
和tar.xz
文件到$XDG_DATA_HOME
目录(或到~/.local/share/
如果$XDG_DATA_HOME
-
certification
-将结果发送到认证站点 -
certification-staging
—将结果发送到认证站点的阶段版本
如果您不希望自动生成任何stock_reports,请使用
none
作为值。这个字段是一个列表;用逗号或空格分隔股票报告。默认值:
text
、certification
、submission_files
。当使用
certification
stock_reports时,启动程序可能会覆盖secure_id
变量。为此,在transport:c3
部分中定义secure_id
(这是certification
stock_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
,converged
或converged-silent
。 -
interactive
运行在非自动化测试中提示用户的标准复选框命令行版本。 -
silent
跳过了需要人类互动的测试。它不是传统命令行工具意义上的“沉默”。默认值:
interactive
。note:
converged
和converged-silent
UI类型将启动QML接口,并要求在您的系统上安装复选框融合。
note:使用silent
或converged-silent
UI类型需要强制测试选择和测试计划选择。dont_suppress_output
Note
这个字段已弃用,使用’ output '指定哪些作业的输出应该打印到屏幕上。
将此字段设置为
yes
将禁止对类型为resource
和attachment
的作业隐藏命令输出。默认值: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
重写应该使用的重启策略。目前支持的策略是XDG
和Snappy
。默认情况下,最佳策略是在运行时确定的。
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
, andcertification
。根据传输的类型,可能会有其他字段。
(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测试计划的典型启动器。
启动程序将自动重试失败的测试作业。
此外,这个启动器还包括另一个launcher
、launcher.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