版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
詳解IBMRationalFunctionalTester的工作原理RationalFunctionalTester測(cè)試的前提相信很多讀者在接觸RationalFunctionalTester這類(lèi)自動(dòng)化測(cè)試工具后,都會(huì)有這樣的疑問(wèn):它為什么可以操縱Java程序或者瀏覽器呢?RationalFunctionalTester可以操控被測(cè)控件、完成用戶(hù)指定的自動(dòng)測(cè)試動(dòng)作,但前提是它需要具備與被測(cè)應(yīng)用程序(ApplicationUnderTest,AUT)進(jìn)行通訊的能力。要做到這一點(diǎn),RationalFunctionalTester首先必須建立自身與被測(cè)應(yīng)用的溝通渠道,該過(guò)程對(duì)于RationalFunctionalTester而言,被稱(chēng)為“啟用被測(cè)應(yīng)用程序”。目前RationalFunctionalTester可以支持如下領(lǐng)域的被測(cè)應(yīng)用程序:基于Java平臺(tái)的程序、基于.Net平臺(tái)的程序、HTML程序,以及基于Siebel、SAP、Flex等特定平臺(tái)的應(yīng)用程序。RationalFunctionalTester提供了這樣的一個(gè)向?qū)Т翱趤?lái)幫助用戶(hù)“啟用被測(cè)應(yīng)用程序”,在這個(gè)簡(jiǎn)潔的對(duì)話(huà)框的“啟用(Enable)”按鈕和“測(cè)試(Test)”按鈕的背后,還隱藏著更多的細(xì)節(jié)。圖1.啟用環(huán)境向?qū)?duì)話(huà)框在RationalFunctionalTester的術(shù)語(yǔ)詞典里,這里的每一類(lèi)應(yīng)用程序都被稱(chēng)為“域”(domain)。建立溝通渠道的操作,都是作用在某個(gè)特定的“域”上,你可以在RationalFunctionalTester和“Java域”之間建立溝通渠道,這就是在RationalFunctionalTester中啟動(dòng)Java被測(cè)應(yīng)用程序的過(guò)程;依此類(lèi)推,你也可以為.Net程序、SAP程序建立它們和RationalFunctionalTester之間的特有的溝通渠道,使得RationalFunctionalTester可以進(jìn)而對(duì).Net程序、SAP程序進(jìn)行測(cè)試。在為每類(lèi)程序(或進(jìn)程)建好溝通渠道后,你還需要對(duì)渠道進(jìn)行必要的測(cè)試,檢驗(yàn)通訊是否能正常工作。RationalFunctionalTester正是通過(guò)這些溝通渠道來(lái)對(duì)被測(cè)程序(或進(jìn)程)的控件發(fā)出指令、執(zhí)行動(dòng)作的。建立溝通渠道時(shí),RationalFunctionalTester對(duì)于被測(cè)應(yīng)用程序,會(huì)新建一個(gè)Domainimplementation對(duì)象實(shí)例,由它來(lái)抽象出一個(gè)接口,提供具體的域相關(guān)細(xì)節(jié)給RationalFunctionalTester。Domainimplementation對(duì)象的使命有:獲取該域最高級(jí)別的對(duì)象注冊(cè)該域可用的代理對(duì)象為指定的控件創(chuàng)建代理對(duì)象下圖是啟用瀏覽器環(huán)境的測(cè)試結(jié)果,可以看見(jiàn)Java,HTML兩種Domainimplementation對(duì)象都被加載,來(lái)完成HTML被測(cè)應(yīng)用的測(cè)試。(因?yàn)镠TML應(yīng)用程序在呈現(xiàn)時(shí)會(huì)涉及到Java內(nèi)容)圖2.瀏覽器啟用的測(cè)試結(jié)果ResultE1ProblemandSolution1D噩注[伊綣彌而|1JavaEnabled?JavaEuctbhd7??Browser=trueJVMInformation?JVM腿何=1.6.0_07?J~\rSfVendor=SunMicrosystemsInc.GeneralEnablementInformationBootstrapLoaded=trueJava!TsstDomaiulmpiememarionLoadsd=trueHimITssrDomaiulmpiementarionLoaded—trueHimITssrDomaiulmpiementarionNctms=Unkno^Ti“域”、“頂級(jí)對(duì)象”、“測(cè)試對(duì)象”、“代理對(duì)象”,又有這么多新名詞出現(xiàn),它們和RationalFunctionalTester的運(yùn)作有著怎樣的關(guān)系呢?下面我們會(huì)逐一介紹它們的作用和典型動(dòng)作。RationalFunctionalTester進(jìn)程級(jí)交互RationalFunctionalTester進(jìn)程模型我們知道,運(yùn)行中的程序和軟件是以進(jìn)程的形式存在的。首先我們來(lái)看一下RationalFunctionalTester和被測(cè)程序間的進(jìn)程相關(guān)細(xì)節(jié)。在RationalFunctionalTester的設(shè)計(jì)規(guī)劃里,各個(gè)相關(guān)進(jìn)程按照所處位置和相對(duì)關(guān)系分成兩類(lèi):客戶(hù)端進(jìn)程和服務(wù)器端進(jìn)程。被測(cè)應(yīng)用程序進(jìn)程被稱(chēng)為“RationalFunctionalTester服務(wù)器端進(jìn)程”,而錄制,回放,對(duì)象查看器,和集成開(kāi)發(fā)環(huán)境(IDE,Eclipse或VisualStudio.Net)等進(jìn)程則被稱(chēng)為“RationalFunctionalTester客戶(hù)端進(jìn)程”。不論用戶(hù)使用的是Java編程環(huán)境還是.Net編程環(huán)境來(lái)進(jìn)行腳本開(kāi)發(fā),進(jìn)程間的關(guān)系皆是如此,如下圖所示。更直觀地說(shuō),與RationalFunctionalTester直接相關(guān)的進(jìn)程是客戶(hù)端,與被測(cè)程序直接相關(guān)的進(jìn)程是服務(wù)器端。圖3.客戶(hù)端進(jìn)程和被測(cè)應(yīng)用程序(服務(wù)器端進(jìn)程)
■jEelipsen一]集成升發(fā)環(huán)境VisuulSLudlo.Nel集成升很環(huán)境(使用VB.恥VisuulSLudlo.Nel集成升很環(huán)境(使用VB.恥t帝行腳木開(kāi)發(fā))客戶(hù)端毋程被測(cè)應(yīng)用程序RationalFunctionalTester與被測(cè)應(yīng)用程序的進(jìn)程級(jí)交互RationalFunctionalTester客戶(hù)端進(jìn)程與被測(cè)應(yīng)用程序進(jìn)程進(jìn)行交互,并從中獲取必要的相關(guān)信息來(lái)完成錄制、回放、對(duì)象查看之類(lèi)的動(dòng)作。它們借助進(jìn)程間通訊(IPC)層的共享內(nèi)存進(jìn)行通訊。圖4.進(jìn)程和測(cè)試上下文
被測(cè)應(yīng)用程序RFT(客戶(hù)端上下文〉|~~j.Net用程序jHTML應(yīng)用程序BSAP應(yīng)用程序及其他被測(cè)應(yīng)用程序RFT(客戶(hù)端上下文〉|~~j.Net用程序jHTML應(yīng)用程序BSAP應(yīng)用程序及其他Java鹿用舞序Win3衛(wèi)應(yīng)用程序?qū)ο髨D錄制回放對(duì)象杳看器糜成開(kāi)發(fā)臥境共享內(nèi)存測(cè)試腳本RationalFunctionalTester給每個(gè)相關(guān)進(jìn)程(包括客戶(hù)端及服務(wù)器進(jìn)程)創(chuàng)建測(cè)試上下文(TestContext)對(duì)象,并在共享內(nèi)存里進(jìn)行注冊(cè),該測(cè)試上下文對(duì)象是測(cè)試過(guò)程中用來(lái)操作被測(cè)程序的句柄(reference)0已注冊(cè)的測(cè)試上下文對(duì)象將承擔(dān)關(guān)聯(lián)進(jìn)程的所有通信。通常情況下,測(cè)試上下文對(duì)象會(huì)關(guān)聯(lián)到一個(gè)操作系統(tǒng)級(jí)的被測(cè)進(jìn)程,或測(cè)試客戶(hù)端。當(dāng)然,有時(shí)會(huì)有多個(gè)測(cè)試上下文對(duì)象關(guān)聯(lián)到同一個(gè)進(jìn)程。兩個(gè)被測(cè)應(yīng)用程序的測(cè)試上下文(TestContext)對(duì)象是無(wú)法直接通訊的,它們需要一個(gè)中介:RationalFunctionalTester客戶(hù)端進(jìn)程的測(cè)試上下文對(duì)象,來(lái)傳遞通訊信息。圖5的上半部是RationalFunctionalTester客戶(hù)端進(jìn)程,下半部是各類(lèi)服務(wù)器端進(jìn)程,即被測(cè)程序,它們之間的交流和通訊只能在共享內(nèi)存區(qū)域完成的。圖5,進(jìn)程和測(cè)試上下文內(nèi)部結(jié)構(gòu)
WWW測(cè)試腳本回赦編輯器利皺皆看器注:偵窺內(nèi)存,英文術(shù)語(yǔ)為SpyMemory,即共享內(nèi)存,其中的各類(lèi)測(cè)試上下文承擔(dān)被測(cè)程序及RationalFunctionalTester間通訊功能。RationalFunctionalTester進(jìn)程通訊模型里的每一個(gè)進(jìn)程都需要借由測(cè)試上下文(TestContext)對(duì)象來(lái)管理它的進(jìn)程間通訊的調(diào)用和請(qǐng)求。RationalWWW測(cè)試腳本回赦編輯器利皺皆看器注:偵窺內(nèi)存,英文術(shù)語(yǔ)為SpyMemory,即共享內(nèi)存,其中的各類(lèi)測(cè)試上下文承擔(dān)被測(cè)程序及RationalFunctionalTester間通訊功能。RationalFunctionalTester進(jìn)程通訊模型里的每一個(gè)進(jìn)程都需要借由測(cè)試上下文(TestContext)對(duì)象來(lái)管理它的進(jìn)程間通訊的調(diào)用和請(qǐng)求。RationalFunctionalTester客戶(hù)端進(jìn)程會(huì)和多個(gè)被測(cè)應(yīng)用程序(AUT)進(jìn)程交互,以RationalFunctionalTester回放時(shí)的客戶(hù)端Find進(jìn)程為例,它會(huì)和所有的被測(cè)應(yīng)用程序進(jìn)行通訊來(lái)確定被尋找的控件對(duì)象。但在同一時(shí)間里,每個(gè)被測(cè)應(yīng)用程序進(jìn)程只能和唯一的RationalFunctionalTester客戶(hù)端進(jìn)程交流。對(duì)象管理器(ObjectManager)處理所有服務(wù)器端的進(jìn)程通訊,以及與被測(cè)程序交互的元偵巍內(nèi)存測(cè)試域代即對(duì)象代理對(duì)象被測(cè)程序B被測(cè)程序A羽象管理饕ObjectManagerI被測(cè)程序TostI客戶(hù)端stCont^xtI被測(cè)程序TtslContexi在測(cè)試上下文(TestContext)對(duì)象里,域(TestDomain)對(duì)象是用于管理與它相關(guān)的特定通訊。例如,對(duì)于被測(cè)應(yīng)用的瀏覽器進(jìn)程,一個(gè)HTML測(cè)試上下文對(duì)象和一個(gè)Java域?qū)ο髸?huì)被創(chuàng)建,因?yàn)闉g覽器里包含了隸屬于HTML域的HTML元素,以及隸屬于Java域的JavaAppletso而在域(TestDomain)對(duì)象里,代理對(duì)象(ProxyObject)的作用是管理控件一級(jí)的通訊。它被RationalFunctionalTester創(chuàng)建出來(lái),用以和控件通訊,來(lái)操縱它們完成指定的功能測(cè)試動(dòng)作。代理對(duì)象和被測(cè)應(yīng)用程序的控件間有著一一對(duì)應(yīng)的關(guān)系,任何控件間的交互都是通過(guò)代理對(duì)象這一媒介來(lái)達(dá)成。比如,各種不同類(lèi)型的按鈕分別會(huì)映射到不同的代理對(duì)象。注:上下文對(duì)象,對(duì)象管理器,域?qū)ο蠛痛韺?duì)象都是創(chuàng)建在被測(cè)應(yīng)用程序進(jìn)程里。RationalFunctionalTester代理結(jié)構(gòu)RationalFunctionalTester與被測(cè)應(yīng)用程序控件的交互,有兩個(gè)必不可少的要素:代理對(duì)象(ProxyObject)和測(cè)試對(duì)象(TestObject)。代理對(duì)象包裹著實(shí)際的被測(cè)應(yīng)用程序控件,測(cè)試對(duì)象則是該控件在腳本層面的展現(xiàn),兩者遙相呼應(yīng),傳遞測(cè)試的動(dòng)作和信息。圖6.Java代理對(duì)象結(jié)構(gòu)圖如代理對(duì)象丁紂通用程序Java域Jiva代理對(duì)象拓展代理對(duì)象如代理對(duì)象丁紂通用程序Java域Jiva代理對(duì)象拓展代理對(duì)象注:為節(jié)約篇幅,這里僅以Java域的內(nèi)容作介紹,.Net域的情況也大致相似。通過(guò)代理對(duì)象進(jìn)行交互代理對(duì)象(Proxyobjects)有些類(lèi)似于實(shí)際圖形界面控件的包裹類(lèi)。RationalFunctionalTester與被測(cè)應(yīng)用程序并不發(fā)生直接接觸,任何與被測(cè)應(yīng)用程序的通訊都需要對(duì)應(yīng)的代理對(duì)象。代理對(duì)象創(chuàng)建后,被放置于被測(cè)控件能夠訪問(wèn)并獲取信息的地方。代理類(lèi)可以用Java語(yǔ)言或者C#語(yǔ)言來(lái)開(kāi)發(fā),來(lái)實(shí)現(xiàn)規(guī)定的RationalFunctionalTester與被測(cè)應(yīng)用程序界
面控件通訊的接口。當(dāng)您的應(yīng)用程序?qū)嵤┝饲拔乃岬健皢⒂帽粶y(cè)應(yīng)用程序”操作后,它對(duì)應(yīng)的代理類(lèi)就會(huì)被加載到應(yīng)用程序,成為被測(cè)應(yīng)用程序的一部分。代理對(duì)象包裹著實(shí)際GUI測(cè)試對(duì)象(原生對(duì)象),使得它們可以被RationalFunctionalTester識(shí)別和測(cè)試。以HTML程序?yàn)槔?,HTML應(yīng)用程序的瀏覽器被啟用后,瀏覽器及其HTML控件的代理類(lèi)都會(huì)被加載到瀏覽器中。對(duì)于WindowsInternetExplorer瀏覽器,“啟用被測(cè)應(yīng)用程序”則會(huì)把InternetExplorer瀏覽器相關(guān)的代理類(lèi)——瀏覽器輔助對(duì)象(BrowserHelperObject)RTXIEEnabler.dll文件作為第三方插件裝入InternetExplorer瀏覽器插件集,RTXIEEnabler.dll在啟動(dòng)后還將加載另外兩個(gè)文件rtxivsys.dll和rtxiedomain.dll,并與它們共同負(fù)責(zé)RationalFunctionalTester和HTML被測(cè)程序間的交互行為。(該過(guò)程和木馬病毒的工作原理類(lèi)似)另外,RationalFunctionalTester設(shè)計(jì)領(lǐng)先、開(kāi)放靈活的架構(gòu)允許用戶(hù)可以創(chuàng)建新的ProxyObject類(lèi),或拓展某個(gè)現(xiàn)有的ProxyObject類(lèi)來(lái)支持新的界面控件。通過(guò)測(cè)試對(duì)象進(jìn)行的交互測(cè)試對(duì)象(TestObject)是被測(cè)對(duì)象控件的腳本端接口,界面控件在自動(dòng)測(cè)試腳本里會(huì)表現(xiàn)為測(cè)試對(duì)象。例如,一個(gè)按鈕控件被表述為GuiTestObject,頂級(jí)容器對(duì)象如對(duì)話(huà)框或者框架控件被表述為T(mén)opLevelTestObjec。測(cè)試對(duì)象(TestObject)方法的執(zhí)行需要通過(guò)相應(yīng)的代理對(duì)象(ProxyObject),測(cè)試對(duì)象駐留在RationalFunctionalTester客戶(hù)端,它擁有指向被測(cè)應(yīng)用程序的代理對(duì)象的句柄。圖7,測(cè)試對(duì)象和代理對(duì)象間的交互RFT客戶(hù)端被測(cè)應(yīng)用程序?qū)ο蟠韺?duì)象ProxyObjects(講程間通訊)RFT客戶(hù)端被測(cè)應(yīng)用程序?qū)ο蟠韺?duì)象ProxyObjectsRationalFunctionalTester對(duì)于每個(gè)支持的測(cè)試環(huán)境都已經(jīng)提供了域?qū)ο螅鏙ava,HTML,.Net等,并且在每個(gè)域里,還提供了所支持的各種被測(cè)應(yīng)用程序控件的代理對(duì)象(ProxyObject)類(lèi)。代理對(duì)象類(lèi)與被測(cè)應(yīng)用程序控件之間的映射關(guān)系被保存在RationalFunctionalTester的安裝路徑下的可定制文件里,RationalFunctionalTester通過(guò)這些可定制信息來(lái)確定對(duì)于某種被測(cè)控件該使用哪種合適的代理對(duì)象。注:被測(cè)控件和代理對(duì)象間的映射關(guān)系主要保存在文件C:\ProgramFiles\IBM\SDP\FunctionalTester\bin\rational_ft.rftcust里。在相同路徑下,還存有其他領(lǐng)域的,以及擴(kuò)展的rftcust定制文件。圖8.rftcust定制文件FileEditViewFavoritesrcoisSeardiHelpFolders工xq畫(huà)/AdtJrt'ss_jC:\PrcgramFlles\IBM\SDP\Fiinctlonarrestef\ljinNaireSizeType▲DateModifiedErational_ftHtcusL104KERFTCUSTFile3/19/20090429jratiorralJCdojo.rftrust14KBRFTCUSTFile3/5/200900:332]ratio?IJLflex.rftEustZ4KBRFTCUSTFile5/7/200823:231ratlonaI_ft_net3rftcust25KBRFTCUSTFile1/5/200^21:53-IrationaIJLpbrlkusL5KBRFTCUSTFile9/^/200801:^2』raticniarftcust7KBRFTCUSTl-ile3/14次。01;18-1rational_ft_sap.rftcust30KDRFTCUSTFile4P/200612:31.■Iratlonalftsleljel.rftcust21KBRFTCUSTFile2/27/200806:26圖9是打開(kāi)后的rational_ft.rftcust文件,內(nèi)容以XML格式展示,層次清晰,條理分明。大家可以看到代理管理器(ProxyManager)下轄五類(lèi)測(cè)試域的代理對(duì)象,分別是Java、HTML,.Net,Win和ActiveX。展開(kāi)的ActiveX部分里還可以看見(jiàn)映射關(guān)系的細(xì)節(jié):該領(lǐng)域的DispHTMLObjectElement控件對(duì)應(yīng)著RationalFunctionalTester提供的Rational.Test.Ft.Domain.ActiveX.IEHtmlObjectElementProxy類(lèi),自動(dòng)測(cè)試腳本將通過(guò)這個(gè)類(lèi)來(lái)操控DispHTMLObjectElement控件上的各種動(dòng)作,完成既定測(cè)試。圖9.rational_ft.rftcust文件內(nèi)容局部<?xmlversion-"1.0"encoding^UTF-a1<?xmlversion-"1.0"encoding^UTF-a1'?>-<CcnfigFikL=.ConfigFile>-<SectlDin11XgnfigFiIeSectiam11><Nlain^>praKie5</Name>-<ValL="?Proxyf4anagEr">4-<DonainImplementationL=11.DomiainImp-lementation>+<DomainImpiementatiDnL=".Dorriiainlmplementation">4-<Dg-mainIrnpl^rnentatipriL=".i.DQrnainImpon">+<inlmplernentaticriL="4OomainImpleniientation>JavaDDm^in..HTMLDomainJ'IeJDomain_——WindowsNativeDamain-ActiveXDomain\-<Dom^inImp|ementationL=".DonnainImplementation"><IN-ActiveXDomain\I-<ObjL=".Proxy>^ClassNamoRationaLTest.Ft-DomainrActiveXrlEHtnilObjectEllementPrcMy^/ClcissNeiTe^<Replaces/><UsedBy>DispHTHLObjectElement</UsedBy>c/Obj><7Domainlmplementation></Section>+^SectionL=".ConfigFileSection">+^SectionL=".ConfiflFileSection"^+^SectionL=".ConfigFileSection">十cSectionL=".ConfigFileSection">*^SectionL3".ConfigFileS&ction">+<SectionLH".CanfigFileSfrction"></ConfigFile>每個(gè)RationalFunctionalTester支持的實(shí)際控件都會(huì)對(duì)應(yīng)著一個(gè)代理對(duì)象(ProxyObject),但有時(shí)也會(huì)有多個(gè)不同的控件對(duì)應(yīng)同一代理對(duì)象的情況,如下圖所示。出現(xiàn)這種情況的原因是,開(kāi)發(fā)設(shè)計(jì)人員認(rèn)為該代理對(duì)象提供的通用性接口已經(jīng)足以覆蓋這些控件的測(cè)試需求。當(dāng)然,如果用戶(hù)對(duì)某些控件有著更為細(xì)致的操控要求,可以自行拆解、拓展這一部分,使得RationalFunctionalTester可以完成更細(xì)微的測(cè)試動(dòng)作。圖10.一對(duì)一、一對(duì)多的映射關(guān)系(rational_ft.rftcust文件內(nèi)容局部)即使是在默認(rèn)配置下不為RationalFunctionalTester所支持的新界面控件,用戶(hù)也可以通過(guò)創(chuàng)建對(duì)應(yīng)的代理對(duì)象類(lèi)來(lái)拓展RationalFunctionalTester的支持范圍。例如,為了支持.Net域的.Net2.0DataGridView控件,用戶(hù)可以開(kāi)發(fā)一個(gè)代理類(lèi)Rational.Test.Ft.Domain.Net.DataGridViewProxy并把它的聲明插入到rational_ft.rftcust文件里對(duì)應(yīng)的位置。下面的代碼就是更新后的rational_ft.rftcust文件片段。圖11.用戶(hù)定制的代理對(duì)象映射-<ObjL=".Prgxy"><ClE5sNarne>[WhidbeyCDntrals]Rational.Te5t,Ft^DDrTiain.Net.DataGridViewPraxy</ClasErdEiTe^-<Replaces<Us?dBy>[Sy&temiWindows.Fqrms]System-Windows.Fqrni^.dView></Obj>RationalFunctionalTester實(shí)際運(yùn)行場(chǎng)景中的交互動(dòng)作介紹了相關(guān)的眾多復(fù)雜概念后,接下來(lái)我們以最常見(jiàn)的錄制、回放動(dòng)作為例,剖析錄制和回放的動(dòng)作實(shí)質(zhì)。總體上看,錄制和回放的過(guò)程會(huì)牽涉到對(duì)象管理器、域?qū)ο?、代理?duì)象、測(cè)試上下文之間形形色色的交互。錄制過(guò)程的交互動(dòng)作詳解下面是錄制測(cè)試步驟時(shí),對(duì)象管理器和對(duì)象管理器代理間的動(dòng)作:定位屏幕上某處的對(duì)象。例如,proxyAtPoint方法。在對(duì)象圖中獲取識(shí)別屬性,或者初始化對(duì)象句柄。例如,getMappedTestObject方法。而對(duì)于代理對(duì)象,錄制時(shí)會(huì)調(diào)用到代理類(lèi)里的以下方法:表1.錄制操作所涉代理類(lèi)方法列表動(dòng)作調(diào)用方法進(jìn)程級(jí)底層事件processMouseEvent()定位拖拽動(dòng)作的目標(biāo)對(duì)象getMethodSpecForPoint()驗(yàn)證點(diǎn)相關(guān)方法getTestDataTypes()getTestData()getProperties()getStandardProperties()getProperty()對(duì)象結(jié)構(gòu)相關(guān)方法getMappableParent()getParent()getChildren()getMappableChildren()getOwner()getOwned()對(duì)象識(shí)別相關(guān)方法getRecognitionProperties()shouldBeMapped()getRole()getTestObjectClassName()getRecognitionPropertyWeight()某個(gè)錄制動(dòng)作的細(xì)節(jié)如下:RationalFunctionalTester錄制器啟動(dòng),從對(duì)象管理器中取得當(dāng)前點(diǎn)的代理對(duì)象;(實(shí)際動(dòng)作在之后的第二步、第三步完成)獲取所在域的頂級(jí)容器對(duì)象,返回;在頂級(jí)容器對(duì)象的子對(duì)象里查找,得到當(dāng)前點(diǎn)的代理對(duì)象,返回錄制器得到當(dāng)前操作的代理對(duì)象句柄;處理鼠標(biāo)事件;設(shè)置事件或動(dòng)作細(xì)節(jié),返回并完成錄制圖12.錄制動(dòng)作時(shí)序圖Pf-iXLhsMi.HJSUKVlSiEPioKyAcPotrilGetTop:'veKJbirctsPf-iXLhsMi.HJSUKVlSiEPioKyAcPotrilGetTop:'veKJbirctsC'ielCluldAlPiiiiif(查看圖12大圖)回放過(guò)程的交互動(dòng)作詳解RationalFunctionalTester使用的識(shí)別屬性值和控件層次結(jié)構(gòu)來(lái)識(shí)別被測(cè)控件,這些信息被集中儲(chǔ)存在對(duì)象圖(ObjectMap)里。回放時(shí),這些信息被取出來(lái)用以選擇唯一的界面控件。在必要的時(shí)候,RationalFunctionalTester也會(huì)搜集諸如屏幕坐標(biāo),控件屬性等,連同界面控件一起,被表征為腳本端的測(cè)試對(duì)象(TestObject)。錄制時(shí),用戶(hù)的各種點(diǎn)擊、雙擊或拖拽動(dòng)作都是被封裝為獨(dú)立的測(cè)試對(duì)象的方法,比如button().click(atPoint(10,10)),回放時(shí),RationalFunctionalTester用對(duì)象圖里保存的識(shí)別屬性找到對(duì)應(yīng)的按鈕型測(cè)試對(duì)象,再調(diào)用點(diǎn)擊方法來(lái)施加測(cè)試動(dòng)作?;胤艜r(shí),RationalFunctionalTester客戶(hù)端進(jìn)程將請(qǐng)求發(fā)送到所有的測(cè)試域,在對(duì)象圖里通過(guò)錄制的可識(shí)別屬性辨識(shí)出目標(biāo)對(duì)象
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢真有趣說(shuō)課稿部編版
- 滴滴司服經(jīng)理述職報(bào)告
- 醫(yī)療物聯(lián)網(wǎng)科技公司勞動(dòng)合同
- 劇場(chǎng)版編劇合作協(xié)議樣本
- 通訊技術(shù)助理聘用合同
- 農(nóng)村供水工程招投標(biāo)制度研究
- 漁業(yè)發(fā)展項(xiàng)目魚(yú)塘施工合同模板
- 倉(cāng)儲(chǔ)物流區(qū)域副總招聘協(xié)議
- 特種設(shè)備應(yīng)急演練
- 2022年大學(xué)生物科學(xué)專(zhuān)業(yè)大學(xué)物理二期末考試試卷D卷-含答案
- 《報(bào)關(guān)單填寫(xiě)規(guī)范》課件
- 各專(zhuān)業(yè)文件準(zhǔn)備目錄-內(nèi)分泌科藥物臨床試驗(yàn)機(jī)構(gòu)GCP SOP
- 化妝培訓(xùn)課件教學(xué)課件
- 車(chē)間員工安全培訓(xùn)試題附參考答案【典型題】
- 科普知識(shí)《世界兒童日》(課件)小學(xué)生主題班會(huì)
- 淺色傳統(tǒng)美食小籠包宣傳PPT模板
- 小學(xué)五年級(jí)上學(xué)期家長(zhǎng)會(huì)課件.ppt
- 語(yǔ)文蘇教版七年級(jí)上冊(cè)抓住物象 體會(huì)情感.ppt
- 三年級(jí)數(shù)學(xué)上冊(cè) 第五單元《面積》課件 滬教五四制
- 天貓店年度銷(xiāo)售計(jì)劃PPT幻燈片.ppt
- 國(guó)際結(jié)算(第九章)
評(píng)論
0/150
提交評(píng)論