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

提交評論