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

下载本文档

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

文档简介

1、例会制度 目录1.编写目的22.执行Test cases22.1.运行test case22.1.1.用python运行test case22.1.2.用jython运行test case22.1.3.写自定义脚本运行test case22.1.4.用RIDE使用和运行test case32.1.5.用Eclipse运行test case32.2.参数使用42.2.1.escape42.2.2.argumentfile43.创建Test Data53.1.Test Data Files53.1.1.Test Data Syntax53.1.2.Setting Table63.1.3.Varia

2、bles Table73.1.4.Test Case Table73.1.5.Keyword Table73.2.使用Library83.2.1.Library search path83.2.2.使用物理地址83.2.3.自定义库名93.3.使用Variables93.3.1.Test case 定义变量93.3.2.Variable files定义变量103.4.使用Keyword103.4.1.Test case 定义keyword103.4.2.Python or Java 定义keyword113.5.使用Resource files114.扩展Robot124.1.创建Test L

3、ibrary124.1.1.static keywords124.1.2.参数131. 编写目的本文档用于描述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.2. 用jython运行test case1) 在jython环境下执行case可用jybot命令。例:jybot test.html2) Test ca

4、se中引入的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 ( call :set_cp %jar)set CLASSPATH=%CP%jybot -ouputdir d:mytestoutput test.htmlgoto :eof:

5、 Helper for setting variables inside a for loop:set_cp set 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/FtpLibrary.java上述是先设置创建文档所需要的jar包,然后生成xml格式的关键字文档。将生产的xml放到pythonpath目录中,然后打开RIDE,引入com.

6、test.wsg.ta.library.FtpLibrary后在tools->serch keywords中即可找到关键字及其描述。3) 在RIDE上写好case后,可以使用pybot、jybot或custom script方式运行,同上述三种方式一样。2.1.5. 用Eclipse运行test case1) 新建一个项目后引入robotframework独立运行的jar包。2) 新建一个class,代码如下:import org.robotframework.RobotFramework;public class RobotTest public static void main(St

7、ring args) / TODO Auto-generated method stubint rc = RobotFramework.run(new String "-outputdir","d:mytestoutput"," d:mytesttest.html" );if (rc = 0)System.out.println("All tests passed");else if (rc <= 250)System.out.println(rc + " tests failed.");

8、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.jar -escape star:STAR经过替换后则会引入lib下所有的jar包可使用的替换符CharacterName to useCharacterName to use&amp(paren1

9、9;apos)paren2at%percentblash|pipe:colon?quest,comma"quotcurly1;semiccurly2/slash$dollarspace!exclamsquare1>gtsquare2#hash*star<lt2.2.2. argumentfile1) 可以将所需的参数全部放在一个文件里,运行时引入该文件即可。jybot -argumentfile all_arguments.txt2) 一个文件夹下的case是按字母顺序执行的,以下情况可以将其放到文件里,按自己想要的顺序执行。tests/some_tests.htmlte

10、sts/second.htmltests/more/tests.htmltests/more/another.htmltests/even_more_tests.html3. 创建Test Data3.1. Test Data Files3.1.1. Test Data Syntax1) 支持的文件格式: HTML(.html、.htm、.xhtml), TSV(.tsv), plain text(.txt), reStructuredText (.rst、.rest) 。2) 一个文件是一个test suite,包含多个case;一个文件夹包含多个文件,文件夹中还可包含多个文件夹(目录结构)

11、。3) 使用HTML格式写case如下:SettingValueValueValueLibraryOperatingSystem     VariableValueValueValue$MESSAGEHello, world!     Test CaseActionArgumentArgumentMy TestDocumentationExample test Log$MESSAGE My Keyword/tmp    Another

12、TestShould Be Equal$MESSAGEHello, world!KeywordActionArgumentArgumentMy KeywordArguments$path Directory Should Exist$path 4) 整个test data包括setting table、variables table、test case table、keyword table。用RIDE可以很方便的编辑test data。3.1.2. Setting TableSettingValueValueValueValueLibraryResourceVariabl

13、esDocumentationMetadataSuite SetupSuite TeardownForce TagsDefault TagsTest SetupTest TeardownTest TemplateTest TimeoutLibrary:有standard(builtIn、operatingSystem、Telnet、collections、String、Dialogs、screenshot、Remote)、External(selenium、swing)以及自定义的库。Resource:可在文件中定义keywords、variables,然后引入Variables:这里的变量是

14、在python中写的,故该变量可动态地设置(通过函数返回,或调取数据库)Documentation:对test suite的描述Metadata:自定义一些信息,如版本信息Suite setup:suite执行之前做的事Suite teardown:suite结束之前做的事Force Tag:强制有的tagDefault Tag:默认的tagTest setup:test case执行前做的事(每个test case,要是该test case有自己的setup,会覆盖掉本setup)Test teardown:test case结束前做的事Test template:将keyword-driv

15、en转换成data-driven的格式输出(case引用模板后要按模板的格式来,使用其他keyword没用)Test timeout:test suite执行的时间,超过这个时间会认为是failure3.1.3. Variables TableVariableValueValueValueValue这里可设置变量3.1.4. Test Case TableTest CaseActionArgumentArgumentArgumentDocumentationTagsSetupTeardownTemplateTimeoutDocumentation:test case描述Tags:test ca

16、se标签Setup:test case执行前做的事Teardown:test case结束前做的事Template:test case模板Timeout:test case执行时间3.1.5. Keyword TableKeywordActionArgumentArgumentArgumentDocumentationArgumentsReturnTimeoutTeardownDocumentation:keyword描述Arguments:参数Return:返回值Timeout:超时时间Teardown:keyword结束前做的事3.2. 使用Library3.2.1. Library se

17、arch pathpythonpath、classpath、Using -pythonpath option1) 将自定义的library(.py或.class)放入pythonpath或classpath2) 将jar包的位置添到classpath环境变量中,也可在运行的时候先set CLASSPATH=xxx.jar3) 运行的时候加入-pythonpath参数,例:Jybot -pythonpath lib/ (.py or .class文件)Jybot -pythonpath lib/STAR.jar -escape star:STAR test.html(这里表示引入lib下所有的j

18、ar包)4) Test.html中library设置SettingValueLibrarycom.test.wsg.ta.library.FtpLibrary(FtpLibrary在package包里)LibraryFtpLibrary.class(FtpLibrary不在任何包里)LibraryFtpLibrary.pyLibraryOperatingSystem内置库3.2.2. 使用物理地址.py或.class文件所在的绝对地址或相对地址Test.html中library设置SettingValueLibraryLib/FtpLibrary.classLibraryD:/mylib/Ft

19、pLibrary.class3.2.3. 自定义库名以不同名字引入同一个库SettingValueValueValueValueValueLibrarySomeLibrarylocalhost1234WITH NAMELocalLibLibrarySomeLibraryserver.domain8080WITH NAMERemoteLibTest CaseActionArgumentArgumentMy TestLocalLib.Some Keywordsome argsecond argRemoteLib.Some Keywordanother argwhateverLocalLib.Ano

20、ther Keyword3.3. 使用Variables3.3.1. Test case 定义变量1) 变量分为scalar和list。2) Scalar为单值变量,例:$GREET3) List里可包含多个值,list不能嵌套list,例USER4) 变量使用优先级,依次降低:command line->case file定义的->从resource或变量文件引入的->执行测试时设置的->内置变量5) 数字$3.14、$3VariableValue$GREEThello world!USERrobotsecretTest CaseActionArgumentArgum

21、entStringsLoginrobotsecretTitle Should BeWelcome robot! List VariableLoginUSER Title 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!"I

22、NTEGER = 42STRINGS = "one", "two", "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 定义keyw

23、ordDocumentation设置keyword描述Arguments设置keyword调用时需输入的参数Return Value设置keyword的返回值Teardown 设置keyword结束前做的事Timeout超时时间KeywordActionArgumentArgumentOpen Login PageOpen Browserhttp:/host/login.html Timeout20 secondsGet TitleArguments$expected Return$expected title 3.4.2. Python or Java 定义ke

24、yword使用python or java写keyword,然后通过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文件需编译好后才能引入,引入方法见使用li

25、brary3) 简单使用如下:(通过构造函数传参数)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 setti

26、ng) setting = setting; 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

27、'Java:public static 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):

28、print "Keyword got 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'&

29、quot; % 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 has value '" + arg "'");public void oneDefault() o

温馨提示

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

评论

0/150

提交评论