版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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&(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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天然气管道施工协议书(2篇)
- 夫妻转让资产协议书(2篇)
- 农业新魔法:林产化学
- 2023年周口鹿邑县人民医院基层卫生专业技术人员招聘考试真题
- 电子产品PCB设计学习通超星期末考试答案章节答案2024年
- 消防保卫管理制度
- 钢琴课程设计制作总结
- 双重预防体系培训教育制度
- 汽车站综合布线课程设计
- 党校情景模拟实训教学系统建设方案
- 安徽省亳州市黉学英才中学2024-2025学年七年级上学期期中生物学试题(含答案)
- 期中综合检测(1-4单元)(试题)- 2024-2025学年二年级上册数学人教版
- 2024-2030年全球及中国IT服务管理(ITSM)软件行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 沪粤版初中物理八上八年级上学期物理期中试卷(解析版)
- 江苏省苏州市苏州工业园区苏州工业园区景城学校2023-2024学年八年级上学期期中数学试题(解析版)
- 私募基金管理公司薪酬与激励约束制度
- 2024年消防宣传月知识竞赛考试题库500题(含答案)
- 2024年下半年事业单位公开考试招聘工作人员报考信息表
- 北京市西城区某中学2023-2024学年八年级上学期期中考试语文试题(含答案)
- 2024年新人教版七年级上册数学课件 4.2 第2课时 去括号
- 《健康管理职业导论》高职健康管理专业全套教学课件
评论
0/150
提交评论