欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

智能ui記錄和重放結(jié)構(gòu)的制作方法

文檔序號:6637219閱讀:236來源:國知局
專利名稱:智能ui記錄和重放結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
描述了用于記錄基于應(yīng)用程序的不同圖形用戶接口內(nèi)的用戶活動的工具和技術(shù)。例如,一個全系統(tǒng)記錄工具支持本地應(yīng)用程序宏或UI記錄以及非本地宏或UI記錄。
背景I.圖形用戶接口在一些現(xiàn)代的計算機系統(tǒng)中,用戶通過圖形用戶接口(“GUI”)與軟件程序相互作用。基本上,GUI是計算機和用戶之間的接口,它利用圖像而不僅是文字來請求用戶輸入和顯示程序的輸出。典型的GUI由用戶接口元件(“UI元件”)組成,這些元件是能夠被用戶看見、聽到,或相反被感知或相互作用的計算機系統(tǒng)或程序的那些方面。例如,UI元件包括諸如圖標、按鈕、對話框、編輯框、列表框、組合框、滾動條、選項表、按鈕、單選按鈕和互聯(lián)網(wǎng)頁中的各種元件(例如,超鏈接和圖像)的選項。在一個典型的計算機程序里常遇到幾乎數(shù)千個UI元件。
雖然單個的GUI元件可以作為一個單一選項顯示給用戶,實際上它可能由許多單獨選項或被組合在一起的子元件所構(gòu)成。例如,一個工具條選項可以由一個列表元件,一個組合框元件,一個滾動條元件等等組成。此外,每一個這些子元件自身可以由其它子元件組成。用這種方式,UI元件能夠作為結(jié)構(gòu)單元用于構(gòu)建其它的,更復雜的UI元件。這種方法是有用的,因為當將它們裝配成組合元件時,軟件管理的用戶接口可以重新使用某些公共單元的定義。
GUI環(huán)境中的許多UI元件表示程序的特征且顯示在計算機屏幕上顯示,因此用戶可以通過選擇,加亮,存取和操作它們與程序相互作用。當光標指向UI元件時,通過操縱屏幕上的光標(典型地通過鼠標或者鍵盤控制)和按壓或者點擊按扭來完成與用戶的相互作用。例如,在文字處理軟件中,用戶可以操縱鼠標選擇程序的菜單條上的選項,點擊工具條上的圖標,或者加亮瀏覽窗內(nèi)的文本字塊。同樣,用戶可以使用鍵盤輸入來與計算機應(yīng)用程序相互作用。例如,在文字處理程序中,用戶可以按壓“ALT-F”,“CTRL-B”,或者其它預定義的按鍵組合來訪問程序性能。根據(jù)鼠標或鍵盤的輸入,計算機增加,改變和操作顯示屏上的顯示。GUI技術(shù)為用戶與計算機系統(tǒng)相互作用提供了方便的,用戶友好的環(huán)境。
II.UI自動化UI自動化(“UIA”)是一個用于Microsoft Windows的可訪問性機構(gòu),通過提供有關(guān)用戶接口(“UI”)的編程訪問信息,用于訪問輔助技術(shù)產(chǎn)品和自動檢測機構(gòu)的需求。例如,UIA允許屏幕閱讀器程序訪問關(guān)于文字處理軟件的UI信息,提供具有該信息的閱讀器程序,它需要將可聽提示提供給視力差的用戶。通過應(yīng)用編程接口(“API”)設(shè)置的方法,UIA提供用于創(chuàng)建和與UI相互作用的優(yōu)良結(jié)構(gòu)機制。通過現(xiàn)有的或新的軟件(可能由其他人編寫)來訪問程序菜單和其它UI元件,控制和應(yīng)用程序開發(fā)者們利用UIAAPI組以使他們的產(chǎn)品更容易被不同的用戶所理解。例如,盲人顯示屏,屏幕閱讀器(講解器),放大器,和其它Microsoft Windows中的軟件可以使用UIA使沒有使用過計算機的用戶容易使用計算機。
實際上,UI自動化利用位于樹型結(jié)構(gòu)中的UI元件的分級結(jié)構(gòu)來給操作系統(tǒng)和計算機應(yīng)用程序提供可靠的UI信息。為了準確地描述它們的結(jié)構(gòu),GUI元件可以被認為是彼此內(nèi)的嵌套。例如,在樹型結(jié)構(gòu)的最高處是一個桌面元件,它是GUI的“桌面”或默認背景區(qū)域的代表。桌面元件內(nèi)部具有許多用于應(yīng)用程序的應(yīng)用程序元件,根據(jù)用戶的指令,該應(yīng)用程序已被調(diào)用并準備執(zhí)行(例如,典型的Microsoft Windows桌面可以有許多被裝載并準備執(zhí)行的應(yīng)用程序的例子諸如Microsoft Word,Microsoft Excel等等)。在樹型結(jié)構(gòu)層次里的較低層是與應(yīng)用程序有關(guān)的結(jié)構(gòu)(例如,文字處理應(yīng)用軟件在某些給定的時間可以有許多用戶看得見的結(jié)構(gòu))。每個框架之內(nèi)可以有許多文檔,每個文檔中包含許多UI元件(例如,按鈕,列表框等等)。UI元件自身可以由其它UI元件組成。例如,對話框或組合框包含諸如按鈕控制的其它UI元件。此外,按鈕元件仍可以包括其它UI元件。根據(jù)用戶接口和它的組成部分,這樣的嵌套可以被任意的深入和包含任意數(shù)目的分支。
對于一些操作系統(tǒng)平臺,UI元件的實例是分配一個標識符來幫助區(qū)分特殊UI元件與其它UI元件。例如,在基于操作系統(tǒng)的Microsoft Windows中,應(yīng)用程序與識別給定桌面環(huán)境內(nèi)的應(yīng)用程序的模塊標志符相關(guān)。同樣,一些用戶接口平臺(例如,Microsoft Windows,用于Java的Swing)對某些UI元件使用數(shù)字標志符(控制ID)。在一些計算環(huán)境中,諸如Microsoft Windows環(huán)境,UI元件經(jīng)常和控制它們所屬類別的類別名相關(guān)。例如,在基于系統(tǒng)的MicrosoftWindows中,諸如組合框,列表框和按鈕的公共UI元件分別與諸如ComboBox類,ListBox類和Button類的類名相關(guān)。同樣,其它UI結(jié)構(gòu)可以有用于它們各自UI元件類的名稱。
值得注意的是,這些技術(shù)識別UI元件的對象分類或類型,但是不能單獨地提供一個穩(wěn)定的標識符,該標識符通過重新啟動正在運行程序的計算機,當仍然在開發(fā)時通過創(chuàng)建不同的程序,通過同一程序的另一個例子的公開來唯一地識別UI元件,或用于打開另一臺計算機上的相同程序。
UIA通過生成在GUI樹型結(jié)構(gòu)里唯一識別UI元件的組合ID克服了這些不足之處。UIA通過增加直接與UI元件相關(guān)的標識信息(例如,控制名或控制類型)產(chǎn)生組合標識符用于分級標識信息(例如,母控制,子控制,和/或同級控制)以及控制特定圖形信息(例如,樹型結(jié)構(gòu)中UI元件的深度)。例如,可以通過收集與母UI元件相關(guān)的識別信息生成目標UI元件的標識符,該母UI元件描述桌面上目標葉UI元件和根元件之間的分級排列。通過路徑的概念,用于UI元件的唯一層次和從屬關(guān)系的相關(guān)標識符可以被平衡以便唯一和持續(xù)地識別它。
該唯一的標識符(持久ID)提供單個UI元件的簡單訪問,以便程序主機UI元件的功能可以被編程和測試,并且以便特殊UI元件可以與其它程序模塊相一致。對于有關(guān)UIA的附加信息,例如,參見通過Microsoft Developer Network獲得的文件。
III.宏編制器和UI記錄器在GUI環(huán)境中記錄和重放用戶和計算機的相互作用的這種能力具有使多種團體受益的潛能,包括企業(yè)(或其它大型組織),用戶,軟件開發(fā)者,測試人員,和計算機保障人員。例如,通過自動化大量的過程,企業(yè)組織可以使商業(yè)過程流水線,諸如支持連鎖管理的軟件的使用。通過創(chuàng)建將一系列的輸入行為結(jié)合為重放行為的宏或者腳本,用戶可以在單一的步驟中觸發(fā)。軟件開發(fā)者們可以使用這種能力來記錄用戶的行為,有助于為開發(fā)中的軟件生成測試案例。測試者可以使用記錄和重放工具來建立測試以便執(zhí)行自動回歸測試。計算機保障人員可以記錄用戶的行為來發(fā)現(xiàn)計算機崩潰或中止的原因,或者用來幫助用戶了解怎樣使用軟件。
A.商業(yè)的宏編制器許多傳統(tǒng)的宏編制器程序生成顯示由計算機或應(yīng)用程序執(zhí)行的內(nèi)部指令和行為的腳本,用于執(zhí)行一個功能??墒?,在一些例子里,用戶必須根據(jù)一組腳本指令和復雜的程序結(jié)構(gòu)獨立地開發(fā)腳本。因此,用戶必須懂得程序邏輯,并且在某種程度上懂得受控程序的基礎(chǔ)邏輯以便建立和使用宏。例如,AutoMate,宏程序,使用拖放式任務(wù)生成器,通過按照它們的執(zhí)行順序拖動和放下的具體步驟來創(chuàng)建一個宏腳本,這意味著AutoMate用戶必須了解怎樣以及按照什么順序發(fā)布指令。Macro Scheduler是一種宏創(chuàng)建程序,它允許用戶使用多于200條腳本指令和程序結(jié)構(gòu)(不包括實際聲明的變量和其他用戶定義的結(jié)構(gòu))編寫宏腳本。該復雜性要求創(chuàng)建和編輯由這些宏程序生成的腳本,實際上由這些宏生成器生成的腳本不表示UI活動的實際上一步步的可讀記錄,減少了那些宏程序的有效性,特別對于初學用戶和計算機保障人員以及努力調(diào)試問題的軟件開發(fā)者。
B.內(nèi)部宏語言作為一種商業(yè)宏編制軟件的替換,一些應(yīng)用程序具有內(nèi)置能力,利用它們自身特定用途的應(yīng)用控制語言(“宏語言”)記錄和重放宏。應(yīng)用程序的宏語言對該應(yīng)用程序是典型唯一的且通?;趹?yīng)用程序的內(nèi)部目標模型(“IOM”)。當不用面向?qū)ο蟮募夹g(shù)可能創(chuàng)建宏語言時,多數(shù)內(nèi)部模型使用程序結(jié)構(gòu)的面向?qū)ο蟮谋硎?。IOM為程序提供可訪問的輪廓或者類,屬性,操作,參數(shù),關(guān)系的模塊,以及基于對象的關(guān)聯(lián)。宏語言訪問它們應(yīng)用程序的IOM并嵌入其通信機構(gòu)(諸如事件請求)以訪問和調(diào)用應(yīng)用程序內(nèi)的功能。例如,Microsoft Word的用戶能夠記錄一條宏以自動格式化文本。然而,大部分宏語言的一個主要缺點是它們是具體的應(yīng)用程序。由一個應(yīng)用程序記錄的宏通常不被其他應(yīng)用程序所支持,特別是如果兩個應(yīng)用程序由對抗的軟件公司開發(fā)。在一些情況下,用于應(yīng)用程序的一個版本的宏記錄不被該應(yīng)用程序以后的版本所支持。
C.與宏的依存關(guān)系開發(fā)宏會很困難,且許多用戶和商戶不愿意去做任何破壞其現(xiàn)有的宏的事情。商戶特別的不愿做可能會消極影響他們商務(wù)處理的任何事情。實際上,許多用戶和商戶因為害怕“破壞”某些事情不愿意升級軟件乃至安裝補丁。例如,假設(shè)商戶使用掃描收到的傳真的自動商務(wù)處理(例如,以宏的形式),在傳真上自動執(zhí)行光學字符識別(“OCR”)來產(chǎn)生傳真的文本文件版本,將文本文件里的數(shù)據(jù)與電子表格中的條目進行比較以便核對帳號信息,最后發(fā)送一個確認郵件給傳真的發(fā)送者。這個商務(wù)處理很可能使用一組可能復雜宏的組合和多種軟件包來適當?shù)剡\行(例如,掃描儀程序,OCR程序,電子表格程序,文本文件程序,等等)。商戶和用戶經(jīng)常擔心升級宏或軟件除非他們確保他們的自動化處理中的當前投資將保持原樣。
D.其它UI記錄器許多傳統(tǒng)的UI記錄器具有與上述的那些宏工具類似的缺點,因為他們使用復雜的腳本指令和程序結(jié)構(gòu)來表示數(shù)據(jù)。另一個缺點是傳統(tǒng)的重放非常依賴于記錄計算機的先前存在的狀態(tài)。例如,重放可能依賴于某些硬件配置,軟件安裝,和/或運行時環(huán)境的動態(tài)(諸如用于特殊記錄相互作用的UI元件的位置或有效性)。使用傳統(tǒng)的重放工具,那些先前存在狀態(tài)的任何改變可能導致重放失敗。
作為一個例子,假設(shè)用戶重新配置應(yīng)用程序用戶接口。一些基于GUI的應(yīng)用程序允許用戶為程序特征移動按鈕,重新配置菜單,添加或者刪除其它UI元件,將連接添加到菜單條的宏上,或執(zhí)行其它UI更改。盡管個性化菜單功能是一個有用的特征(例如,使用戶能夠為他們的具體需求定制UI),它可能導致許多記錄和重放工具失敗,因為UI元件不在他們希望的位置。
例如,當鼠標按鈕被點擊時,Microsoft Windows 3.1宏記錄器試圖通過記錄鼠標運動和鼠標坐標來重復GUI中的用戶操作。重放過程中,如果UI元件不在它被希望的地方,重放會失敗。關(guān)于在Microsoft Windows 3.1里有關(guān)宏記錄的附加信息,例如,參見題為《User`s Guide for Microsoft Windows forWorkgroups》的參考文獻的第137頁。作為另一個例子,假設(shè)用戶在低分辨率的監(jiān)視器/桌面下記錄UI操作。稍后,用戶將其變成較高分辨率的監(jiān)視器/桌面。在這種情況下,如上所述,重放很可能失敗,因為改變了UI元件的顯示屏狀態(tài)。因此,當計算機環(huán)境改變時重放變得格外不可靠。
最后,需要簡單的,全系統(tǒng)宏和UI記錄工具與現(xiàn)有的宏語言和特定應(yīng)用程序宏記錄器相適應(yīng)。同時,需要簡單的,全系統(tǒng)宏和UI記錄工具與動態(tài)的用戶接口一起工作。
概要在這里介紹用于記錄和可靠復制各種應(yīng)用程序的圖形用戶接口(“GUI”)活動的技術(shù)和工具。例如,宏和UI記錄和重放工具簡化為一些應(yīng)用程序創(chuàng)建宏和記錄GUI活動的任務(wù)并且仍支持用于其他應(yīng)用程序的特定應(yīng)用程序宏記錄器,也支持與動態(tài)用戶接口相對的宏和UI記錄。
根據(jù)第一方面,工具從基于作為不透明令牌應(yīng)用程序的圖形用戶接口接收內(nèi)部宏操作。例如,軟件程序在其各自的本地記錄環(huán)境里記錄用戶操作。根據(jù)已記錄的輸入,軟件程序生成傳送到工具的不透明令牌。
根據(jù)第二方面,工具將內(nèi)部宏操作的已記錄令牌與其它用戶接口活動進行組合。例如,軟件程序?qū)⒁延涗浀膬?nèi)部宏操作作為不透明令牌傳送到工具。該工具將那些不透明令牌與從UI系統(tǒng)記錄器接收的令牌相組合。根據(jù)該組合令牌,工具重復用戶接口活動。
根據(jù)第三方面,工具從不同的應(yīng)用程序收集與用戶接口操作相關(guān)的已記錄令牌并且通過將每個已記錄的令牌提供到應(yīng)用程序來重復該用戶接口的活動,其中每個令牌與用戶接口活動相聯(lián)系。例如,生成多種應(yīng)用程序的用戶接口的活動被作為已記錄令牌記錄并且通過工具組合為重放代碼。該工具通過將重放代碼的已記錄令牌傳送到正確的軟件程序來復制已記錄的用戶操作。
根據(jù)第四方面,工具通過軟件程序的內(nèi)部記錄器將記錄器令牌傳送到軟件程序用于重放。例如,從一組記錄器令牌中提取內(nèi)部宏指令并且提供給與重放令牌聯(lián)合的軟件程序的內(nèi)部記錄器。
通過繼續(xù)參照附圖對以下實施的詳細說明,本發(fā)明附加的特征和優(yōu)點將變得顯而易見。
附圖的概要描述

圖1是用戶接口記錄和重放結(jié)構(gòu)的結(jié)構(gòu)圖。
圖2是全系統(tǒng)UI記錄工具的結(jié)構(gòu)圖。
圖3是說明用全系統(tǒng)UI記錄工具記錄本地應(yīng)用程序宏操作的技術(shù)的流程圖。
圖4是全系統(tǒng)UI重放工具的結(jié)構(gòu)圖。
圖5說明的是用全系統(tǒng)UI重放工具管理本地應(yīng)用程序宏操作重放的技術(shù)的流程圖。
圖6是實現(xiàn)全系統(tǒng)UI記錄和/或重放的恰當?shù)挠嬎悱h(huán)境的結(jié)構(gòu)圖。
詳細描述下面的描述涉及基于GUI的不同軟件的宏和UI記錄和播放的技術(shù)和工具。例如,根據(jù)被記錄的用戶活動的類型和被使用的應(yīng)用程序的記錄能力(在這里有時被稱為“智能”記錄),全系統(tǒng)宏和UI記錄工具使用適當?shù)挠涗浖夹g(shù)。工具可利用基于UIA的記錄機制來記錄與兼容UIA的應(yīng)用程序相對的用戶活動。如果該應(yīng)用程序與UIA不兼容(或者即使希望用另外的機制記錄),該工具可以記錄用戶執(zhí)行的與應(yīng)用程序相互作用的原始步驟(例如,鼠標按鈕點擊,擊鍵)。該工具可以在不同的環(huán)境中使用一種特殊的記錄機制。這些環(huán)境包括記錄用特定應(yīng)用程序內(nèi)部宏語言描述的操作(應(yīng)用程序利用它自身內(nèi)部記錄機制來記錄)和記錄與動態(tài)用戶接口相對的操作。在這里描述的工具可以記錄與不同種類的應(yīng)用程序,操作系統(tǒng)軟件,或其它軟件相對的活動。
2004年6月15日申請的序號為No.aa/bbb,ccc的題為“Recording/PlaybackTools for UI-based Applications”的U.S.專利申請,在這里結(jié)合參考其公開的內(nèi)容,描述了多種記錄和重放工具。部分這些工具根據(jù)UI元件的識別值(“UID”)使用UIA結(jié)構(gòu)來記錄輸入。UIA在GUI中生成唯一識別UI元件的組合ID。該UID至少部分地取決于用戶接口中UI元件的位置和它與其它UI元件的相互關(guān)系。當工具使用UID來記錄和重放涉及具體UI元件的操作時,改變該元件的位置可以導致重放失敗。
例如,假設(shè)用戶通過刪除菜單條按鈕重新配置用戶接口。當重放工具試圖啟動該刪除按鈕時,重放失敗。如另一個例子,經(jīng)常在升級一個應(yīng)用程序的時候特征被移動和/或重命名以適應(yīng)新的特特。例如,假設(shè)在一個版本中“Open File”特征作為第三選項設(shè)置在“File”菜單上。在以后的釋放中,該“Open File”特征被移動以適應(yīng)一個“New File”特征,“Open File”變?yōu)榈谒膫€選項列于該“File”菜單上。根據(jù)舊的用戶接口宏可以中斷因為UI元件被移動了和/或UID被改變了。
在一些實施例中,全系統(tǒng)宏和UI記錄工具使用智能記錄來闡明這些類問題。應(yīng)用程序用應(yīng)用程序的內(nèi)部宏語言記錄用戶操作。在記錄之后,用應(yīng)用程序的內(nèi)部宏語言表示的已記錄的步驟作為不透明的已記錄步驟的令牌從應(yīng)用程序傳送到宏和UI記錄工具。然后全系統(tǒng)宏和UI記錄工具可以進一步封裝已記錄步驟的令牌和/或與標志信息關(guān)聯(lián)的已記錄步驟的令牌。在一些實施例中,每個宏指令被轉(zhuǎn)換成分離的記錄步驟令牌。換句話說,一系列相關(guān)的宏語言指令被封裝為一個已記錄的步驟令牌。那些令牌保留基于宏語言指令的暫時順序以便允許它們被應(yīng)用程序播放,如同它們被記錄時那樣,也允許用統(tǒng)一的全系統(tǒng)宏和UI記錄工具相互操作。在接收已記錄的步驟令牌之后,該工具選擇性地生成反映記錄步驟的代碼。隨后,可以播放這些代碼以便再現(xiàn)已記錄的步驟或者,可選地,可以為測試,故障診斷或其他目的編輯該代碼。
例如,假設(shè)文字處理軟件有一個用來打開命名為“文件名”的宏語言指令“打開(文件名)”,該指令嵌入在應(yīng)用程序的內(nèi)部目標模塊中。在使用智能記錄工具記錄期間,該宏指令作為一個已記錄的步驟令牌被傳送,結(jié)合其他適當?shù)男畔ⅲ⑶覂Υ嬗糜谥胤?,這時該基礎(chǔ)指令“打開(文件名)”作為已記錄的步驟令牌從智能記錄工具傳回到應(yīng)用程序。這就允許應(yīng)用程序使用他們自身的本地記錄環(huán)境在全系統(tǒng)UI記錄和重放結(jié)構(gòu)內(nèi)記錄和重放UI操作。全系統(tǒng)宏可以被編寫得不受與自定義菜單相關(guān)問題的影響并且在與軟件更新相關(guān)的用戶接口中改變,只要基礎(chǔ)宏語言與軟件的先前版本保持兼容。此外,全系統(tǒng)記錄結(jié)構(gòu)提供統(tǒng)一的記錄和重放接口。在組合的宏和UI記錄處理中,它也簡化不同應(yīng)用程序的宏和其他UI記錄的分解。
作為全系統(tǒng)UI記錄結(jié)構(gòu)的一部分,當應(yīng)用程序不能使用內(nèi)部宏記錄器或其他特殊應(yīng)用程序UI記錄器時,可以使用不同的記錄機制。例如,使用基于UIA的記錄系統(tǒng),如題為“Recording/Playback Tools for UI-based Applications”的美國專利申請所述,其很好地用于記錄與具有靜態(tài)菜單組的應(yīng)用程序相對的用戶接口操作。換句話說,如果應(yīng)用程序不能根據(jù)UI自動體系結(jié)構(gòu)支持操作,全系統(tǒng)UI記錄結(jié)構(gòu)RPF可以簡單地記錄用戶執(zhí)行的作為他或她與基于UI的應(yīng)用程序相互作用的原始步驟。有時,各種記錄技術(shù)被組合使用。例如,在一些測試實例中的原始用戶輸入的基于UIA的數(shù)據(jù),以及內(nèi)部宏記錄器數(shù)據(jù)都被記錄。
記錄與基于UI的應(yīng)用程序相互作用的用戶執(zhí)行的原始步驟(例如,鼠標點擊,鍵盤擊鍵)是相當簡單的;難題是當應(yīng)用程序有一個可配置的用戶接口(例如,允許菜單和菜單項被任意的重新排列的接口)時,當一個應(yīng)用程序升級修改用戶接口時,或者當應(yīng)用程序用內(nèi)部語言處理宏或UI記錄信息時,如何表示和處理這些信息。概念地,通過將被記錄的應(yīng)用程序的內(nèi)部記錄能力與文摘相結(jié)合這里描述的一些技術(shù)和工具增強了記錄性能,用戶通過友好用戶接口可以將已記錄的步驟和輸入轉(zhuǎn)換成為重放代碼。如上所述,具有各自內(nèi)部記錄能力的應(yīng)用程序可以調(diào)用他們的內(nèi)部記錄器將用戶的行為映射到應(yīng)用程序的內(nèi)部目標模塊,因此通過簡單的菜單/菜單項記錄來解決“升級封鎖”和菜單重新配置的問題。
在一些實施例中,利用令牌技術(shù),收集特殊應(yīng)用程序宏或UI記錄數(shù)據(jù)然后轉(zhuǎn)換成已記錄的步驟令牌。技術(shù)和工具創(chuàng)建不透明的令牌來定義用戶與應(yīng)用程序的互相作用。一旦生成已記錄步驟的令牌,其它已記錄的行為(例如,UIA事件也在令牌中)可以被轉(zhuǎn)換成用于在同一或別的計算機上重放的程序代碼,具有生成應(yīng)用程序已記錄步驟令牌可能仍嵌入在程序代碼中。
在多種共同的情況下,這里描述的該技術(shù)和工具允許全系統(tǒng)宏或UI記錄工具與各種不同類型的軟件程序(例如,UIA兼容的應(yīng)用程序,具有內(nèi)部宏記錄器的應(yīng)用程序,不適應(yīng)UIA的應(yīng)用程序)以及各種類型的用戶接口(例如,靜態(tài)的,動態(tài)的)相互作用。在適當?shù)臅r候這些技術(shù)和工具通過使用應(yīng)用程序各自內(nèi)部的記錄能力使記錄可靠和堅固。此外,該工具和技術(shù)提供給用戶一致的宏或UI記錄接口。該技術(shù)和工具能夠以不同方式實現(xiàn),并且可被組合或單獨使用。
I.UI記錄和重放結(jié)構(gòu)UI記錄和重放框架(“UI RPF”)是一個被設(shè)計用來使與應(yīng)用程序或其他軟件程序相對的UI活動容易記錄和重放的可擴展的結(jié)構(gòu)。可插入模塊的結(jié)構(gòu)包括過濾器,聚集器,令牌生成器和代碼生成器。圖1示出了一個典型的UI RPF 100,在這里描述的各種技術(shù)可在其中被執(zhí)行?;旧?,該UIPRF 100記錄(或與其它記錄軟件一起工作)用戶正在干什么以及在同一或別的計算機上復制(或與其它復制軟件一起工作)他或她的操作。UI RPF 100是交叉應(yīng)用程序(例如,系統(tǒng)級)結(jié)構(gòu),其可以結(jié)合多種應(yīng)用程序以及在許多配置中使用,并且它被設(shè)計用來使各種不同類型用戶操作的記錄和重放變得容易。它是記錄和重放工具能夠被創(chuàng)建的基礎(chǔ)。UIRPF100可以使用由UI系統(tǒng)結(jié)構(gòu)軟件120提供的服務(wù),諸如微軟UI自動化,來使UI記錄變得容易,但是這不是結(jié)構(gòu)100的要求。
圖1示出了與UIRPF 100相關(guān)的各種模塊。該UIRPF 100與UI系統(tǒng)結(jié)構(gòu)軟件120相互作用,其將已記錄的UI輸入數(shù)據(jù)諸如鼠標點擊,鍵盤擊鍵以及從應(yīng)用程序125,126的輸入轉(zhuǎn)換成對于UI記錄和重放來說更有意義的數(shù)據(jù)。通過UI系統(tǒng)結(jié)構(gòu)軟件120,結(jié)構(gòu)100接收來自諸如文本編輯器125和計算器126的應(yīng)用程序的已記錄步驟,或者作為令牌傳送封裝系統(tǒng)用戶接口操作。在一些實施例中,在題為“Recording/Playback Tools for UI-based Applications”的U.S.專利申請中描述了UIRPF 100使用UI記錄和重放機制來記錄和重放通過UI系統(tǒng)結(jié)構(gòu)軟件120接收的UI操作。換句話說,UI RPF 100使用不同的UI記錄和重放機制。
UI RPF 100的模塊也包括智能記錄和重放模塊110用于與具有各自的本地宏記錄器的應(yīng)用程序相互作用。通過傳遞UI系統(tǒng)結(jié)構(gòu)軟件120,該結(jié)構(gòu)100從諸如文字處理器115,電子表格116和圖片編輯器117的應(yīng)用程序中接收已記錄的步驟或已記錄步驟令牌中的其它宏信息。應(yīng)用程序115,116,117具有各自的內(nèi)部記錄功能用于將用戶的輸入映射到該應(yīng)用程序本地記錄環(huán)境中的操作,然后應(yīng)用程序115,116,117通過智能UI記錄和重放模塊110將內(nèi)部的記錄操作作為令牌傳送到結(jié)構(gòu)100。
該UI RPF 100維護應(yīng)用程序列表,通過這樣宏或UI活動可以被記錄。由UI RPF 100查看的新應(yīng)用程序被查詢,至少該應(yīng)用程序第一次就被啟動,看其是否支持通過智能記錄接口的相互作用。如果該應(yīng)用程序不支持通過智能接口的相互作用,則根據(jù)該應(yīng)用程序的記錄能力,用戶操作可以被記錄并通過該接口來回傳遞。換句話說,通過應(yīng)用程序的內(nèi)部記錄機制(具有通過智能記錄接口傳送的數(shù)據(jù))以及通過UI系統(tǒng)結(jié)構(gòu)軟件120記錄用戶的操作,其中這兩種選項都是可能的?;蛘撸词惯@兩個選項都是可能的,用戶,應(yīng)用程序,或全系統(tǒng)工具可以確定使用應(yīng)用程序的內(nèi)部記錄機制或通過UI系統(tǒng)結(jié)構(gòu)軟件120的記錄,但不是兩個?;蛘?,用戶,應(yīng)用程序,或全系統(tǒng)工具可以單獨地或與其他已記錄數(shù)據(jù)一起確定記錄與用戶的操作相關(guān)的原始步驟(例如,鼠標移動,鼠標按鈕點擊,擊鍵)。
通過智能接口,當UI RPF依次記錄通過應(yīng)用程序內(nèi)部記錄機制記錄的用戶活動時,應(yīng)用程序把已記錄的用戶操作事件轉(zhuǎn)化為令牌。在Visual Basic forApplications(“VBA”)中或在一些其他的語言或由應(yīng)用程序使用的目標模塊中,這些令牌的內(nèi)容被定義。最后,存儲在這些令牌的“有效負載”的信息不被UI RPF100解釋,但是只被各自的應(yīng)用程序解釋,這樣信息是本地格式。UI RPF 100可以進一步令牌化已記錄步驟令牌并且將該數(shù)據(jù)與其他相關(guān)的數(shù)據(jù)諸如應(yīng)用程序名稱相關(guān)聯(lián)。
在全系統(tǒng)工具中,已記錄步驟令牌數(shù)據(jù)可以與從其他應(yīng)用程序獲得的已記錄步驟令牌數(shù)據(jù),與本地記錄器,或與通過該UI系統(tǒng)結(jié)構(gòu)軟件120獲得的已記錄數(shù)據(jù)相連接,以便執(zhí)行系統(tǒng)級記錄和重放。
除記錄宏和UI數(shù)據(jù)外,結(jié)構(gòu)100可以產(chǎn)生復制已記錄操作的重放代碼和/或允許其它軟件復制已記錄操作的封裝數(shù)據(jù)。
例如,在Microsoft Windows環(huán)境里,用戶開始記錄UI操作,然后點擊Windows的“Start”按鈕,并且啟動與智能記錄接口一起工作文的字處理軟件。在UI RPF環(huán)境中,包括在“Start”按鈕上點擊鼠標的用戶操作被記錄。當啟動文字處理軟件時,UI RPF查看文字處理軟件是否與智能記錄接口兼容。如果兼容,UI RPF調(diào)用文字處理軟件本身內(nèi)部的固有工具來記錄由它執(zhí)行的用戶操作。如果文字處理軟件也能夠與UI系統(tǒng)結(jié)構(gòu)軟件一起工作,該工具也可以與UI系統(tǒng)結(jié)構(gòu)軟件一起記錄用戶操作(UI自動化事件)。另外,該工具也可以記錄與用戶操作相關(guān)的原始步驟(例如,鼠標按鈕點擊,擊鍵),如果文字處理程序不支持智能記錄接口并且不能與UI系統(tǒng)結(jié)構(gòu)軟件一起工作,其可能特別相關(guān)。因此,UI RPF可以使用交換機制來記錄和重放。
這個結(jié)構(gòu)100可以包括軟件和/或硬件元素。該關(guān)系在圖1中表示主信息流的模塊之間示出;為了簡單起見,沒有示出其它關(guān)系。根據(jù)執(zhí)行,模塊可以被添加,省略,分成多個模塊,與其它模塊組合,和/或用類似的模塊代替。換句話說,這里描述了具有不同模塊的結(jié)構(gòu)和/或執(zhí)行一個或多個UI記錄和重放技術(shù)的模塊的其他結(jié)構(gòu)。
II.智能記錄圖2示出了一種全系統(tǒng)UI記錄工具220,結(jié)合該工具可實現(xiàn)這里所述的各種技術(shù)。圖1中的UI RPF包括記錄工具220。換句話說,該記錄工具220被用作另一個UI結(jié)構(gòu)的一部分。
該記錄工具220是全系統(tǒng)的,因為它與某些應(yīng)用程序記錄UI系統(tǒng)結(jié)構(gòu)信息用于UI記錄,但是也在它們各自的本地宏記錄環(huán)境中與記錄用戶接口活動的應(yīng)用程序相互作用。該本地記錄應(yīng)用程序通過特殊本地記錄接口(如圖2中示出的智能RPFAPI)將已記錄的宏或UI數(shù)據(jù)與該工具220進行交換。這就允許該工具220使用(并且相互作用)應(yīng)用程序各自的記錄能力,這樣便允許動態(tài)用戶接口的UI記錄和/或變化用戶接口的可重放UI記錄用于應(yīng)用程序的不同版本。
當記錄宏或UI數(shù)據(jù)時,記錄工具220控制使用的機制。例如,根據(jù)用戶輸入、用戶設(shè)置、或其他標準,工具220判定是否使用本地應(yīng)用程序記錄、UI系統(tǒng)記錄、或上述兩者作為特殊應(yīng)用程序。該工具也可以單獨地或與其他記錄機制結(jié)合來記錄來自用戶鼠標和鍵盤的原始UI輸入。工具220可以為使用中的多個應(yīng)用程序中的一個,或者為使用中的多個應(yīng)用程序中所選擇的應(yīng)用程序同時記錄宏或UI數(shù)據(jù)。例如,如果用戶配置記錄工具220以便只記錄文字處理軟件程序中的數(shù)據(jù),由于用戶將電子表格程序數(shù)據(jù)的剪切和粘貼記錄到文字處理軟件,只有與文字處理軟件相關(guān)的步驟被記錄。
A.本地記錄路徑作為本地宏或UI記錄,用戶使用用戶輸入裝置諸如鼠標、鍵盤、觸摸板、觸摸屏、布萊葉盲文屏、操縱桿、麥克風、或其他類似裝置與應(yīng)用程序240相互作用。由于用戶與應(yīng)用程序240相互作用,通過宏/UI記錄器245處理和記錄用戶的輸入,如同在應(yīng)用程序本地宏記錄環(huán)境中的步驟,如同用諸如VBA、PerfectScript、M4、TeX的語言或其他宏語言表示的那樣。應(yīng)用程序的內(nèi)部記錄能力提供堅固的結(jié)構(gòu)用于獲得可以由應(yīng)用程序可預測和可靠地播放的數(shù)據(jù)。已記錄的步驟僅受應(yīng)用程序本地記錄環(huán)境的局限性限制。例如,如果應(yīng)用程序允許用戶在宏中聲明變量,那些變量可被記錄和令牌化。
應(yīng)用程序240令牌化已記錄的步驟(如令牌生成器247所示)因此他們能夠被傳送到工具220。然后,該應(yīng)用程序通過接口將已記錄步驟的令牌傳送到工具220。令牌對于工具220是不透明的,這意味著工具220不連續(xù)地處理已記錄步驟的令牌,不透明的大部分數(shù)據(jù)的內(nèi)容沒有被工具220解釋。另一方面,應(yīng)用程序240可以解釋和響應(yīng)已記錄步驟的令牌內(nèi)容。該內(nèi)容是應(yīng)用程序240的本地格式。例如,該應(yīng)用程序240封裝作為令牌的已記錄宏指令以打開一個文件,正如他們被記錄時那樣(例如,作為二進制數(shù)據(jù)、文本指令、或DLL指令)。
應(yīng)用程序240將每個離散的已記錄步驟轉(zhuǎn)換成令牌,或者應(yīng)用程序240將多個已記錄的步驟分為單一的令牌。至于令牌生成器的結(jié)構(gòu),應(yīng)用程序240可將已記錄的步驟數(shù)據(jù)組合成一個或多個令牌數(shù)據(jù)結(jié)構(gòu)字段,然后通過復制或參考該字段被傳送到工具220。或者,應(yīng)用程序240可將已記錄的步驟數(shù)據(jù)作為方法調(diào)用的參數(shù)來傳送,這樣工具220可將其作為不透明的數(shù)據(jù)進行接收和處理。應(yīng)用程序240可以使用XML規(guī)則表(其定義一系列用于令牌化已記錄步驟的數(shù)據(jù)的規(guī)則)來重新格式化或?qū)⒂涗洸襟E的數(shù)據(jù)重新組成令牌?;蛘撸瑧?yīng)用程序240使用一些其他的令牌生成機制。概念地,令牌生成可看作是用令牌數(shù)據(jù)結(jié)構(gòu)代替已記錄步驟的數(shù)據(jù),或用令牌信息包裝該記錄步驟的數(shù)據(jù)。在這里從工具“隱藏”宏語言指令,建立一個獨立于宏語言的令牌,但其內(nèi)容在適當?shù)谋镜赜涗洯h(huán)境中是可識別的。
當令牌化數(shù)據(jù)時,應(yīng)用程序240可預先掛起、添加、或相反將標記數(shù)據(jù)加到該記錄的步驟中。標記數(shù)據(jù)提供用于重放的相關(guān)詳細資料,例如,應(yīng)用程序信息(例如,應(yīng)用程序的名稱和它的版本)、指出序列的時間信息、特權(quán)信息(例如,播放該步驟需要什么樣的權(quán)利),等等。
工具220通過特殊的本地記錄接口接收從一個或多個應(yīng)用程序傳送的令牌(如令牌接收器235所示)。然而該工具220不解釋記錄步驟令牌的內(nèi)容,它可以(代替或除了該應(yīng)用程序)將附加的數(shù)據(jù)層添加到記錄步驟的令牌中和/或?qū)⒃摿钆婆c標記信息相關(guān)聯(lián),這些信息諸如應(yīng)用程序名稱、時間信息、索引值等等,以便可以通過正確的應(yīng)用程序并且以適當?shù)捻樞虿シ旁摬襟E。至少在這種意義上,工具220可被認為也執(zhí)行令牌生成。
應(yīng)用程序240支持本地記錄接口,因為它通過該接口將格式化的信息傳送到工具220,通過該接口產(chǎn)生適當?shù)恼{(diào)用,執(zhí)行所述工具220調(diào)用的回調(diào)方法等等。工具220支持該接口,在這種意義上它執(zhí)行應(yīng)用程序調(diào)用的方法,處理由應(yīng)用程序傳送的所預期的信息,調(diào)用應(yīng)用程序的回調(diào)方法等等。用于該接口的精確調(diào)用和處理機制從屬地執(zhí)行。
B.UI系統(tǒng)記錄路徑具有內(nèi)部宏記錄器的應(yīng)用程序240和/或另一個應(yīng)用程序260可通過UI系統(tǒng)結(jié)構(gòu)軟件120支持與系統(tǒng)記錄工具220的相互作用。作為UI系統(tǒng)結(jié)構(gòu)記錄,記錄工具220的各種元件225收集(a)用戶輸入數(shù)據(jù),(b)監(jiān)視其他UI活動(諸如焦點變化、選擇變化、窗口的創(chuàng)建等等),(c)跟蹤有關(guān)環(huán)境的信息諸如運行應(yīng)用程序、OS版本、定位信息、默認UI語言、當前UI語言、硬件裝置和結(jié)構(gòu)、安全模式、和/或可能有助于描述或重建適當?shù)闹胤怒h(huán)境的其他數(shù)據(jù),(d)將用戶輸入的數(shù)據(jù)分解成由用戶輸入影響的用戶接口元素,以及(e)將用戶的活動表示為邏輯記錄事件。這些邏輯記錄事件有助于提供可讀的UI記錄輸出和可靠的UI記錄重放。邏輯記錄事件可被認為是一種UI記錄令牌,但是不同于具有有本地記錄數(shù)據(jù)的不透明記錄步驟令牌,工具220解釋該邏輯記錄事件令牌用于瀏覽、編輯、換算為代碼等等。
在一些實施例中,工具220執(zhí)行具有過濾器和聚合器的UI系統(tǒng)結(jié)構(gòu)記錄,如題為“Recording/Playback Tools for UI-based Applications”的U.S專利申請中所述的。換句話說,工具220使用用于UI系統(tǒng)結(jié)構(gòu)記錄的另一技術(shù)。
工具220可在諸如調(diào)試程序窗口、源代碼瀏覽器、或文本編輯器的瀏覽器中顯示記錄的UI系統(tǒng)結(jié)構(gòu)步驟,因此用戶可以閱讀和瀏覽錯誤的數(shù)據(jù)。典型地,工具220不顯示關(guān)于帶有本地記錄數(shù)據(jù)的記錄步驟令牌信息,因為這些令牌的內(nèi)容對工具220來說是不透明的。當記錄步驟的令牌與來自應(yīng)用程序或用戶的諸如應(yīng)用程序名稱、時間標記、操作標簽或其他注釋的標記信息相關(guān)聯(lián)時,工具220可顯示上述信息。數(shù)據(jù)可以類似地存儲于諸如稍候分析的日志文件的文件中。
C.其他的用戶輸入記錄工具220的多種元件225也可收集原始用戶輸入數(shù)據(jù)以及類似地監(jiān)視其他UI活動、與環(huán)境有關(guān)的跟蹤信息諸如正在運行的應(yīng)用程序等等。記錄這些信息有助于應(yīng)用程序與智能記錄接口或UI系統(tǒng)結(jié)構(gòu)不兼容的情況。這些被記錄的操作也可以在瀏覽器中顯示,因此用戶可以讀取和瀏覽錯誤數(shù)據(jù)。典型地,用于播放的原始用戶操作中的數(shù)據(jù)不如背景技術(shù)中解釋的其他類型的記錄令牌易讀和可靠。然而,當其他記錄技術(shù)不適用時,將在全系統(tǒng)UI RPF中提供一種用于記錄非UIA和非本地記錄器應(yīng)用程序數(shù)據(jù)的機制。原始用戶操作記錄的數(shù)據(jù)可類似地被存于諸如稍候分析的日志文件的文件中。
D.重放代碼在一些實施例中,工具220通過隔行掃描數(shù)據(jù)組合不同應(yīng)用程序的令牌和單個文件中的記錄模式。例如,不同本地記錄器的本地記錄操作的記錄步驟令牌被組合成一個輸入流,連同用于UI系統(tǒng)結(jié)構(gòu)操作的令牌和任何其他的用戶輸入。典型地,用戶輸入以連續(xù)的方式被接收并且用該方式排序的令牌流保持著適當?shù)捻樞?。時間標記、索引值、以及應(yīng)用程序信息可標明令牌以幫助保持適當?shù)捻樞颉;蛘?,工?20為不同應(yīng)用程序和記錄模式創(chuàng)建單獨的文件。
作為UI系統(tǒng)操作令牌,工具220使用代碼生成器230從令牌中產(chǎn)生重放代碼250。這能夠自動地或當用戶選擇工具220中的一個“生成代碼”選項時被完成。重放代碼250可以各種格式輸出,包括C#、XML、C++、JAVA、或任何其他程序、腳本、宏、或面向文件的語言、或重放接口的其他命令或指令或其他機制來驅(qū)動基于UI的應(yīng)用程序。例如,代碼生成器230將UI系統(tǒng)操作令牌映射到重放代碼250中的相應(yīng)指令。對于UI系統(tǒng)結(jié)構(gòu)環(huán)境中的代碼生成的附加描述,參見題為“Recording/Playback Tools for UI-based Applications”2004年7月15日申請的U.S專利申請。
工具220以正確的時間順序選擇地將本地記錄操作的記錄步驟令牌插入到重放代碼250中,諸如維護記錄步驟令牌的腳本文件?;蛘?,工具220使用代碼生成器230產(chǎn)生重放代碼250,該代碼包括記錄步驟的令牌。值得注意的是,封裝本地記錄數(shù)據(jù)的記錄步驟的令牌對工具220來說是不透明的,因此該令牌被典型地傳送到重放代碼250,并且不被用于轉(zhuǎn)換成其他表達示的工具220所解釋。
重放代碼250可被瀏覽、存儲、編輯、修改、添加、刪除、編譯、或者相反用于提前重放,結(jié)合預期的限制在一定程度上該工具可以瀏覽、修改等不透明記錄步驟的令牌。能夠編輯重放代碼250為用戶提供方便有效的機制,該機制用于創(chuàng)建宏、生成自動檢測實例、程序中的自動化步驟等。所生成的代碼可以被編輯,用于增加條件表達式、改變變量、在代碼中增加循環(huán)和其他程序指令。例如,重放時,假定一段重放代碼改變了系統(tǒng)文件并要求具有管理員權(quán)限的用戶登錄。因此,條件表達式被添加到該重放代碼中,在運行這段代碼前該條件表達式檢查適當?shù)臋?quán)限。如另一個例子,假定軟件開發(fā)者需要通過再三地重復同樣的指令串來過載測試一個程序,因此,“循環(huán)”被添加到該重放代碼中,這樣就使該重放代碼被重復若干次。
然后該重放代碼250可用于管理已記錄活動的重放,如下所述。該代碼250可在同一計算機或不同計算機上播放。
E.工具的結(jié)構(gòu)和使用通常,工具220的各種模塊是可插入的,這意味著對于不同的應(yīng)用程序,他們可以被具有同樣功能的其他模塊所代替。例如,工具220中的代碼生成器230是可插入的,因此開發(fā)者能夠重用工具220的一些部分只是改變了由交換代碼生成器所產(chǎn)生的方式代碼。因此該工具220是可擴展的;對于不同的應(yīng)用程序可以改變它的功能。在一些實施例中,工具220給出可插模塊的選項菜單,因此允許用戶控制加載適當?shù)挠脩羲谕δ艿倪m當模塊。
例如,在“重量級”記錄模式中,工具220收集關(guān)于UI活動的詳細信息并廣泛登錄該信息。這提供了更可靠的重放但很可能擾亂軟件的執(zhí)行,與其相對的活動被記錄?;蛘撸凇拜p便的”記錄模式中,工具220收集較少的信息并且,因此,不大可能擾亂軟件的執(zhí)行,與其相對的活動被記錄。然而,這仍然可以提供足夠的信息,用于在同一環(huán)境中重放、用于將用戶活動顯示給保障人員、或用于其他目的。
類似地,工具220可以在交互模式中記錄信息,在該模式中通過限定矩形或閃光來突出UI單元以顯示記錄了什么。其他閃光反饋可用于把已記錄的UI數(shù)據(jù)的應(yīng)用程序顯示給用戶?;蛘?,在交互模式中,用戶被提示輸入每個操作或工具220或應(yīng)用程序240無法分辨的操作的描述注釋信息?;蛘?,工具220可以在該背景中操作以便記錄UI活動而不干擾用戶。
工具220負責裝載其他需要的可插模塊(例如,用于收集數(shù)據(jù)、令牌化數(shù)據(jù)、生成代碼等的模塊),加強保密性(例如,特權(quán)檢查),產(chǎn)生記錄進程,同步模塊間的活動,建立和維護用于記錄的隊列,記錄錯誤(例如,到局部文件或隨意到網(wǎng)絡(luò)服務(wù)或服務(wù)器),以及收集記錄信息(例如,OS版本、定位信息、硬件結(jié)構(gòu)等)。
圖2中模塊間示出的關(guān)系表明了信息的主流;為了簡單起見其他關(guān)系未示出。根據(jù)實施例,模塊能夠被增加、省略、分成多個模塊、與其他模塊組合、和/或用相同的模塊替代。換句話說,具有不同模塊的工具和/或模塊的其他結(jié)構(gòu)執(zhí)行這里描述的一個或多個記錄技術(shù)。
工具220的用戶接口可以是位于記錄窗口周圍,停放在計算機屏幕的頂部或底部,或被最小化為任務(wù)條的類似VCR的接口。該接口包括特征按鈕諸如“記錄”、“暫?!薄ⅰ巴V埂?、以及“播放”,和當該說明可獲得時用于給出記錄步驟的說明的區(qū)域。作為該接口的例子,參見題為“Recording/Playback Tools forUI-based Applications”的U.S專利申請。
F.記錄技術(shù),記錄的定時存在兩種在記錄期間用于將令牌傳送到工具220的模式批處理模式和交互模式。通常,在批處理模式中,當請求時在應(yīng)用程序收集記錄步驟令牌并傳送到工具220。當焦點遠離該記錄應(yīng)用程序時這些檢索已收集令牌的請求會發(fā)生,并且還會發(fā)生定期地分配記錄負擔。
在交互模式中,相反,由于他們的發(fā)生令牌從被記錄的應(yīng)用程序傳送到工具220中。交互地傳送令牌的一個缺點是增加了CPU的交叉處理負載。在特殊情況下,根據(jù)被記錄的應(yīng)用程序,被記錄的數(shù)據(jù)總量,以及產(chǎn)生記錄步驟令牌的速度的快慢,批處理或交互模式的一個會優(yōu)于另一個。
圖3示出了用全系統(tǒng)UI記錄工具記錄本地應(yīng)用程序宏活動的技術(shù)300。工具和應(yīng)用程序諸如圖2中示出的記錄工具220和應(yīng)用程序240執(zhí)行該技術(shù)300。換句話說,另一種工具和/或應(yīng)用程序執(zhí)行該技術(shù)300。
該工具檢查310應(yīng)用程序是否使用了智能本地記錄接口。一些應(yīng)用程序不支持通過接口的相互作用。其他應(yīng)用程序可能支持通過接口的相互作用,但是用戶或工具決定不使用本地記錄。例如,當用戶首先啟動應(yīng)用程序時該工具查看應(yīng)用程序是否支持通過智能本地記錄接口的相互作用,如果支持,將應(yīng)用程序的名稱加入到支持通過接口相互作用的應(yīng)用程序列表中?;蛘?,在記錄開始時工具查看應(yīng)用程序是否支持智能本地記錄接口。如果應(yīng)用程序不支持通過接口的相互作用,該工具可將應(yīng)用程序加入到不支持的應(yīng)用程序列表中。
如果沒有使用智能本地記錄接口,該工具使用315另一個記錄器記錄UI活動。例如,該工具將UIA軟件記錄器用于UIA啟動應(yīng)用程序中,或者代替地,將原始的UI輸入記錄器用于不啟動UIA的應(yīng)用程序。然而圖3示出了選擇的記錄路徑,相反該工具既可以同時使用本地記錄和其他記錄。
當使用智能本地記錄接口時,應(yīng)用程序接收用戶輸入并且記錄320宏數(shù)據(jù)。因此,應(yīng)用程序的本地記錄器記錄步驟由與應(yīng)用程序相對的用戶執(zhí)行。
繼續(xù)記錄宏數(shù)據(jù)的過程直到應(yīng)用程序或工具確定325它不用再繼續(xù)。這種檢查可估算任意種情況,包括是否用戶已經(jīng)選擇地終止記錄過程,是否工具已經(jīng)從批處理模式的應(yīng)用程序中請求了令牌,是否批處理或交互模式中的計數(shù)器或計時器已經(jīng)終止,是否用于令牌化的資源是可獲得的,是否已經(jīng)訪問了指定的UI元件,是否達到了規(guī)定的記錄步驟的數(shù)量,等等。
然后應(yīng)用程序令牌化330已記錄的宏數(shù)據(jù),產(chǎn)生一個或多個對工具來說是不透明的令牌。例如,應(yīng)用程序使用上述的令牌生成機制和/或如上所述增加標記信息?;蛘撸ぞ邎?zhí)行一些或所有令牌化或信息添加。
工具或應(yīng)用程序估算335是否繼續(xù)記錄宏數(shù)據(jù)。此外,這種檢查可以估算任意種情況,包括是否用戶已經(jīng)選擇地終止了記錄過程,是否已經(jīng)請求用戶輸入令牌化成功或注釋信息,等等。
工具選擇地將它接收的令牌轉(zhuǎn)換340成代碼諸如其中嵌入了令牌的腳本。例如,如上所述,該工具使用代碼生成機制。
換句話說,技術(shù)300的各種階段被單獨地或與其他階段結(jié)合執(zhí)行。例如,圖3示出了在宏數(shù)據(jù)記錄320之后發(fā)生的令牌化330以及轉(zhuǎn)換340,可選地,一個或所有這些操作隨著記錄320同時被執(zhí)行.
III.智能重放圖4示出了一種全系統(tǒng)UI重放工具420,結(jié)合該工具這里描述的各種技術(shù)可以被實現(xiàn)。圖1中的UI RPF包括該重放工具420。換句話說,重放工具420用作另一個UI結(jié)構(gòu)的一部分。
重放工具通過接收重放代碼以及通過UI系統(tǒng)服務(wù)驅(qū)動應(yīng)用程序,通過將令牌傳送到用于在它們各自的本地記錄環(huán)境中進行解釋的應(yīng)用程序,或者通過播放與UI活動相關(guān)的原始步驟來復制UI活動。該重放工具420是全系統(tǒng)的,因為它處理UI系統(tǒng)結(jié)構(gòu)信息的重放用于具有某些應(yīng)用程序的UI記錄重放,但是也在它們各自的本地宏記錄器環(huán)境中與重放用戶接口活動的應(yīng)用程序相互作用。該本地記錄器應(yīng)用程序通過專用本地重放接口(如圖4中所示的智能RPFAPI)用工具420交換已記錄的宏或UI數(shù)據(jù)。這就允許該工具420控制(和相互作用)應(yīng)用程序自己的記錄能力,因此,這允許動態(tài)用戶接口的UI重放和/或應(yīng)用程序的不同版本的已改變的用戶接口的UI重放。
當重放宏或UI數(shù)據(jù)時,重放工具420控制所使用的路徑。例如,根據(jù)已經(jīng)記錄的數(shù)據(jù),工具420決定是否使用本地應(yīng)用程序記錄器重放,UI系統(tǒng)重放,或使用二者。換句話說,該工具也可以重放原始記錄的步驟。該工具420可以為使用中的每個應(yīng)用程序,或者為使用中的多個應(yīng)用程序中所選擇的應(yīng)用程序同時重放宏或UI數(shù)據(jù)。
A.閱讀器作為輸入,重放工具420從代碼生成器諸如圖2中或其他地方說明的代碼生成器230接收重放代碼450。該重放代碼450可以是各種格式,包括C#、XML、C++、JAVA,或任何其他程序,腳本,宏,或面向文件的語言,或其他命令或指令,用于重放接口或其他機制以便驅(qū)動基于UI應(yīng)用程序的UI系統(tǒng)操作。本地記錄操作的已記錄步驟的令牌可包含在代碼450中,諸如腳本文件(其可被直接傳送到令牌傳送器435)或嵌入在其他代碼450中。
在一些實施例中,重放工具420通過隔行掃描數(shù)據(jù)從不同的應(yīng)用程序和記錄模式中接收結(jié)合代碼和令牌的單一文件。例如,不同本地記錄器的本地記錄操作的已記錄步驟的令牌,連同UI系統(tǒng)結(jié)構(gòu)操作代碼和任何其他已記錄的用戶輸入一起被組合成一個流?;蛘?,工具420接收不同應(yīng)用程序和記錄模式的分離文件。
在該重放工具420中,閱讀器410接收重放代碼450并檢驗代碼450的正確性。例如,重放工具接收包含重放代碼的文件并且試圖證實該文件內(nèi)部一致并且與當前系統(tǒng)的狀態(tài)一致。如果發(fā)現(xiàn)任何不一致,通知該用戶,并且,在一些實施例中,要求該用戶手動結(jié)束該步驟。換句話說,終止重放。
對于根據(jù)UI系統(tǒng)結(jié)構(gòu)重放路徑的重放,閱讀器410將代碼450傳送到UI系統(tǒng)結(jié)構(gòu)播放器425用于編程控制由代碼450所指定的應(yīng)用程序。對于根據(jù)本地記錄重放路徑的重放,閱讀器410將用于本地記錄數(shù)據(jù)的記錄步驟令牌傳送到令牌傳送器435。
B.本地記錄器重放路徑對于本地宏或UI記錄器重放,重放工具420將令牌(如所示的令牌傳送器435)從工具420傳送到應(yīng)用程序440,該應(yīng)用程序包括適當?shù)谋镜赜涗洯h(huán)境。工具420通過專用本地重放接口傳送令牌。在傳送之前,工具420可以解釋增加到已記錄步驟令牌中的數(shù)據(jù)的附加層,包括標記信息諸如應(yīng)用程序名稱、時間標記、索引值、等等,以至于通過正確應(yīng)用程序以適當?shù)捻樞蛑胤旁摬襟E。
不同于代碼450中其他類別的信息,本地記錄數(shù)據(jù)的已記錄步驟令牌不直接由重放工具420解釋。相反,令牌作為不透明的大部分數(shù)據(jù)由令牌傳送器435傳送到應(yīng)用程序440(如所示的令牌接收器442元件)。應(yīng)用程序440解釋令牌,將宏記錄數(shù)據(jù)從令牌傳送到宏播放器445。在應(yīng)用程序440中,已記錄宏數(shù)據(jù)在應(yīng)用程序的本地宏記錄環(huán)境中被解釋。用諸如VBA、PerfectScript、M4、TeX的語言或另一種宏語言表示宏數(shù)據(jù)。應(yīng)用程序的內(nèi)部記錄能力提供堅固和可靠的重放結(jié)構(gòu),有時允許通過UI系統(tǒng)結(jié)構(gòu)進行不可能的重放。
應(yīng)用程序440提取已記錄的步驟為重放該已記錄的步驟作準備。應(yīng)用程序440可以從單一的令牌中提取一個已記錄步驟的操作,或者該應(yīng)用程序440可以從單一的令牌中提取多個已記錄步驟的操作。至于反向令牌生成機制,應(yīng)用程序440可以從令牌的一個或多個數(shù)據(jù)結(jié)構(gòu)的字段中讀取已記錄步驟操作數(shù)據(jù),該數(shù)據(jù)通過復制和引用從工具420中被傳出?;蛘?,應(yīng)用程序440可以拆開作為方法調(diào)用的參數(shù)被傳遞的已記錄步驟的操作數(shù)據(jù)。或者,應(yīng)用程序440使用一些其他的機制從令牌提取已記錄步驟的操作。概念地,該提取可被看作是從令牌數(shù)據(jù)結(jié)構(gòu)中讀取已記錄步驟的操作數(shù)據(jù),或從令牌信息中打開該已記錄步驟的操作數(shù)據(jù)。這里“揭示的”宏語言指令在適當?shù)谋镜赜涗洯h(huán)境中是可識別的。
應(yīng)用程序440也可以處理標記數(shù)據(jù),這些數(shù)據(jù)被預先掛起、添加、或相反當令牌化這些數(shù)據(jù)時被加入到已記錄步驟的操作數(shù)據(jù)中。該標記數(shù)據(jù)提供相關(guān)的重放細節(jié),例如,應(yīng)用程序信息(例如,應(yīng)用程序的名稱和它的版本),指示順序的時間標記,特權(quán)信息(例如,播放該步驟所需的權(quán)力),等等。
工具420支持專用本地重放接口,在一定意義上該工具通過接口格式化傳送到應(yīng)用程序440的信息,通過該接口產(chǎn)生適當?shù)恼{(diào)用,執(zhí)行該應(yīng)用程序440調(diào)用的回調(diào)方法,等等。應(yīng)用程序440支持該接口,在一定意義上該應(yīng)用程序執(zhí)行工具420調(diào)用的方法,處理由工具傳入的預期信息,調(diào)用工具420的回調(diào)方法,等等。用于該接口的精確調(diào)用和處理機制是從屬執(zhí)行的。
C.UI系統(tǒng)重放路徑根據(jù)具有UI系統(tǒng)結(jié)構(gòu)播放器425的UI系統(tǒng)結(jié)構(gòu),具有本地宏記錄器重放的應(yīng)用程序440和/或另一個應(yīng)用程序460可以支持重放。該播放器425本質(zhì)上是一個引擎用于編程控制基于UI的應(yīng)用程序的特征。對于該重放路徑,重放工具420處理具有播放器425的代碼450以便通過編程的與基于UI的應(yīng)用程序的相互作用復制已記錄的步驟和UI活動。
在一些實施例中,工具420用元件執(zhí)行UI系統(tǒng)結(jié)構(gòu)重放,如2004年6月15日申請的、題為“Recording/Playback Tools for UI-based Applications”的美國專利申請中所述的。換句話說,工具420使用另一種UI系統(tǒng)結(jié)構(gòu)重放技術(shù)。
在重放開始時,可以比較當前的條件和進行UI記錄時的條件。如果檢測到顯著的變化,通知用戶,并且提供選項以便繼續(xù)。
有時,重放代碼是自動執(zhí)行的并要求沒有附加輸入或操作的控制。換句話說,UI系統(tǒng)操作被插入到內(nèi)部重放隊列中,這就允許播放器模塊425按順序處理每個已記錄的步驟。播放器425從隊列中獲得已記錄的步驟,等待可以獲得適當?shù)膽?yīng)用程序,等待準備輸入的處理,執(zhí)行已記錄的步驟,并且向重放工具420或別處報告步驟的執(zhí)行結(jié)果。如果任何一步失敗,調(diào)用簡單的睡眠功能并且試圖再次復制已記錄步驟之前該播放器425僅僅等待某一段時間?;蛘撸敳荒軋?zhí)行步驟時,通知并要求用戶結(jié)束該步驟。這就允許適度地處理重放故障而不需要破壞重放工具或任何其他相關(guān)的應(yīng)用程序。
不依靠播放器425,一些應(yīng)用程序也可以代替他們自己的重放工具來運行所產(chǎn)生的代碼。
D.工具的結(jié)構(gòu)和使用通常,工具420的各種模塊是可插入的,這意味著對于不同的應(yīng)用程序,可以用具有相同功能的其他模塊代替他們。因此工具420是可擴展的;對于不同的應(yīng)用程序可以改變它的功能。該工具420可以給出可插模塊的菜單選項,因此允許用戶控制用戶所期望功能的適當模塊的裝載。
重放工具提供各種結(jié)構(gòu)選項。重放工具420可被配制用于指示怎樣發(fā)生重放。例如,重放工具可被配置得當操縱“暫?!卑粹o時暫停重放?;蛘撸斠笥脩暨M行輸入以繼續(xù)處理該重放代碼時該工具420暫停。重放工具可被配置得執(zhí)行重放,如同計算機系統(tǒng)運行能夠“著色”的代碼那樣快。換句話說,重放可以盡可能快地發(fā)生而不用等著色完成。在一些實施例中,與單獨的應(yīng)用程序相對的多個重放序列被同時運行。
為了提高重放的安全性,圖2的記錄工具220可以加密重放代碼和/或嵌入在其中的令牌。如果這樣,重放工具420解密該代碼和/或令牌。其他的安全措施包括重放時要求用戶重新輸入用戶名和密碼,不記錄該數(shù)據(jù),檢查與用戶的安全模式相對的重放安全模式(例如,為用戶請求管理員狀態(tài)并試著播放管理員級腳本),以及僅在當前的時間允許緩沖器重放(從不在文件中的代碼和/或令牌中重放),當它可以被證實時,該緩沖器的內(nèi)容由當前用戶記錄。
工具420根據(jù)需要負責裝載其他的可插模塊,增強安全性(例如,檢查特權(quán)),產(chǎn)生重放線程,模塊間的同步活動,建立和維護用于重放的隊列,記錄錯誤(例如,到局部文件或選擇地到網(wǎng)絡(luò)服務(wù)器或服務(wù)),以及收集重放信息。
圖4中模塊間所示的關(guān)系指出信息的主流;為了簡單起見沒有示出其他關(guān)系。根據(jù)實施例,模塊能夠被添加、省略、分成多個模塊、與其他模塊組合、和/或用類似的模塊代替。換句話說,具有不同模塊和/或其他結(jié)構(gòu)模塊的工具執(zhí)行這里描述的一個或多個重放技術(shù)。
工具420的用戶接口可以是位于重放窗口周圍,停放在計算機屏幕頂部或底部,或最小化成任務(wù)條的類似VCR的接口。該接口包括特征按鈕諸如“暫停”,“停止”,和“播放”,以及當可以獲得該說明時用于顯示被重放步驟的說明的區(qū)域。作為該接口的例子,參見題為“Recording/Playback Tools for UI-basedApplications”的美國專利申請。
E.重放技術(shù)圖5示出一種用于管理具有全系統(tǒng)UI重放工具的本地應(yīng)用程序宏活動的重放技術(shù)500。工具和應(yīng)用程序諸如圖4中所示的重放工具420和應(yīng)用程序440執(zhí)行該技術(shù)500?;蛘撸硪粋€工具和/或應(yīng)用程序執(zhí)行該技術(shù)500。
工具接收510具有已記錄步驟令牌的代碼。例如,該代碼是包含令牌的腳本文件?;蛘撸摯a是具有在其中嵌入令牌的程序語言代碼。
然后該工具檢驗520代碼。該工具可檢驗令牌的正確性,順序,以及內(nèi)部一致性,或證實該工具以及應(yīng)用程序準備好糾正該重放。在這種情況下,工具可以考慮加入到令牌中用于標識或排隊的標記信息。例如,該工具使用上述的驗證機制。如果已記錄操作不能被驗證,該用戶可以被提示終止重放或,換句話說,執(zhí)行操作。
然后該工具將該已記錄步驟的令牌傳送到540適當?shù)膽?yīng)用程序。應(yīng)用程序處理550該令牌,提取已記錄的宏數(shù)據(jù),以及在應(yīng)用程序的本地記錄重放環(huán)境中重放已記錄的本地宏操作,以便重復由用戶執(zhí)行的與應(yīng)用程序相對的步驟。處理本地已記錄的操作典型地包括盡可能平穩(wěn)地重復已記錄的UI活動而沒有或幾乎沒有用戶的干涉。因此,系統(tǒng)UI記錄器工具可有效地管理并且與具有高可靠性的應(yīng)用程序的內(nèi)部記錄環(huán)境相互作用。
該工具或應(yīng)用程序確定560是否繼續(xù)重放。例如,當代碼或令牌被完全重放時,當用戶終止重放時,或者當由于錯誤終止重放時,該工具以及應(yīng)用程序結(jié)束,或者當重放停止并請求用戶輸入數(shù)據(jù)時,該工具以及應(yīng)用程序等待。
換句話說,該技術(shù)500的各種階段被單獨執(zhí)行或與其他階段組合執(zhí)行。例如,圖5示出了當驗證520和傳送540發(fā)生在令牌處理550之前時,或者在流水線上一個或所有這些操作與令牌處理550同時執(zhí)行。
IV.計算環(huán)境上述用于宏和UI記錄和重放的工具用于不同的基于GU的軟件(例如,圖2中的工具200)以及宏和UI記錄技術(shù)能夠在任何類型的計算裝置和環(huán)境中執(zhí)行,包括各種形狀因素的計算機(個人的,工作站,服務(wù)器,手持式,膝上型,寫字板,或其他可移動的),分布式計算網(wǎng)絡(luò),以及網(wǎng)絡(luò)服務(wù),如一些常用的例子。該宏和UI記錄工具和技術(shù)可以用硬件電路執(zhí)行,也可以用計算機或其他計算環(huán)境中的宏記錄、處理和瀏覽軟件980執(zhí)行,諸如圖6中所示的一種。
圖6說明了適當計算環(huán)境600的一般實例,在該環(huán)境中上述的技術(shù)能夠被執(zhí)行。該計算環(huán)境600不用于暗示這里所述的工具和技術(shù)的功能或使用范圍的任何限制,因為他們可以在不同的通用目的或?qū)S媚康挠嬎悱h(huán)境中執(zhí)行。
參考圖6,該計算環(huán)境600包括至少一個處理單元610和存儲器620。在圖6中,這個最基本的結(jié)構(gòu)630包含在虛線中。處理單元610執(zhí)行計算機可執(zhí)行指令并且可以是真實或虛擬的處理器。在一個多處理系統(tǒng)中,多處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能力。存儲器620可以是易失性存儲器(例如,寄存器,高速緩存,RAM),非易失性存儲器(例如,ROM、EEPROM、閃存,等等),或一些二者的組合。存儲器620存儲執(zhí)行智能記錄工具和技術(shù)的軟件680。
計算環(huán)境可具有附加特征。例如,計算環(huán)境600包括存儲器640,一個或多個輸入裝置650,一個或多個輸出裝置660,以及一個或多個通信連接670?;ミB機制(未示出)諸如總線、控制器、或互連計算環(huán)境600的元件的網(wǎng)絡(luò)。典型地,操作系統(tǒng)軟件(未示出)為在計算環(huán)境600中執(zhí)行的其他軟件提供操作環(huán)境,并且調(diào)整計算環(huán)境600的元件的活動。
存儲器640可以是可移動的或不可移動的,并包括磁盤,磁帶和磁盒,CD-ROMs,CD-RWs,DVDs,或其他任何能用于存儲信息和在計算環(huán)境600中能被訪問的介質(zhì)。該存儲器640存儲用于宏以及UI記錄以及重放軟件680的指令。
輸入裝置650(例如,用于控制裝置連接結(jié)構(gòu)中的點的裝置)可以是觸摸輸入裝置諸如鍵盤,鼠標,筆,或跟蹤球,聲音輸入裝置,掃描設(shè)備,或其他將輸入提供到計算環(huán)境600的裝置。作為音頻,該輸入裝置650可以是聲卡或以模擬或數(shù)字形式接收音頻輸入的類似裝置,或?qū)⒁纛l采樣提供到計算環(huán)境的CD-ROM閱讀器。輸出裝置660可以是顯示器,打印機,揚聲器,CD記錄器,或其他提供從計算環(huán)境600輸出的裝置。
通信連接670能夠通過通信介質(zhì)與另一個計算實體進行通信。該通信介質(zhì)傳送諸如計算機可執(zhí)行指令信息、音頻/視頻或其他介質(zhì)信息,或已調(diào)制數(shù)據(jù)信號中的其他數(shù)據(jù)。已調(diào)制數(shù)據(jù)信號是一種具有一個或多個各自的特征集或在信號中以某種形式轉(zhuǎn)變的關(guān)于編碼信息的信號。作為例子,而不是限制,通信介質(zhì)包括用電、光學、RF、紅外線、聲學、或其他載體執(zhí)行的有線或無線技術(shù)。
這里的宏和UI記錄和重放技術(shù)能夠用計算機可讀介質(zhì)的一般上下文描述。計算機可讀介質(zhì)是任何可獲得的介質(zhì),該介質(zhì)能夠在計算環(huán)境中被訪問。作為例子,而不是限制,同該計算環(huán)境600一樣,計算機可讀介質(zhì)包括內(nèi)存620、存儲器640、通信介質(zhì)、以及上述裝置的任何組合。
計算機可執(zhí)行指令的一般上下文描述這里的技術(shù),諸如那些包含在程序模塊中,在目標真實或虛擬的處理器上的計算環(huán)境中執(zhí)行的指令。通常,程序模塊包括例程、程序、程序庫、對象、類、元件、數(shù)據(jù)結(jié)構(gòu)等等,他們執(zhí)行特殊任務(wù)或執(zhí)行特殊抽象數(shù)據(jù)類型。程序模塊的功能可以被組合或在各種實施例中所期望的程序模塊間被分離。用于程序模塊的計算機可執(zhí)行指令可以在局部或分布式計算環(huán)境中執(zhí)行。
為了介紹,該詳細說明使用術(shù)語“確定”,“產(chǎn)生”,“調(diào)整”,以及“應(yīng)用”來描述計算環(huán)境中的計算機操作。這些術(shù)語是計算機執(zhí)行的操作的極度抽象,并不應(yīng)與由人類執(zhí)行的行為相混淆。與這些術(shù)語相應(yīng)的實際計算機操作根據(jù)實施例而改變。
由于本發(fā)明的原理可以應(yīng)用到許多可能的實施例,我要求保護與本發(fā)明所有這些實施例相同的、會出現(xiàn)在下列權(quán)利要求中的范圍和精神內(nèi)的以及等效的實施例。
權(quán)利要求
1.一種存儲計算機可執(zhí)行指令的計算機可讀介質(zhì),用于使計算機系統(tǒng)被編程從而執(zhí)行一種方法,該方法包括從基于圖形用戶接口的應(yīng)用程序中接收多個內(nèi)部宏操作,該操作作為一個或多個不透明已記錄步驟令牌被傳送;以及用外部UI記錄器記錄一個或多個不透明已記錄步驟令牌。
2.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),其中的多個內(nèi)部宏操作通過應(yīng)用程序的內(nèi)部宏記錄器產(chǎn)生,并且其中的一個或多個不透明已記錄步驟令牌由外部UI記錄器處理以便與應(yīng)用程序的內(nèi)部宏記錄器相互操作。
3.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),進一步包括接收多個系統(tǒng)用戶接口操作用于與基于第二個圖形用戶接口的應(yīng)用程序相對的用戶交互操作;為多個系統(tǒng)用戶接口操作產(chǎn)生一個或多個系統(tǒng)用戶接口令牌;以及用外部UI記錄器記錄一個或多個系統(tǒng)用戶接口令牌。
4.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),進一步包括接收多個原始用戶操作用于與基于第二個圖形用戶接口的應(yīng)用程序相對的用戶交互操作;用外部UI記錄器記錄多個原始用戶操作。
5.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),進一步包括用外部UI記錄器將一個或多個不透明已記錄步驟的令牌與相應(yīng)的數(shù)據(jù)相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求5的計算機可讀介質(zhì),其中相應(yīng)的數(shù)據(jù)包括應(yīng)用程序的應(yīng)用識別信息。
7.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),其中通過外部UI記錄器以批處理模式從應(yīng)用程序接收一個或多個不透明已記錄步驟的令牌。
8.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),其中通過外部UI記錄器以交互模式從應(yīng)用程序接收一個或多個不透明已記錄步驟的令牌。
9.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),其中對于多個不同的應(yīng)用程序,外部UI記錄器與多個不同內(nèi)部宏記錄器交互操作,其中的多個不同應(yīng)用程序包括基于圖形用戶接口的應(yīng)用程序。
10.根據(jù)權(quán)利要求1的計算機可讀介質(zhì),其中的方法進一步包括將一個或多個不透明已記錄步驟的令牌從外部UI記錄器傳回應(yīng)用程序;以及重放多個內(nèi)部宏操作。
11.一種存儲計算機可執(zhí)行指令的計算機可讀介質(zhì),用于使計算機系統(tǒng)被編程從而執(zhí)行一種方法,該方法包括接收用軟件程序使用的第一記錄語言表達的一個或多個操作的集合;以及將一個或多個操作的集合表示為一個或多個用于系統(tǒng)UI記錄器程序的記錄器令牌的集合,其中的一個或多個記錄器令牌封裝一個或多個操作,以至于一個或多個操作在所述的一個或多個記錄器令牌中是不透明的。
12.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中的軟件程序產(chǎn)生一個或多個記錄器令牌的集合。
13.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中的系統(tǒng)UI記錄器程序產(chǎn)生一個或多個記錄器令牌的集合。
14.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中該方法進一步包括接收用第二軟件程序使用的第二記錄語言表達的一個或多個操作的集合;以及將一個或多個操作的第二集合表示為一個或多個用于系統(tǒng)UI記錄器程序的記錄器令牌的第二集合。
15.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中的方法進一步包括接收用系統(tǒng)UI記錄語言表達的一個或多個操作的第二集合;以及將一個或多個操作的第二集合表示為一個或多個用于系統(tǒng)UI記錄器程序的記錄器令牌的第二集合。
16.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中通過系統(tǒng)UI記錄器程序以批處理模式從軟件程序接收一個或多個記錄器令牌。
17.根據(jù)權(quán)利要求11的計算機可讀介質(zhì),其中通過系統(tǒng)UI記錄器程序以交互模式從軟件程序接收一個或多個記錄器令牌。
18.一種用于記錄和重放用戶接口活動的全系統(tǒng)UI記錄工具,該工具包括用于收集與相對于多個不同的應(yīng)用程序的用戶接口活動相關(guān)的數(shù)據(jù)的第一集合的模塊,其中用多個不同應(yīng)用程序的多個本地記錄語言表示數(shù)據(jù)的第一集合;用于將被收集的數(shù)據(jù)的第一集合的至少一部分處理為令牌集合的模塊;以及用于通過將令牌分別供給多個不同的應(yīng)用程序來管理用戶接口活動的重放的模塊,數(shù)據(jù)的第一集合與所述的應(yīng)用程序相關(guān)聯(lián)。
19.根據(jù)權(quán)利要求18的工具,進一步包括一個將令牌集合轉(zhuǎn)化成輸出代碼的模塊。
20.根據(jù)權(quán)利要求18的工具,其中的模塊是可擴展的。
21.根據(jù)權(quán)利要求18的工具,進一步包括用于收集與第二用戶接口活動相關(guān)的數(shù)據(jù)的第二集合的模塊,其中用非本地,系統(tǒng)UI記錄語言來表示數(shù)據(jù)的第二集合;以及用于通過重放數(shù)據(jù)的第二集合來管理第二用戶接口活動的重放的模塊。
22.根據(jù)權(quán)利要求18的工具,其中數(shù)據(jù)的第一集合包括宏語言指令。
23.根據(jù)權(quán)利要求18的工具,其中以批處理模式收集數(shù)據(jù)的第一集合。
24.根據(jù)權(quán)利要求18的工具,其中以交互模式收集數(shù)據(jù)的第一集合。
25.一種存儲計算機可執(zhí)行指令的計算機可讀介質(zhì),用于使計算機系統(tǒng)被編程從而執(zhí)行一種方法,該方法包括通過軟件程序的內(nèi)部記錄器將一個或多個記錄器令牌集合從系統(tǒng)UI記錄器程序傳送到用于重放的軟件程序;以及從一個或多個記錄器令牌集合中提取一個或多個內(nèi)部記錄器操作的集合,其中一個或多個內(nèi)部記錄器操作的集合可用軟件程序使用的內(nèi)部記錄語言來表示,借此系統(tǒng)UI記錄器程序與用于軟件程序的內(nèi)部記錄器進行交互操作。
26.根據(jù)權(quán)利要求25的計算機可讀介質(zhì),其中的方法進一步包括通過第二軟件程序的第二內(nèi)部記錄器將一個或多個記錄器令牌的第二集合從系統(tǒng)UI記錄器程序傳送到用于重放的第二軟件程序;以及從一個或多個記錄器令牌的第二集合中提取一個或多個內(nèi)部記錄器操作的第二集合,其中一個或多個內(nèi)部記錄器操作的第二集合可用第二軟件程序使用的第二內(nèi)部記錄語言來表示,借此系統(tǒng)UI記錄器程序可與用于第二軟件程序的第二內(nèi)部記錄器進行交互操作。
27.根據(jù)權(quán)利要求25的計算機可讀介質(zhì),其中的方法進一步包括重放一個或多個記錄器令牌的第二集合以便編程控制第二軟件程序,其中一個或多個記錄器令牌的第二集合可用系統(tǒng)UI記錄語言來表示,借此系統(tǒng)UI記錄器程序可與第二軟件程序進行交互操作。
全文摘要
描述了用于記錄和可靠地復制各種應(yīng)用程序的圖形用戶接口(“GUI”)活動的技術(shù)和工具,包括具有動態(tài)用戶接口的應(yīng)用程序。所述的技術(shù)和工具可被組合或單獨地使用。例如,記錄工具從基于GUI的應(yīng)用程序接收作為不透明令牌的內(nèi)部宏數(shù)據(jù),所述令牌被嵌入到重放代碼中。重放工具通過將嵌入的令牌傳回給他們的原始應(yīng)用程序執(zhí)行重放代碼,以通過應(yīng)用程序的內(nèi)部記錄器重放。
文檔編號G06F11/34GK1728094SQ20051009238
公開日2006年2月1日 申請日期2005年5月30日 優(yōu)先權(quán)日2004年6月30日
發(fā)明者H·B·赫德 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
和林格尔县| 高州市| 龙山县| 麻栗坡县| 富民县| 桦甸市| 资源县| 尖扎县| 绥阳县| 南充市| 岐山县| 安陆市| 台南市| 黄龙县| 土默特左旗| 苗栗县| 南木林县| 县级市| 井研县| 福州市| 金阳县| SHOW| 牡丹江市| 万荣县| 固安县| 榆林市| 日喀则市| 奈曼旗| 灵台县| 辽宁省| 江都市| 通许县| 大余县| 宿迁市| 平塘县| 慈溪市| 晋江市| 德钦县| 夏津县| 北川| 永年县|