robot使用帮助
Robot Framework --一個通用的自動化測試框架
Version: ?3.0 (Python 2.7.5 on linux2)
使用: ?robot [options] data_sources
? ?or: ?python -m robot [options] data_sources
? ?or: ?python path/to/robot [options] data_sources
? ?or: ?java -jar robotframework.jar [options] data_sources
Robot Framework is a Python-based keyword-driven test automation framework foracceptance level testing and acceptance test-driven development (ATDD)..她使用很易于使用的表格語法來創建測試用例并且能使用Python或Java來擴展測試庫。使用者也可以通過現有的關鍵字使用與創建測試用例相同的語法來創建更高級的keywords。
執行側首最簡單的方法就是正常安裝以后使用“robot”腳本創建。或者通過 `python -m robot`直接執行’robot‘模塊,這里的python可以是任何python解釋器,比如`jython`、`ipy` 、 `python3`.還可以采用`python path/to/robot`的方式來運行robot文件夾。Finally, there is a standalone JAR distribution
Data sources given to Robot Framework are either test case files or directories containing them and/or other directories. Single test case file creates a test suite containing all the test cases in it and a directory containing test case files creates a higher level test suite with test case files or other directories as sub test suites. If multiple data sources are given, a virtual top level suite containing suites generated from given data sources is created.
By default Robot Framework creates an XML output file and a log and a report in HTML format, but this can be configured using various options listed below. Outputs in HTML format are for human consumption and XML output for integration with other systems. XML outputs can also be combined and otherwise further processed with `rebot` tool. Run `rebot --help` for more information.
Robot Framework is open source software released under Apache License 2.0. Its
copyrights are owned and development supported by Nokia Solutions and Networks.
For more information about the framework see http://robotframework.org/.
Options
=======
-N --name name ? ? ? ? ??
Set the name of the top level test suite. Underscores in the name are converted to spaces. Default name is created from the name of the executed data source.
設置最高級的suite的名字。名字中的下劃線將轉換為空格。默認名字是根據要執行的數據庫來創建的。
-D --doc documentation ??
Set the documentation of the top level test suite. Underscores in the documentation are converted to spaces and it may also contain simple HTML formatting e.g. *bold* and http://url/).
設置最高級test suite的文檔。文檔中的下劃線將轉換為空格并且可能包含簡單的HTML格式,例如:*bold* 和 http://url/
-M --metadata name:value *?
?Set metadata of the top level suite. Underscores in the name and value are converted to spaces. Value can contain same HTML formatting as --doc. Example: --metadata version:1.2?
設置最高級suite的元數據。名字和值中下劃線將轉換為空格。Value可以包含與’--doc‘相同的HTML格式,示例:--metadata version:1.2
-G --settag tag * ? ? ? ?
Sets given tag(s) to all executed test cases.
給所有執行的測試用例設置tag(s)
-t --test name * ? ? ? ??
Select test cases to run by name or long name. Name is case and space insensitive and it can also be a simple pattern where `*` matches anything and `?` matches any char. If using `*` and `?` in the console is problematic see --escape and --argumentfile.
通過name或long name來選擇需要運行的測試用例。name就是case、對空格不敏感,并且能用“*”簡單匹配所有,用“?”匹配任何字符。如果在控制臺使用“*”、“?”是有問題的,查看 --escape 和 --argumentfile
-s --suite name * ? ? ? ?
Select test suites to run by name. When this option is used with --test, --include or --exclude, only test cases in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot.
?For example `-s X.Y` selects suite `Y` only if its parent is `X`.
通過name來選擇需要運行的test suite。當這個參數用于--test, --include 或 --exclude,只有同時滿足suites和其他過濾條件的時候才會選擇。name能使用和--test一樣的簡單匹配模式,name還能使用使用“.”分割的方式包含parent name。
示例:`-s X.Y`選擇parent為X的suite Y。
-i --include tag * ? ? ??
Select test cases to run by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with `*` and `?` as wildcards. Tags and patterns can also be combined together with `AND`, `OR`, and `NOT` operators.?
Examples: --include foo --include bar*?
? ? ? ? ? ? ? ? --include fooANDbar*
通過tag來選擇要運行的test cases。與--test類似,tag就是case、對空格不敏感,并且能用“*”簡單匹配所有,用“?”匹配任何字符。Tags并匹配模式能與`AND`, `OR`, and `NOT` 來組合操作。
示例:--include foo --include bar*?
? ? ? ? ?--include fooANDbar*
-e --exclude tag * ? ? ??
Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using the rules explained with --include.
使用tag來選擇哪些test case不需要運行。即使在--include中包含了,這些test case也不會運行。Tags的匹配規則和 --include一樣
-R --rerunfailed output ?
Select failed tests from an earlier output file to be re-executed. Equivalent to selecting same tests individually using --test option.
從最近運行的output文件中選擇失敗的case再次運行。與單獨使用 --test參數選擇相同的case等效。
-c --critical tag * ? ? ?
Tests having given tag are considered critical. If no critical tags are set, all tags are critical. Tags can be given as a pattern like with --include.
有給定tag被認為是critical的測試。如果沒有設置critical 標簽,那么所有的標簽都是critical。像 --include一樣的pattern能作為標簽。
-n --noncritical tag * ??
Tests with given tag are not critical even if they have a tag set with --critical. Tag can be a pattern.
-v --variable name:value * ?
Set variables in the test data. Only scalar variables with string value are supported and name is given without `${}`. See --escape for how to use special characters and --variablefile for a more powerful variable setting mechanism.
Examples:
--variable str:Hello ? ? ? => ?${str} = `Hello`
-v hi:Hi_World -E space:_ ?=> ?${hi} = `Hi World`
-v x: -v y:42 ? ? ? ? ? ? ?=> ?${x} = ``, ${y} = `42`
在測試數據中設置變量。只支持String類型的scalar變量,并且名字不需要用`${}`給出。看 --escape了解如何使用特殊字符,看--variablefile了解強大的變量設置機制。
示例:--variable str:Hello ? ? ? => ?${str} = `Hello`
-v hi:Hi_World -E space:_ ?=> ?${hi} = `Hi World`
-v x: -v y:42 ? ? ? ? ? ? ?=> ?${x} = ``, ${y} = `42`
-V --variablefile path * ?
Python or YAML file file to read variables from. Possible arguments to the variable file can be given after the path using colon or semicolon as separator.
Examples: --variablefile path/vars.yaml
--variablefile environment.py:testing
Python或YAML文件從文件中讀取變量。可能的參數變量文件路徑后可以使用冒號或分號作為分隔符。
示例:--variablefile path/vars.yaml
--variablefile environment.py:testing
-d --outputdir dir ? ? ??
Where to create output files. The default is the directory where tests are run from and the given path is considered relative to that unless it is absolute.
創建輸出文件。
-o --output file ? ? ? ??
XML output file. Given path, similarly as paths given to --log, --report, --xunit, and --debugfile, is relative to --outputdir unless given as an absolute path. Other output files are created based on XML output files after the test execution and XML outputs can also be further processed with Rebot tool. Can be disabled by giving a special value `NONE`. In this case, also log and report are automatically disabled.
Default: output.xml
XML輸出文件。像--log, --report, --xunit, and --debugfile給出的路徑方式一樣,他相對于--outputdir的路徑除非給出的是絕對路徑。在測試執行后,其他的輸出文件是基于XML輸出文件來創建的。XML輸出還能使用Robot工具來被進一步處理。還能通過給定特殊值“NONE”來禁用。如果這樣,log和repot也會自動禁用。
-l --log file ? ? ? ? ? ?
HTML log file. Can be disabled by giving a special value `NONE`. Default: log.html
Examples: `--log mylog.html`, `-l NONE`
HTML日志文件。能使用特殊值“NONE”來禁用。
-r --report file ? ? ? ??
HTML report file. Can be disabled with `NONE` similarly as --log. Default: report.html
HTML report文件。像 --log一樣能使用特殊字符“NONE”來禁用。
-x --xunit file ? ? ? ? ?
xUnit compatible result file. Not created unless this option is specified.
--xunitskipnoncritical ?Mark non-critical tests on xUnit output as skipped.
xUnit兼容的結果文件。如果不指定則不創建。
--xunitskipnoncritical ,在xUnit輸出中標記non-critical來跳過。
-b --debugfile file ? ? ?
Debug file written during execution. Not created unless this option is specified.
執行時的Debug文件。若不指定則不創建。
-T --timestampoutputs ? ?
When this option is used, timestamp in a format `YYYYMMDD-hhmmss` is added to all generated output files between their basename and extension.
?For example: `-T -o output.xml -r report.html -l none` creates files like `output-20070503-154410.xml` and `report-20070503-154410.html`.
使用這個參數時, `YYYYMMDD-hhmmss`格式的時間戳將添加到所有生成的output文件的基本名字和執行內容之間。示例:
? ? --splitlog ? ? ? ? ? ?
Split log file into smaller pieces that open in browser transparently.
拆分日志文件
? ? --logtitle title ? ? ?
Title for the generated test log. The default title is `<Name Of The Suite> Test Log`. Underscores in the title are converted into spaces in all titles.
生成測試日志的標題。默認title為 `<Name Of The Suite> Test Log`.所有的title中的下劃線就轉換為空格。
? ? --reporttitle title ??
Title for the generated test report. The default title is `<Name Of The Suite> Test Report`.
生成的測試報告的標題。默認顯示為`<Name Of The Suite> Test Report`
? ? --reportbackground colors ?
Background colors to use in the report file. Either `all_passed:critical_passed:failed` or `passed:failed`. Both color names and codes work.
Examples: --reportbackground green:yellow:red
--reportbackground #00E:#E00
報告文件中的背景顏色。要么是`all_passed:critical_passed:failed`要么是 `passed:failed`。支持名稱顏色和顏色代碼。
-L --loglevel level ? ? ?
Threshold level for logging. Available levels: TRACE, ?DEBUG, INFO (default), WARN, NONE (no logging). Use syntax `LOGLEVEL:DEFAULT` to define the default visible log level in log files.
Examples: --loglevel DEBUG
--loglevel DEBUG:INFO
Threshold等級的記錄日志。允許的等級:TRACE, ?DEBUG, INFO (default), WARN, NONE (no logging).使用語法`LOGLEVEL:DEFAULT`來定義日志文件中默認可見的日志等級。
? ? --suitestatlevel level ?
How many levels to show in `Statistics by Suite` in log and report. By default all suite levels are shown.?
Example: ?--suitestatlevel 3
在log和report中顯示多少個`Statistics by Suite`。默認所有的等級都顯示。
? ? --tagstatinclude tag * ?
Include only matching tags in `Statistics by Tag` and `Test Details` in log and report. By default all tags set in test cases are shown. Given `tag` can also be a simple pattern (see e.g. --test).
在日志和報告中僅包含在`Statistics by Tag` 和 `Test Details`中匹配的標簽。默認測試用例中所有的標簽都顯示。給出的“tag”能使用簡單匹配模式,參見 --test
? ? --tagstatexclude tag * ?
Exclude matching tags from `Statistics by Tag` and `Test Details`. This option can be used with --tagstatinclude similarly as --exclude is used with --include.
執行在`Statistics by Tag` 和 `Test Details`中匹配的標簽。這個參數可以用在--tagstatinclude,就像--exclude用在 --include一樣。
? ? --tagstatcombine tags:name * ?
Create combined statistics based on tags. These statistics are added into `Statistics by Tag` and matching tests into `Test Details`. If optional `name` is not given, name of the combined tag is got ?from the specified tags. Tags are combined using the rules explained in --include.
Examples: --tagstatcombine requirement-*
? ? ? ? ? ? ? ?--tagstatcombine tag1ANDtag2:My_name
基于標簽創建結合數據。這些數據添加到 `Statistics by Tag`并且到 `Test Details`.匹配測試。如果參數name沒有給出,結合標簽的名稱回車特殊標簽中獲取。Tags結合使用規則可參考 --include。
? ? --tagdoc pattern:doc * ?
Add documentation to tags matching given pattern. Documentation is shown in `Test Details` and also as a tooltip in `Statistics by Tag`. Pattern can contain characters `*` (matches anything) and `?` (matches any char). Documentation can contain formatting similarly as with --doc option.
Examples: --tagdoc mytag:My_documentation
? ? ? ? ? ? ? ?--tagdoc regression:*See*_http://info.html
? ? ? ? ? ? ? ?--tagdoc owner-*:Original_author
添加文檔來匹配給定模式的標簽。文件在 `Test Details` 中顯示,并作為`Statistics by Tag`的工具提示。模式能包含“*”、“?”。文檔能包含的格式與參數--doc類似。
? ? --tagstatlink pattern:link:title * ?
Add external links into `Statistics by Tag`. Pattern can contain characters `*` (matches anything) and `?` (matches any char). Characters matching to wildcard expressions can be used in link and title with syntax %N, where N is index of the match (starting from 1). In title underscores are automatically converted to spaces.
?Examples: --tagstatlink mytag:http://my.domain:Link
? ? ? ? ? ? ? ?--tagstatlink bug-*:http://tracker/id=%1:Bug_Tracker
添加其他的link到`Statistics by Tag`。匹配模式可使用“*”、“?”。字符匹配通配符表達式采用語法“%N”能用于link和title,N是匹配的索引,從1開始。在標題中下劃線自動轉換為空格
? ? --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> *
Remove keyword data from the generated log file. Keywords containing warnings are not removed except ?in `all` mode.
all: ? ? remove data from all keywords?
passed: ?remove data only from keywords in passed test cases and suites
for: ? ? remove passed iterations from for loops
wuks: ? ?remove all but the last failing keyword ?inside `BuiltIn.Wait Until Keyword Succeeds`
name:<pattern>: ?remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword(e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive,and may contain `*` and `?` as wildcards.
Examples: --removekeywords name:Lib.HugeKw
? ? ? ? ? ? ? --removekeywords name:myresource.*
?tag:<pattern>: ?remove data from keywords that match the given pattern. Tags are case and space insensitive and it is possible to use patterns with `*` and `?` as wildcards.Tags and patterns can also be combined ?together with `AND`, `OR`, and `NOT` ?operators.
Examples: --removekeywords foo
? ? ? ? ? ? ? --removekeywords fooANDbar*
從生成的日志文件中刪除keyword的數據。在非“all”模式下,有警告的keywords不會刪除。
all: 刪除所有keywords
passed:從testcase和suite的所有keywords中刪除成功的。
for:從for循環中刪除成功的迭代
wuks:刪除所有除了`BuiltIn.Wait Until Keyword Succeeds`中的最近失敗的keywords。
name:<pattern>: 從匹配給定模式的keywords中刪除數據。模式匹配keyword的全名(例如,'MyLib.Keyword', 'resource.Second Keyword'),模式是case、space并且下劃線不敏感還可以包含“*”、“?”通配符。
? ? --flattenkeywords for|foritem|name:<pattern>|tag:<pattern> *
Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.
for: ? ? flatten for loops fully
foritem: flatten individual for loop iterations
name:<pattern>: ?flatten matched keywords using same matching rules as with `--removekeywords name:<pattern>`
tag:<pattern>: ?flatten matched keywords using same matching rules as with`--removekeywords tag:<pattern>`
在日志文件中趨于平緩匹配keywords。匹配的keywords從他們的子keywords中獲取長信息,而子keywords被丟棄。
? ? --listener class * ? ?
A class for monitoring test execution. Gets notifications e.g. when a test case starts and ends. Arguments to the listener class can be given after the name using colon or semicolon as a separator.
Examples: --listener MyListenerClass
? ? ? ? ? ? ? --listener path/to/Listener.py:arg1:arg2
監控測試執行的類。當測試開始和結束的時候獲取通知。參數可以在name后使用冒號或封號隔開。
? ? --warnonskippedfiles ?
If this option is used, skipped test data files will cause a warning that is visible in the console output and the log file. By default skipped files only cause an info level syslog message.
如果使用這個參數跳過的測試數據文件將在控制臺和日志文件中導致一個警告。默認跳過的文件則只會產生一個info等級的syslog message。
? ? --nostatusrc ? ? ? ? ?
Sets the return code to zero regardless of failures in test cases. Error codes are returned normally.
設置返回0,不管test case中的失敗。錯誤code則正常返回。
? ? --runemptysuite ? ? ??
Executes tests also if the top level test suite is empty. Useful e.g. with --include/--exclude when it ?is not an error that no test matches the condition.
執行測試即使最高級的test suite是空的。
? ? --dryrun ? ? ? ? ? ? ?
Verifies test data and runs tests so that library ?keywords are not executed.
驗證測試數據和運行測試,以便讓Library的keywords不執行。
? ? --exitonfailure ? ? ??
Stops test execution if any critical test fails.
如果有critical的測試失敗則停止執行測試。
? ? --exitonerror ? ? ? ??
Stops test execution if any error occurs when parsing test data, importing libraries, and so on.
當解析測試數據,導入Library等,有任何錯誤,則停止執行測試
? ? --skipteardownonexit ?
Causes teardowns to be skipped if test execution is stopped prematurely.
如果提前停止執行測試,會導致teardown被跳過。
? ? --randomize all|suites|tests|none ?
Randomizes the test execution order.
all: ? ?randomizes both suites and tests
suites: randomizes suites
?tests: ?randomizes tests
none: ? no randomization (default)
Use syntax `VALUE:SEED` to give a custom random seed.
The seed must be an integer.
Examples: --randomize all
--randomize tests:1234
隨機執行測試。
? ? --prerunmodifier class * ?
Class to programmatically modify the test suite structure before execution.
用于在執行前以編程的方式修改test suite結構的類。
? ? --prerebotmodifier class * ?
Class to programmatically modify the result model before creating reports and logs.
用于在創建報告和日志之前以編程的方式修改類。
? ? --console type ? ? ? ?
How to report execution on the console.
verbose: ?report every suite and test (default)
dotted: ? only show `.` for passed test, `f` for failed non-critical tests, and `F` for failed critical tests
quiet: ? ?no output except for errors and warnings
none: ? ? no output whatsoever
在控制臺中如何報告執行
-. --dotted ? ? ? ? ? ? ?
Shortcut for `--console dotted`.
? ? --quiet ? ? ? ? ? ? ??
Shortcut for `--console quiet`.
-W --consolewidth chars ?
Width of the monitor output. Default is 78.
監視器輸出的長度,默認78.
-C --consolecolors auto|on|ansi|off ?
Use colors on console output or not.
auto: use colors when output not redirected (default)
on: ? always use colors
ansi: like `on` but use ANSI colors also on Windows
off: ?disable colors altogether
Note that colors do not work with Jython on Windows.
是否在控制臺輸出中使用顏色
-K --consolemarkers auto|on|off ?
Show markers on the console when top level keywords in a test case end. Values have same semantics as with --consolecolors.
-P --pythonpath path * ??
Additional locations (directories, ZIPs, JARs) where to search test libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (`:`) or by using this option several times. Given path can also be a glob pattern matching multiple paths but then it normally must be escaped or quoted.
Examples:
--pythonpath libs/
?--pythonpath /opt/testlibs:mylibs.zip:yourlibs
-E star:STAR -P lib/STAR.jar -P mylib.jar
用于搜尋測試庫和其他擴展導入的附加路徑(directories, ZIPs, JARs)。通過冒號‘:’分離或者重復使用該參數的方式能添加許多路徑。給定的路徑也可以是glob模式匹配的多個路徑,但是通常必須轉義或引用
-E --escape what:with * ?
Escape characters which are problematic in console. `what` is the name of the character to escape and `with` is the string to escape it with. Note that all given arguments, incl. data sources, are escaped so escape characters ought to be selected carefully.Available escapes: amp (&), apos ('), at (@), bslash (\), colon (:), comma (,), curly1 ({), curly2 (}), dollar ($), exclam (!), gt (>), hash (#), lt (<), paren1 ((), paren2 ()), percent (%), pipe (|), quest (?), quot ("), semic (;), slash (/), space ( ), square1 ([), square2 (]), star (*)
?Examples:
? ? ? --escape space:_ --metadata X:Value_with_spaces
? ? ? -E space:SP -E quot:Q -v var:QhelloSPworldQ
在控制臺中的轉義字符的問題。‘what’是要轉移的字符,‘with’是要轉義的字符。注意,所有給定的參數,incl,數據源都是轉義過的,所以轉義字符應該謹慎使用。可以的轉義字符:
-A --argumentfile path * ?
Text file to read more arguments from. Use special path `STDIN` to read contents from the standard input stream. File can have both options and data sources ?one per line. Contents do not need to be escaped but spaces in the beginning and end of lines are removed. Empty lines and lines starting with a hash character (#) are ignored.
Example file:
? ? ? | ?--include regression
? ? ? | ?--name Regression Tests
? ? ? | ?# This is a comment line
? ? ? | ?my_tests.html
? ? ? | ?path/to/test/directory/
Examples:
? ? ? --argumentfile argfile.txt --argumentfile STDIN
用于讀取更多參數的文本文件。使用特殊路徑`STDIN`來從標準輸入流讀取內容。
-h -? --help ? ? ? ? ? ??
Print usage instructions.
--version ? ? ? ? ? ? ? ?
Print version information.
Options that are marked with an asterisk (*) can be specified multiple times.
For example, `--test first --test third` selects test cases with name `first`
and `third`. If an option accepts a value but is not marked with an asterisk,
the last given value has precedence. For example, `--log A.html --log B.html`
creates log file `B.html`. Options accepting no values can be disabled by
using the same option again with `no` prefix added or dropped. The last option
has precedence regardless of how many times options are used. For example,
`--dryrun --dryrun --nodryrun --nostatusrc --statusrc` would not activate the
dry-run mode and would return normal status rc.
Long option format is case-insensitive. For example, --SuiteStatLevel is
equivalent to but easier to read than --suitestatlevel. Long options can
also be shortened as long as they are unique. For example, `--logti Title`
works while `--lo log.html` does not because the former matches only --logtitle
but the latter matches --log, --loglevel and --logtitle.
Environment Variables
=====================
ROBOT_OPTIONS ? ? ? ? ? ? Space separated list of default options to be placed
? ? ? ? ? ? ? ? ? ? ? ? ? in front of any explicit options on the command line.
ROBOT_SYSLOG_FILE ? ? ? ? Path to a file where Robot Framework writes internal
? ? ? ? ? ? ? ? ? ? ? ? ? information about parsing test case files and running
? ? ? ? ? ? ? ? ? ? ? ? ? tests. Can be useful when debugging problems. If not
? ? ? ? ? ? ? ? ? ? ? ? ? set, or set to a special value `NONE`, writing to the
? ? ? ? ? ? ? ? ? ? ? ? ? syslog file is disabled.
ROBOT_SYSLOG_LEVEL ? ? ? ?Log level to use when writing to the syslog file.
? ? ? ? ? ? ? ? ? ? ? ? ? Available levels are the same as with --loglevel
? ? ? ? ? ? ? ? ? ? ? ? ? command line option and the default is INFO.
ROBOT_INTERNAL_TRACES ? ? When set to any non-empty value, Robot Framework's
? ? ? ? ? ? ? ? ? ? ? ? ? internal methods are included in error tracebacks.
Examples
========
# Simple test run with `robot` without options.
$ robot tests.robot
# Using options.
$ robot --include smoke --name Smoke_Tests path/to/tests.robot
# Executing `robot` module using Python.
$ python -m robot test_directory
# Running `robot` directory with Jython.
$ jython /opt/robot tests.robot
# Executing multiple test case files and using case-insensitive long options.
$ robot --SuiteStatLevel 2 --Metadata Version:3 tests/*.robot more/tests.robot
# Setting default options and syslog file before running tests.
$ export ROBOT_OPTIONS="--critical regression --suitestatlevel 2"
$ export ROBOT_SYSLOG_FILE=/tmp/syslog.txt
$ robot tests.robot
Version: ?3.0 (Python 2.7.5 on linux2)
使用: ?robot [options] data_sources
? ?or: ?python -m robot [options] data_sources
? ?or: ?python path/to/robot [options] data_sources
? ?or: ?java -jar robotframework.jar [options] data_sources
Robot Framework is a Python-based keyword-driven test automation framework foracceptance level testing and acceptance test-driven development (ATDD)..她使用很易于使用的表格語法來創建測試用例并且能使用Python或Java來擴展測試庫。使用者也可以通過現有的關鍵字使用與創建測試用例相同的語法來創建更高級的keywords。
執行側首最簡單的方法就是正常安裝以后使用“robot”腳本創建。或者通過 `python -m robot`直接執行’robot‘模塊,這里的python可以是任何python解釋器,比如`jython`、`ipy` 、 `python3`.還可以采用`python path/to/robot`的方式來運行robot文件夾。Finally, there is a standalone JAR distribution
Data sources given to Robot Framework are either test case files or directories containing them and/or other directories. Single test case file creates a test suite containing all the test cases in it and a directory containing test case files creates a higher level test suite with test case files or other directories as sub test suites. If multiple data sources are given, a virtual top level suite containing suites generated from given data sources is created.
By default Robot Framework creates an XML output file and a log and a report in HTML format, but this can be configured using various options listed below. Outputs in HTML format are for human consumption and XML output for integration with other systems. XML outputs can also be combined and otherwise further processed with `rebot` tool. Run `rebot --help` for more information.
Robot Framework is open source software released under Apache License 2.0. Its
copyrights are owned and development supported by Nokia Solutions and Networks.
For more information about the framework see http://robotframework.org/.
Options
=======
-N --name name ? ? ? ? ??
Set the name of the top level test suite. Underscores in the name are converted to spaces. Default name is created from the name of the executed data source.
設置最高級的suite的名字。名字中的下劃線將轉換為空格。默認名字是根據要執行的數據庫來創建的。
-D --doc documentation ??
Set the documentation of the top level test suite. Underscores in the documentation are converted to spaces and it may also contain simple HTML formatting e.g. *bold* and http://url/).
設置最高級test suite的文檔。文檔中的下劃線將轉換為空格并且可能包含簡單的HTML格式,例如:*bold* 和 http://url/
-M --metadata name:value *?
?Set metadata of the top level suite. Underscores in the name and value are converted to spaces. Value can contain same HTML formatting as --doc. Example: --metadata version:1.2?
設置最高級suite的元數據。名字和值中下劃線將轉換為空格。Value可以包含與’--doc‘相同的HTML格式,示例:--metadata version:1.2
-G --settag tag * ? ? ? ?
Sets given tag(s) to all executed test cases.
給所有執行的測試用例設置tag(s)
-t --test name * ? ? ? ??
Select test cases to run by name or long name. Name is case and space insensitive and it can also be a simple pattern where `*` matches anything and `?` matches any char. If using `*` and `?` in the console is problematic see --escape and --argumentfile.
通過name或long name來選擇需要運行的測試用例。name就是case、對空格不敏感,并且能用“*”簡單匹配所有,用“?”匹配任何字符。如果在控制臺使用“*”、“?”是有問題的,查看 --escape 和 --argumentfile
-s --suite name * ? ? ? ?
Select test suites to run by name. When this option is used with --test, --include or --exclude, only test cases in matching suites and also matching other filtering criteria are selected. Name can be a simple pattern similarly as with --test and it can contain parent name separated with a dot.
?For example `-s X.Y` selects suite `Y` only if its parent is `X`.
通過name來選擇需要運行的test suite。當這個參數用于--test, --include 或 --exclude,只有同時滿足suites和其他過濾條件的時候才會選擇。name能使用和--test一樣的簡單匹配模式,name還能使用使用“.”分割的方式包含parent name。
示例:`-s X.Y`選擇parent為X的suite Y。
-i --include tag * ? ? ??
Select test cases to run by tag. Similarly as name with --test, tag is case and space insensitive and it is possible to use patterns with `*` and `?` as wildcards. Tags and patterns can also be combined together with `AND`, `OR`, and `NOT` operators.?
Examples: --include foo --include bar*?
? ? ? ? ? ? ? ? --include fooANDbar*
通過tag來選擇要運行的test cases。與--test類似,tag就是case、對空格不敏感,并且能用“*”簡單匹配所有,用“?”匹配任何字符。Tags并匹配模式能與`AND`, `OR`, and `NOT` 來組合操作。
示例:--include foo --include bar*?
? ? ? ? ?--include fooANDbar*
-e --exclude tag * ? ? ??
Select test cases not to run by tag. These tests are not run even if included with --include. Tags are matched using the rules explained with --include.
使用tag來選擇哪些test case不需要運行。即使在--include中包含了,這些test case也不會運行。Tags的匹配規則和 --include一樣
-R --rerunfailed output ?
Select failed tests from an earlier output file to be re-executed. Equivalent to selecting same tests individually using --test option.
從最近運行的output文件中選擇失敗的case再次運行。與單獨使用 --test參數選擇相同的case等效。
-c --critical tag * ? ? ?
Tests having given tag are considered critical. If no critical tags are set, all tags are critical. Tags can be given as a pattern like with --include.
有給定tag被認為是critical的測試。如果沒有設置critical 標簽,那么所有的標簽都是critical。像 --include一樣的pattern能作為標簽。
-n --noncritical tag * ??
Tests with given tag are not critical even if they have a tag set with --critical. Tag can be a pattern.
-v --variable name:value * ?
Set variables in the test data. Only scalar variables with string value are supported and name is given without `${}`. See --escape for how to use special characters and --variablefile for a more powerful variable setting mechanism.
Examples:
--variable str:Hello ? ? ? => ?${str} = `Hello`
-v hi:Hi_World -E space:_ ?=> ?${hi} = `Hi World`
-v x: -v y:42 ? ? ? ? ? ? ?=> ?${x} = ``, ${y} = `42`
在測試數據中設置變量。只支持String類型的scalar變量,并且名字不需要用`${}`給出。看 --escape了解如何使用特殊字符,看--variablefile了解強大的變量設置機制。
示例:--variable str:Hello ? ? ? => ?${str} = `Hello`
-v hi:Hi_World -E space:_ ?=> ?${hi} = `Hi World`
-v x: -v y:42 ? ? ? ? ? ? ?=> ?${x} = ``, ${y} = `42`
-V --variablefile path * ?
Python or YAML file file to read variables from. Possible arguments to the variable file can be given after the path using colon or semicolon as separator.
Examples: --variablefile path/vars.yaml
--variablefile environment.py:testing
Python或YAML文件從文件中讀取變量。可能的參數變量文件路徑后可以使用冒號或分號作為分隔符。
示例:--variablefile path/vars.yaml
--variablefile environment.py:testing
-d --outputdir dir ? ? ??
Where to create output files. The default is the directory where tests are run from and the given path is considered relative to that unless it is absolute.
創建輸出文件。
-o --output file ? ? ? ??
XML output file. Given path, similarly as paths given to --log, --report, --xunit, and --debugfile, is relative to --outputdir unless given as an absolute path. Other output files are created based on XML output files after the test execution and XML outputs can also be further processed with Rebot tool. Can be disabled by giving a special value `NONE`. In this case, also log and report are automatically disabled.
Default: output.xml
XML輸出文件。像--log, --report, --xunit, and --debugfile給出的路徑方式一樣,他相對于--outputdir的路徑除非給出的是絕對路徑。在測試執行后,其他的輸出文件是基于XML輸出文件來創建的。XML輸出還能使用Robot工具來被進一步處理。還能通過給定特殊值“NONE”來禁用。如果這樣,log和repot也會自動禁用。
-l --log file ? ? ? ? ? ?
HTML log file. Can be disabled by giving a special value `NONE`. Default: log.html
Examples: `--log mylog.html`, `-l NONE`
HTML日志文件。能使用特殊值“NONE”來禁用。
-r --report file ? ? ? ??
HTML report file. Can be disabled with `NONE` similarly as --log. Default: report.html
HTML report文件。像 --log一樣能使用特殊字符“NONE”來禁用。
-x --xunit file ? ? ? ? ?
xUnit compatible result file. Not created unless this option is specified.
--xunitskipnoncritical ?Mark non-critical tests on xUnit output as skipped.
xUnit兼容的結果文件。如果不指定則不創建。
--xunitskipnoncritical ,在xUnit輸出中標記non-critical來跳過。
-b --debugfile file ? ? ?
Debug file written during execution. Not created unless this option is specified.
執行時的Debug文件。若不指定則不創建。
-T --timestampoutputs ? ?
When this option is used, timestamp in a format `YYYYMMDD-hhmmss` is added to all generated output files between their basename and extension.
?For example: `-T -o output.xml -r report.html -l none` creates files like `output-20070503-154410.xml` and `report-20070503-154410.html`.
使用這個參數時, `YYYYMMDD-hhmmss`格式的時間戳將添加到所有生成的output文件的基本名字和執行內容之間。示例:
? ? --splitlog ? ? ? ? ? ?
Split log file into smaller pieces that open in browser transparently.
拆分日志文件
? ? --logtitle title ? ? ?
Title for the generated test log. The default title is `<Name Of The Suite> Test Log`. Underscores in the title are converted into spaces in all titles.
生成測試日志的標題。默認title為 `<Name Of The Suite> Test Log`.所有的title中的下劃線就轉換為空格。
? ? --reporttitle title ??
Title for the generated test report. The default title is `<Name Of The Suite> Test Report`.
生成的測試報告的標題。默認顯示為`<Name Of The Suite> Test Report`
? ? --reportbackground colors ?
Background colors to use in the report file. Either `all_passed:critical_passed:failed` or `passed:failed`. Both color names and codes work.
Examples: --reportbackground green:yellow:red
--reportbackground #00E:#E00
報告文件中的背景顏色。要么是`all_passed:critical_passed:failed`要么是 `passed:failed`。支持名稱顏色和顏色代碼。
-L --loglevel level ? ? ?
Threshold level for logging. Available levels: TRACE, ?DEBUG, INFO (default), WARN, NONE (no logging). Use syntax `LOGLEVEL:DEFAULT` to define the default visible log level in log files.
Examples: --loglevel DEBUG
--loglevel DEBUG:INFO
Threshold等級的記錄日志。允許的等級:TRACE, ?DEBUG, INFO (default), WARN, NONE (no logging).使用語法`LOGLEVEL:DEFAULT`來定義日志文件中默認可見的日志等級。
? ? --suitestatlevel level ?
How many levels to show in `Statistics by Suite` in log and report. By default all suite levels are shown.?
Example: ?--suitestatlevel 3
在log和report中顯示多少個`Statistics by Suite`。默認所有的等級都顯示。
? ? --tagstatinclude tag * ?
Include only matching tags in `Statistics by Tag` and `Test Details` in log and report. By default all tags set in test cases are shown. Given `tag` can also be a simple pattern (see e.g. --test).
在日志和報告中僅包含在`Statistics by Tag` 和 `Test Details`中匹配的標簽。默認測試用例中所有的標簽都顯示。給出的“tag”能使用簡單匹配模式,參見 --test
? ? --tagstatexclude tag * ?
Exclude matching tags from `Statistics by Tag` and `Test Details`. This option can be used with --tagstatinclude similarly as --exclude is used with --include.
執行在`Statistics by Tag` 和 `Test Details`中匹配的標簽。這個參數可以用在--tagstatinclude,就像--exclude用在 --include一樣。
? ? --tagstatcombine tags:name * ?
Create combined statistics based on tags. These statistics are added into `Statistics by Tag` and matching tests into `Test Details`. If optional `name` is not given, name of the combined tag is got ?from the specified tags. Tags are combined using the rules explained in --include.
Examples: --tagstatcombine requirement-*
? ? ? ? ? ? ? ?--tagstatcombine tag1ANDtag2:My_name
基于標簽創建結合數據。這些數據添加到 `Statistics by Tag`并且到 `Test Details`.匹配測試。如果參數name沒有給出,結合標簽的名稱回車特殊標簽中獲取。Tags結合使用規則可參考 --include。
? ? --tagdoc pattern:doc * ?
Add documentation to tags matching given pattern. Documentation is shown in `Test Details` and also as a tooltip in `Statistics by Tag`. Pattern can contain characters `*` (matches anything) and `?` (matches any char). Documentation can contain formatting similarly as with --doc option.
Examples: --tagdoc mytag:My_documentation
? ? ? ? ? ? ? ?--tagdoc regression:*See*_http://info.html
? ? ? ? ? ? ? ?--tagdoc owner-*:Original_author
添加文檔來匹配給定模式的標簽。文件在 `Test Details` 中顯示,并作為`Statistics by Tag`的工具提示。模式能包含“*”、“?”。文檔能包含的格式與參數--doc類似。
? ? --tagstatlink pattern:link:title * ?
Add external links into `Statistics by Tag`. Pattern can contain characters `*` (matches anything) and `?` (matches any char). Characters matching to wildcard expressions can be used in link and title with syntax %N, where N is index of the match (starting from 1). In title underscores are automatically converted to spaces.
?Examples: --tagstatlink mytag:http://my.domain:Link
? ? ? ? ? ? ? ?--tagstatlink bug-*:http://tracker/id=%1:Bug_Tracker
添加其他的link到`Statistics by Tag`。匹配模式可使用“*”、“?”。字符匹配通配符表達式采用語法“%N”能用于link和title,N是匹配的索引,從1開始。在標題中下劃線自動轉換為空格
? ? --removekeywords all|passed|for|wuks|name:<pattern>|tag:<pattern> *
Remove keyword data from the generated log file. Keywords containing warnings are not removed except ?in `all` mode.
all: ? ? remove data from all keywords?
passed: ?remove data only from keywords in passed test cases and suites
for: ? ? remove passed iterations from for loops
wuks: ? ?remove all but the last failing keyword ?inside `BuiltIn.Wait Until Keyword Succeeds`
name:<pattern>: ?remove data from keywords that match the given pattern. The pattern is matched against the full name of the keyword(e.g. 'MyLib.Keyword', 'resource.Second Keyword'), is case, space, and underscore insensitive,and may contain `*` and `?` as wildcards.
Examples: --removekeywords name:Lib.HugeKw
? ? ? ? ? ? ? --removekeywords name:myresource.*
?tag:<pattern>: ?remove data from keywords that match the given pattern. Tags are case and space insensitive and it is possible to use patterns with `*` and `?` as wildcards.Tags and patterns can also be combined ?together with `AND`, `OR`, and `NOT` ?operators.
Examples: --removekeywords foo
? ? ? ? ? ? ? --removekeywords fooANDbar*
從生成的日志文件中刪除keyword的數據。在非“all”模式下,有警告的keywords不會刪除。
all: 刪除所有keywords
passed:從testcase和suite的所有keywords中刪除成功的。
for:從for循環中刪除成功的迭代
wuks:刪除所有除了`BuiltIn.Wait Until Keyword Succeeds`中的最近失敗的keywords。
name:<pattern>: 從匹配給定模式的keywords中刪除數據。模式匹配keyword的全名(例如,'MyLib.Keyword', 'resource.Second Keyword'),模式是case、space并且下劃線不敏感還可以包含“*”、“?”通配符。
? ? --flattenkeywords for|foritem|name:<pattern>|tag:<pattern> *
Flattens matching keywords in the generated log file. Matching keywords get all log messages from their child keywords and children are discarded otherwise.
for: ? ? flatten for loops fully
foritem: flatten individual for loop iterations
name:<pattern>: ?flatten matched keywords using same matching rules as with `--removekeywords name:<pattern>`
tag:<pattern>: ?flatten matched keywords using same matching rules as with`--removekeywords tag:<pattern>`
在日志文件中趨于平緩匹配keywords。匹配的keywords從他們的子keywords中獲取長信息,而子keywords被丟棄。
? ? --listener class * ? ?
A class for monitoring test execution. Gets notifications e.g. when a test case starts and ends. Arguments to the listener class can be given after the name using colon or semicolon as a separator.
Examples: --listener MyListenerClass
? ? ? ? ? ? ? --listener path/to/Listener.py:arg1:arg2
監控測試執行的類。當測試開始和結束的時候獲取通知。參數可以在name后使用冒號或封號隔開。
? ? --warnonskippedfiles ?
If this option is used, skipped test data files will cause a warning that is visible in the console output and the log file. By default skipped files only cause an info level syslog message.
如果使用這個參數跳過的測試數據文件將在控制臺和日志文件中導致一個警告。默認跳過的文件則只會產生一個info等級的syslog message。
? ? --nostatusrc ? ? ? ? ?
Sets the return code to zero regardless of failures in test cases. Error codes are returned normally.
設置返回0,不管test case中的失敗。錯誤code則正常返回。
? ? --runemptysuite ? ? ??
Executes tests also if the top level test suite is empty. Useful e.g. with --include/--exclude when it ?is not an error that no test matches the condition.
執行測試即使最高級的test suite是空的。
? ? --dryrun ? ? ? ? ? ? ?
Verifies test data and runs tests so that library ?keywords are not executed.
驗證測試數據和運行測試,以便讓Library的keywords不執行。
? ? --exitonfailure ? ? ??
Stops test execution if any critical test fails.
如果有critical的測試失敗則停止執行測試。
? ? --exitonerror ? ? ? ??
Stops test execution if any error occurs when parsing test data, importing libraries, and so on.
當解析測試數據,導入Library等,有任何錯誤,則停止執行測試
? ? --skipteardownonexit ?
Causes teardowns to be skipped if test execution is stopped prematurely.
如果提前停止執行測試,會導致teardown被跳過。
? ? --randomize all|suites|tests|none ?
Randomizes the test execution order.
all: ? ?randomizes both suites and tests
suites: randomizes suites
?tests: ?randomizes tests
none: ? no randomization (default)
Use syntax `VALUE:SEED` to give a custom random seed.
The seed must be an integer.
Examples: --randomize all
--randomize tests:1234
隨機執行測試。
? ? --prerunmodifier class * ?
Class to programmatically modify the test suite structure before execution.
用于在執行前以編程的方式修改test suite結構的類。
? ? --prerebotmodifier class * ?
Class to programmatically modify the result model before creating reports and logs.
用于在創建報告和日志之前以編程的方式修改類。
? ? --console type ? ? ? ?
How to report execution on the console.
verbose: ?report every suite and test (default)
dotted: ? only show `.` for passed test, `f` for failed non-critical tests, and `F` for failed critical tests
quiet: ? ?no output except for errors and warnings
none: ? ? no output whatsoever
在控制臺中如何報告執行
-. --dotted ? ? ? ? ? ? ?
Shortcut for `--console dotted`.
? ? --quiet ? ? ? ? ? ? ??
Shortcut for `--console quiet`.
-W --consolewidth chars ?
Width of the monitor output. Default is 78.
監視器輸出的長度,默認78.
-C --consolecolors auto|on|ansi|off ?
Use colors on console output or not.
auto: use colors when output not redirected (default)
on: ? always use colors
ansi: like `on` but use ANSI colors also on Windows
off: ?disable colors altogether
Note that colors do not work with Jython on Windows.
是否在控制臺輸出中使用顏色
-K --consolemarkers auto|on|off ?
Show markers on the console when top level keywords in a test case end. Values have same semantics as with --consolecolors.
-P --pythonpath path * ??
Additional locations (directories, ZIPs, JARs) where to search test libraries and other extensions when they are imported. Multiple paths can be given by separating them with a colon (`:`) or by using this option several times. Given path can also be a glob pattern matching multiple paths but then it normally must be escaped or quoted.
Examples:
--pythonpath libs/
?--pythonpath /opt/testlibs:mylibs.zip:yourlibs
-E star:STAR -P lib/STAR.jar -P mylib.jar
用于搜尋測試庫和其他擴展導入的附加路徑(directories, ZIPs, JARs)。通過冒號‘:’分離或者重復使用該參數的方式能添加許多路徑。給定的路徑也可以是glob模式匹配的多個路徑,但是通常必須轉義或引用
-E --escape what:with * ?
Escape characters which are problematic in console. `what` is the name of the character to escape and `with` is the string to escape it with. Note that all given arguments, incl. data sources, are escaped so escape characters ought to be selected carefully.Available escapes: amp (&), apos ('), at (@), bslash (\), colon (:), comma (,), curly1 ({), curly2 (}), dollar ($), exclam (!), gt (>), hash (#), lt (<), paren1 ((), paren2 ()), percent (%), pipe (|), quest (?), quot ("), semic (;), slash (/), space ( ), square1 ([), square2 (]), star (*)
?Examples:
? ? ? --escape space:_ --metadata X:Value_with_spaces
? ? ? -E space:SP -E quot:Q -v var:QhelloSPworldQ
在控制臺中的轉義字符的問題。‘what’是要轉移的字符,‘with’是要轉義的字符。注意,所有給定的參數,incl,數據源都是轉義過的,所以轉義字符應該謹慎使用。可以的轉義字符:
-A --argumentfile path * ?
Text file to read more arguments from. Use special path `STDIN` to read contents from the standard input stream. File can have both options and data sources ?one per line. Contents do not need to be escaped but spaces in the beginning and end of lines are removed. Empty lines and lines starting with a hash character (#) are ignored.
Example file:
? ? ? | ?--include regression
? ? ? | ?--name Regression Tests
? ? ? | ?# This is a comment line
? ? ? | ?my_tests.html
? ? ? | ?path/to/test/directory/
Examples:
? ? ? --argumentfile argfile.txt --argumentfile STDIN
用于讀取更多參數的文本文件。使用特殊路徑`STDIN`來從標準輸入流讀取內容。
-h -? --help ? ? ? ? ? ??
Print usage instructions.
--version ? ? ? ? ? ? ? ?
Print version information.
Options that are marked with an asterisk (*) can be specified multiple times.
For example, `--test first --test third` selects test cases with name `first`
and `third`. If an option accepts a value but is not marked with an asterisk,
the last given value has precedence. For example, `--log A.html --log B.html`
creates log file `B.html`. Options accepting no values can be disabled by
using the same option again with `no` prefix added or dropped. The last option
has precedence regardless of how many times options are used. For example,
`--dryrun --dryrun --nodryrun --nostatusrc --statusrc` would not activate the
dry-run mode and would return normal status rc.
Long option format is case-insensitive. For example, --SuiteStatLevel is
equivalent to but easier to read than --suitestatlevel. Long options can
also be shortened as long as they are unique. For example, `--logti Title`
works while `--lo log.html` does not because the former matches only --logtitle
but the latter matches --log, --loglevel and --logtitle.
Environment Variables
=====================
ROBOT_OPTIONS ? ? ? ? ? ? Space separated list of default options to be placed
? ? ? ? ? ? ? ? ? ? ? ? ? in front of any explicit options on the command line.
ROBOT_SYSLOG_FILE ? ? ? ? Path to a file where Robot Framework writes internal
? ? ? ? ? ? ? ? ? ? ? ? ? information about parsing test case files and running
? ? ? ? ? ? ? ? ? ? ? ? ? tests. Can be useful when debugging problems. If not
? ? ? ? ? ? ? ? ? ? ? ? ? set, or set to a special value `NONE`, writing to the
? ? ? ? ? ? ? ? ? ? ? ? ? syslog file is disabled.
ROBOT_SYSLOG_LEVEL ? ? ? ?Log level to use when writing to the syslog file.
? ? ? ? ? ? ? ? ? ? ? ? ? Available levels are the same as with --loglevel
? ? ? ? ? ? ? ? ? ? ? ? ? command line option and the default is INFO.
ROBOT_INTERNAL_TRACES ? ? When set to any non-empty value, Robot Framework's
? ? ? ? ? ? ? ? ? ? ? ? ? internal methods are included in error tracebacks.
Examples
========
# Simple test run with `robot` without options.
$ robot tests.robot
# Using options.
$ robot --include smoke --name Smoke_Tests path/to/tests.robot
# Executing `robot` module using Python.
$ python -m robot test_directory
# Running `robot` directory with Jython.
$ jython /opt/robot tests.robot
# Executing multiple test case files and using case-insensitive long options.
$ robot --SuiteStatLevel 2 --Metadata Version:3 tests/*.robot more/tests.robot
# Setting default options and syslog file before running tests.
$ export ROBOT_OPTIONS="--critical regression --suitestatlevel 2"
$ export ROBOT_SYSLOG_FILE=/tmp/syslog.txt
$ robot tests.robot
總結
- 上一篇: No enclosing instanc
- 下一篇: 前端开发规范及自定义组件规范