Robot-framework使用文档_第1页
Robot-framework使用文档_第2页
Robot-framework使用文档_第3页
Robot-framework使用文档_第4页
Robot-framework使用文档_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Robot-framework 使用文档目录L 编写目的32. 执行Test cases32.1. 运行 test case32.1.1. 用python 运行 test case32.1.2. 用jython 运行 test case42.1.3. 写 自定义脚本运行 test case42.1.4. 用RIDE 使用和运行 test case42.1.5. 用Eclipse 运行 test case52.2. 参数使用52.2.1. escape52.2.2. argumenfile63. 创建 Test Data63.1. Test Data Files63.1.1. Test Data

2、 Syntax63.1.2. Setting Table73.1.3. Variables Table83.1.4. Test Case Table83.1.5. Keyword Table93.2. 使用 Library93.2.1. Library search path93.2.2. 使用物理地址103.2.3. 自定义库名3.3. 使用 Variables113.3.1. Testcase 定义变量113.3.2. Variablefiles 定义变量123.4. 使用 Keyword123.4.1. Test case 定义 keyword123.4.2. . Pythonor Ja

3、va 定义 keyword133.5. 使用Resource files134. 扩展 Robot134.1. 创建Test Library134.1.1. static keywords134.1.2. . 参数151 .编写目的本文档用于描述Robot framework 的使用方法。2 .执行 Test cases2.1. 运行 test case2.1.1. 用 python 运行 test case1) 在python 环境下执行 case可用pybot命令。例:pybot test.html2) Test case中引入的library 只能是.py,不能引入java的文件2.1.

4、2. 用 jython 运行 test case1) 在jython 环境下执行 case可用jybot命令。例:jybottest.html2) Test case中引入的library 可以是.py也可以说.class, java的文件要先编译好才 能用。不能引入jar包。3)可以将所需要的.class文件打成jar包,然后运行时加上-pythonpath xxx.jar , 或者放在classpath变量里。2.1.3. 写自定义脚本运行test case设置运行所需要的jar包,然后再运行caseecho offset CP=.for %jar in (lib*.jar) do ( c

5、all :set_cp %jar)set CLASSPATH=%CP%jybot -ouputdir d:mytestoutput test.htmlgoto :eof二 Helper for setting variables inside a for loop:set_cpset CP=%CP%;%1goto :eof2.1.4. 用RIDE使用和运行test case1) 使用 java 或 python 编写 keyword2)用libdoc.py创建关键字文档,以让RIDE可以显示与搜索。jython libdoc.py -f xml com/test/wsg/ta/library/

6、FtpLibrary.java上述是先设置创建文档所需要的jar包,然后生成xml格式的关键字文档。将生产的xml 放到 pythonpath 目 录中,然后打开 RIDE ,引入 com.test.wsg.ta.library.FtpLibrary 后在 tools->serch keywords 中即可找至U 关键字及其描述。3)在RIDE上写好case后,可以使用pybot、jybot或custom script方式运行,同 上述三种方式一样。2.1.5. 用 Eclipse 运行 test case1)新建一个项目后引入robotframework独立运行的jar包。2)新建一个

7、class ,代码如下:import org.robotframework.RobotFramework;public class RobotTest public static void main(String口 args) / TODO Auto-generated method stub int rc = RobotFramework.run(new String口 "-outputdir", "d:mytestoutput", "d:mytesttest.html” );if (rc = 0) System.out.println(&q

8、uot;All tests passed");else if (rc <= 250) System.out.println(rc + " tests failed.");elseSystem.out.println("Error occurred");2.2. 参数使用2.2.1. escapeEscape作用是替换符号。例:-escape space : _ -metadata X : Value_with_spaces经过替换后 metadata X 的值为Value with spaces-pythonpath lib/STAR.j

9、ar -escape star:STAR经过替换后则会引入lib下所有的jar包可使用的替换符CharacterName to useCharacterName to use&amp(paren1'apos)paren2at%percentblash|pipe:colon?quest可使用的替换符CharacterName to useCharacterName to use,comma"quotcurly1;semiccurly2/slash$dollarspace!exclamsquare1>gtsquare2#hash*star<lt2.2.2. a

10、rgumentfile1)可以将所需的参数全部放在一个文件里,运行时引入该文件即可。jybot -argumentfile all_arguments.txt2 ) 一个文件夹下的case是按字母顺序执行的,以下情况可以将其放到文件里,按自 己想要的顺序执行。tests/some_tests.html tests/second.html tests/more/tests.html tests/more/another.html tests/even_more_tests.html3 .创建 Test Data3.1. Test Data Files3.1.1. Test Data Syntax

11、1)支持的文件格式:HTML(.html、.htm、.xhtml), TSV(.tsv), plain text(.txt),reStructuredText (.rst 、.rest)。2) 一个文件是一个test suite ,包含多个case; 一个文件夹包含多个文件,文件夹中还可包含多个文件夹(目录结构)3)使用HTML格式写case如下:SettingValueValueValueLibraryOperatingSystemVariableValueValueValueVariableValueValueValue$MESSAGEHello, world!Test CaseActio

12、nArgumentArgumentMy TestDocumentationExample testLog$MESSAGEMy Keyword/tmpAnother TestShould Be Equal$MESSAGEHello, world!KeywordActionArgumentArgumentMy KeywordArguments$pathDirectory Should Exist$path4) 整个 test data 包括 setting table、variables table 、test case table、keywordtable 。用RIDE可以很方便的编辑test

13、data 。3.1.2. Setting TableSettingValueValueValueValueLibraryResourceVariablesDocumentationMetadataSuite SetupSuite TeardownForce TagsDefault TagsSettingValueValueValueValueTest SetupTest TeardownTest TemplateTest TimeoutLibrary :有 standard (builtIn、operatingSystem 、Telnet、collections、String、 Dialogs

14、 > screenshot 、 Remote ) 、 External (selenium 、 swing ) 以及自定义的 库。Resource :可在文件中定义 keywords、variables ,然后弓I入Variables :这里的变量是在python中写的,故该变量可动态地设置(通过函数返回, 或调取数据库)Documentation :对 test suite 的描述Metadata :自定义一些信息,如版本信息Suite setup : suite执行之前做的事Suite teardown : suite结束之前做的事Force Tag:强制有的tagDefault T

15、ag :默认的 tagTest setup : test case执行前做的事(每个test case,要是该test case有自己的setup , 会覆盖掉本setup )Test teardown : test case 结束前做的事Test template :将 keyword-driven 转换成 data-driven 的格式输出(case 弓I用模 板后要按模板的格式来,使用其他 keyword没用)Test timeout : test suite执行的时间,超过这个时间会认为是failure3.1.3. Variables TableVariableValueValueVa

16、lueValue这里可设置变量3.1.4. Test Case TableTest CaseActionArgumentArgumentArgumentTest CaseActionArgumentArgumentArgumentDocumentationTagsSetupTeardownTemplateTimeoutDocumentation : test case 描述Tags : test case 标签Setup : test case执行前做的事Teardown : test case结束前做的事Template : test case 模板Timeout : test case 执

17、行时间3.1.5. Keyword TableKeywordActionArgumentArgumentArgumentDocumentationArgumentsReturnTimeoutTeardownDocumentation : keyword 描述Arguments :参数Return :返回值Timeout :超时时间Teardown : keyword 结束前做的事3.2. 使用 Library3.2.1. Library search pathpythonpath 、classpath、Using -pythonpath option1) 将自定义的 library (.py

18、或.class) 放入 pythonpath 或 classpath2)将jar包的位置添到classpath 环境变量中,也可在运行的时候先setCLASSPATH=xxx.jar3)运行的时候加入-pythonpath 参数,例:Jybot -pythonpath lib/ (.py or .class 文件)Jybot -pythonpath lib/STAR.jar -escape star:STAR test.html (这里表示引入lib下所有的jar包)4) Test.html 中 library 设置SettingValueLibrarycom.test.wsg.ta.libr

19、ary.FtpLibrary(FtpLibrary 在 package 包里)LibraryLibraryFtpLibrary.class(FtpLibrary 不在任何包里)FtpLibrary.pyLibraryOperatingSystem内置库3.2.2. 使用物理地址.py或.class文件所在的绝对地址或相对地址Test.html 中 library 设置SettingValueLibraryLib/FtpLibrary.classLibraryD:/mylib/FtpLibrary.class3.2.3. 自定义库名以不同名字引入同一个库SettingValueValueValu

20、eValueValueLibrarySomeLibrarylocalhost1234WITH NAMELocalLibLibrarySomeLibraryserver.domain8080WITH NAMERemoteLibTest CaseActionArgumentArgumentMy TestLocalLib.Some Keywordsome argsecond argRemoteLib.Some Keywordanother argwhateverLocalLib.Another Keyword3.3. 使用 Variables3.3.1. Test case 定义变量1)变量分为sc

21、alar和list。2) Scalar为单值变量,例:$GREET3) List里可包含多个值,list不能嵌套list ,例USER4)变量使用优先级,依次降低:command line->case file 定义的->从resource或变量文件引入的,执行测试时设置的,内置变量5)数字$3.14、$3VariableValue$GREEIhello world!USERrobotsecretTest CaseActionArgumentArgumentStringsLoginrobotsecretTitle Should BeWelcome robot!List Variab

22、leLoginUSERTest CaseActionArgumentArgumentTitle Should BeWelcome USER0!3.3.2. Variable files定义变量1) Variable files 使用 python 编写2)引入变量文件如前使用library 一样3)简单只用如下:VARIABLE = "An example string" ANOTHER_VARIABLE = "This is pretty easy! INTEGER = 42STRINGS = "one", "two",

23、"kolme", "four" NUMBERS = 1, INTEGER, 3.144)动态变量:import mathdef get_area(diameter): radius = diameter / 2 area = math.pi * radius * radius return areaAREA1 = get_area(1)AREA2 = get area(2)3.4. 使用 Keyword3.4.1. Test case 定义 keywordDocumentation 设置 keyword 描述Arguments设置keyword调用时需输

24、入的参数Return Value设置 keyword 的返回值Teardown 设置keyword结束前做的事Timeout超时时间KeywordActionArgumentArgumentKeywordActionArgumentArgumentOpen Login PageOpen Browserhttp:/hostZlogin.htmlTimeout20 secondsGet TitleArguments$expectedReturn$expected title3.4.2. Python or Java 定义 keyword使用 python or java 写 keyword ,然后

25、通过 library 引入。见 创建 Test Library3.5. 使用 Resource files1)可在该文件中引入 library、resource、variable files(python 文件);定义keywords、variables ;不能定义 test case2)引入该文件如前使用library 一样4 .扩展 Robot4.1. 创建 Test Library4.1.1. static keywords1) Test libraries 可以用python 或 java 实现2) Java文件需编译好后才能引入,引入方法见使用library3) 简单使用如下:(通过

26、构造函数传参数)Python :from example import Connectionclass MyLibrary:def _init_(self, host, port=80):self._conn = Connection(host, int(port)def send_message(self, message): self._conn.send(message)Java:public class AnotherLib private String setting = null;public AnotherLib(String setting) setting = setting

27、;public void doSomething() if setting.equals("42") / do something .SettingValueValueValueLibraryMyLibrary8080LibraryAnotherLib$VAR4) Test library 范围TEST CASE:每个case可以共享该实例TEST SUITE:每个suite可以共享该实例GLOBAL:整个执行期间就创建一个实例Python :ROBOT_LIBRARY_SCOPE = 'TEST SUITE'Java:public stat

28、ic final String ROBOT_LIBRARY_SCOPE = "GLOBAL"5) Test versionPython :_version_ = '0.1'Java:public static final String ROBOT_LIBRARY_VERSION = "1.0.2"4.1.2. 参数1) 使用不同参数def no_arguments():print "Keyword got no arguments"def one_argument(arg):print "Keyword go

29、t one argument '%s'" % argdef multiple_arguments(a1, a2, a3):print "Keyword got three arguments '%s', '%s' and '%s” (a1, a2, a3)2) 使用默认参数Python :def one_default(arg='default'):print "Argument has value '%s'" % argdef multiple_defaults(arg1, arg2='default 1', arg3='default 2'):print "Got arguments %s, %s and %s" % (arg1, arg2, arg3)Java:(通过重载实现)public void oneDefault(String arg) System.out.println("Argument h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论