專利名稱:圖像取得裝置、圖像取得方法及計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及取得畫面上所顯示的網(wǎng)頁(yè)內(nèi)容的圖像的技木。
背景技術(shù):
在保證產(chǎn)品質(zhì)量方面,產(chǎn)品出廠前的動(dòng)作測(cè)試不可缺少。一般來說,多是通過測(cè)試工程師手動(dòng)操作產(chǎn)品并確認(rèn)該操作的結(jié)果來執(zhí)行動(dòng)作測(cè)試的。但是,對(duì)于操作變化(Variation)較豐富的多功能產(chǎn)品,手動(dòng)的動(dòng)作測(cè)試就難以滿足要求了。因此,多是通過用測(cè)試程序自動(dòng)執(zhí)行動(dòng)作測(cè)試來謀求動(dòng)作測(cè)試的省力化。例如,HP(Hewlett-Packard)公司提供的自動(dòng)功能測(cè)試工具“QTP (Quick Test Professional)” 就 是通過執(zhí)行用戶自制的測(cè)試程序來實(shí)現(xiàn)動(dòng)作測(cè)試的自動(dòng)化的。〔在先技術(shù)文獻(xiàn)〕〔專利文獻(xiàn)〕〔專利文獻(xiàn)I〕日本特開2004— 227396號(hào)公報(bào)
發(fā)明內(nèi)容
〔發(fā)明所要解決的課題〕〔0005〕在對(duì)外部裝置提供網(wǎng)頁(yè)內(nèi)容的網(wǎng)頁(yè)服務(wù)器、以及在該網(wǎng)頁(yè)服務(wù)器上工作的網(wǎng)頁(yè)應(yīng)用的動(dòng)作測(cè)試中,有時(shí)要對(duì)顯示于外部裝置上的網(wǎng)頁(yè)內(nèi)容的圖像進(jìn)行抓圖。然后,通過由測(cè)試工程師確認(rèn)該抓像,來確認(rèn)動(dòng)作的正常性。然而,在使用各種各樣的網(wǎng)頁(yè)瀏覽器進(jìn)行產(chǎn)品的動(dòng)作測(cè)試時(shí),起動(dòng)網(wǎng)頁(yè)瀏覽器的窗ロ(以下也稱“瀏覽器窗ロ”)的顯示形式因網(wǎng)頁(yè)瀏覽器而異。因此,本發(fā)明人認(rèn)識(shí)到在使不同的網(wǎng)頁(yè)瀏覽器顯示相同的網(wǎng)頁(yè)內(nèi)容時(shí),有時(shí)瀏覽器窗ロ整體看起來不一樣,會(huì)降低動(dòng)作測(cè)試的效率。本發(fā)明是基于本發(fā)明人的上述課題認(rèn)識(shí)而完成的發(fā)明,其主要目的在于提供ー種用于取得在動(dòng)作測(cè)試中便利性高的網(wǎng)頁(yè)內(nèi)容的顯示圖像的技木。〔用于解決課題的手段〕為解決上述課題,本發(fā)明ー個(gè)方案的圖像取得裝置包括窗ロ位置取得部,針對(duì)包括顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于客戶區(qū)域的附加區(qū)域的瀏覽器窗ロ,取得畫面上的瀏覽器窗ロ的顯示位置;圖像位置確定部,按照畫面上的瀏覽器窗ロ的顯示位置、瀏覽器窗ロ的附加區(qū)域的尺寸,確定畫面上的客戶區(qū)域的顯示位置;圖像取得部,按照?qǐng)D像位置確定部所確定的畫面上的顯示位置,對(duì)客戶區(qū)域的顯示圖像進(jìn)行抓圖。本發(fā)明的另一方案是ー種圖像取得方法。該方法由圖像取得裝置來執(zhí)行,包括針對(duì)包含顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于客戶區(qū)域的附加區(qū)域的瀏覽器窗ロ,取得畫面上的瀏覽器窗ロ的顯示位置的步驟;按照畫面上的瀏覽器窗ロ的顯示位置和瀏覽器窗ロ的附加區(qū)域的尺寸,確定畫面上的客戶區(qū)域的顯示位置的確定步驟;以及按照在確定步驟中所確定的畫面上的顯示位置,對(duì)客戶區(qū)域的顯示圖像進(jìn)行抓圖的步驟。當(dāng)然,將以上構(gòu)成要素的任意組合、本發(fā)明的表現(xiàn)形式在裝置、方法、系統(tǒng)、程序、存儲(chǔ)有程序的記錄介質(zhì)等之間變換后的實(shí)施方式,作為本發(fā)明的方案也是有效的?!舶l(fā)明效果〕通過本發(fā)明,能取得在動(dòng)作測(cè)試中便利性高的網(wǎng)頁(yè)內(nèi)容的顯示圖像。
〔0012〕圖I的(a)是入口站點(diǎn)第一畫面的畫面圖。圖I的(b)是入口站點(diǎn)第二畫面的畫面圖。 圖2是表示執(zhí)行詞典測(cè)試時(shí)的日志的圖。圖3是表示用于執(zhí)行詞典測(cè)試的程序的圖。圖4是動(dòng)作檢驗(yàn)裝置的功能框圖。圖5是至取得日志并執(zhí)行動(dòng)作測(cè)試的示意圖。圖6是日志畫面的畫面圖。圖7是函數(shù)設(shè)定畫面的畫面圖。圖8是程序畫面的畫面圖。圖9是輸入設(shè)定畫面的畫面圖。圖10是事例設(shè)定畫面的畫面圖。圖11是表示參考技術(shù)I的動(dòng)作檢驗(yàn)裝置與參考技術(shù)2的動(dòng)作檢驗(yàn)裝置各自的構(gòu)成的概要的圖。圖12是表示參考技術(shù)I的動(dòng)作檢驗(yàn)裝置與參考技術(shù)2的動(dòng)作檢驗(yàn)裝置各自的動(dòng)作的概要的圖。圖13是表示參考技術(shù)2的動(dòng)作檢驗(yàn)裝置的功能構(gòu)成的框圖。圖14是在參考技術(shù)2中、至檢測(cè)到用戶的數(shù)據(jù)輸入操作而執(zhí)行動(dòng)作測(cè)試的概要圖。圖15是參考技術(shù)2中的函數(shù)設(shè)定畫面的畫面圖。圖16是參考技術(shù)2中的函數(shù)設(shè)定畫面的畫面圖。圖17是參考技術(shù)2中的輸入設(shè)定畫面的畫面圖。圖18是參考技術(shù)2中的事例設(shè)定畫面的畫面圖。圖19是表示針對(duì)網(wǎng)頁(yè)瀏覽器的兩種操作方式的特征的圖。圖20是示意性地表示在針對(duì)網(wǎng)頁(yè)瀏覽器的兩個(gè)操作方式下、功能間的調(diào)用關(guān)系的圖。圖21是表示參考技術(shù)3的動(dòng)作檢驗(yàn)裝置的功能構(gòu)成的框圖。圖22是表示圖21的程序執(zhí)行部的詳細(xì)情況的框圖。圖23是表示參考技術(shù)3的動(dòng)作檢驗(yàn)裝置的動(dòng)作的流程圖。圖24是示意性地表示網(wǎng)頁(yè)的動(dòng)作測(cè)試中的功能間調(diào)用關(guān)系的圖。圖25是表示Selenium窗口管理器中所存儲(chǔ)的數(shù)據(jù)例子的圖。圖26是表示針對(duì)圖24的FF對(duì)話框的操作的方式的圖。
圖27是表示針對(duì)圖24的Safari對(duì)話框的操作的方式的圖。圖28是表示參考技術(shù)4的動(dòng)作檢驗(yàn)裝置的功能構(gòu)成的框圖。圖29是表示圖28的程序執(zhí)行部的詳細(xì)情況的框圖。圖30是表示參考技術(shù)4的動(dòng)作檢驗(yàn)裝置的動(dòng)作的流程圖。圖31是詳細(xì)表示圖30的S402的測(cè)試程序讀入處理的流程圖。圖32是詳細(xì)表示圖30的S419的網(wǎng)頁(yè)瀏覽器起動(dòng)處理的流程圖。圖33是詳細(xì)表示圖30的S426的網(wǎng)頁(yè)操作處理的流程圖。圖34是詳細(xì)表示圖33的S452的Mac用操作處理的流程圖。
圖35是詳細(xì)表示圖33的S458的IE用操作處理的流程圖。圖36是詳細(xì)表示圖33的S462的FF用操作處理的流程圖。圖37是表示瀏覽器窗口中的網(wǎng)頁(yè)內(nèi)容的顯示例的圖。圖38是表示圖37的瀏覽器窗ロ的抓像的圖。圖39是表示第I實(shí)施方式中的與畫面抓圖處理相關(guān)的功能構(gòu)成的框圖。圖40是表示代理處理部向佐證物設(shè)定部提供的函數(shù)的圖。圖41是表示動(dòng)作檢驗(yàn)裝置中的圖像抓圖處理的動(dòng)作的流程圖。圖42是詳細(xì)示出圖41的S606的框架顯示位置確定處理的流程圖。圖43是表示瀏覽器窗口中的網(wǎng)頁(yè)內(nèi)容的顯示例的圖。
具體實(shí)施例方式在說明本實(shí)施方式的動(dòng)作檢驗(yàn)裝置前,先通過參考技術(shù)I、參考技術(shù)2、參考技術(shù)
3、參考技術(shù)4來說明成為其前提的結(jié)構(gòu)。(參考技術(shù)I)圖I的(a)是入口站點(diǎn)第一畫面300的畫面圖。在參考技術(shù)I中,說明以入口站點(diǎn)“XYZ ! ”為對(duì)象的動(dòng)作測(cè)試。入口站點(diǎn)第一畫面300包含編輯框302和檢索鏈接304。檢索鏈接304包括“網(wǎng)頁(yè)”、“博客”、“圖像”、“詞典”這四個(gè)鏈接。用戶在編輯框302中輸入字符串并鼠標(biāo)點(diǎn)擊檢索鏈接304中的某ー個(gè)后,就開始輸入字符串的檢索了。例如在編輯框302中輸入字符串“液晶”,并鼠標(biāo)點(diǎn)擊鏈接“網(wǎng)頁(yè)”時(shí),包含字符串“液晶”的網(wǎng)站就成為檢索對(duì)象。而如果在編輯框302中輸入字符串“液晶”并鼠標(biāo)點(diǎn)擊鏈接“博客”,則該入口站點(diǎn)內(nèi)所開設(shè)的博客(Weblog)中包含字符串“液晶”的博客頁(yè)就成為檢索對(duì)象。在此,假定在編輯框302中輸入了字符串“測(cè)試”,并且鼠標(biāo)點(diǎn)擊了鏈接“詞典”。圖I的(b)是入口站點(diǎn)第二畫面310的畫面圖。在入口站點(diǎn)第一畫面300中輸入“測(cè)試”并鼠標(biāo)點(diǎn)擊“詞典”后,圖I的(b)所表示的入口站點(diǎn)第二畫面310就被顯示出來。通過該入口站點(diǎn)所提供的“詞典”服務(wù),與該字符串“測(cè)試”相關(guān)聯(lián)的對(duì)象被羅列在檢索結(jié)果欄306中。這里,假定鼠標(biāo)點(diǎn)擊了檢索結(jié)果欄306的最上面的鏈接“測(cè)試(test)”。在上述過程中,以下所示的三個(gè)操作被進(jìn)行。Al.在入口站點(diǎn)第一畫面300的編輯框302中輸入字符串“測(cè)試”的操作。A2.鼠標(biāo)點(diǎn)擊入口站點(diǎn)第一畫面300的檢索鏈接304中的鏈接“詞典”的操作。
A3.鼠標(biāo)點(diǎn)擊入口站點(diǎn)第二畫面310的檢索結(jié)果欄306中的鏈接“測(cè)試(test)”的操作。以下,將通過上述Al A3的操作而實(shí)現(xiàn)的動(dòng)作過程稱為“詞典測(cè)試”。圖2是表示執(zhí)行了詞典測(cè)試時(shí)的日志320的圖。在操作被導(dǎo)入了 HP公司的QTP的客戶端終端來訪問上述入口站點(diǎn),并執(zhí)行了Al A3的操作的情況下,QTP生成圖2所示的日志320。操作Al A3被作為預(yù)定格式的碼文記錄在日志320中。例如,操作Al被表達(dá)為Browser ("XYZ ! " ) Page ("XYZ ! " ) . WebEdit ("p").Set"測(cè)試" 這樣的碼文。其意思是對(duì)“XYZ! ”網(wǎng)站、名稱為“XYZ! ”的網(wǎng)頁(yè)、名稱為“p”的編輯框(相當(dāng)于圖I的(a)、圖I的(b)中所示的編輯框302)輸入了字符串“測(cè)試”。同樣,操作A2被顯示為Browser ("XYZ ! " ) Page ("XYZ ! " ) Link ("詞典") Click操作A3被顯示為Browser ("XYZ ! " ) . Page ("XYZ!-所有詞典-測(cè)試") Link ("測(cè)試(test)") Click這樣的碼文。在參考技術(shù)I中,是基于QTP的語法進(jìn)行說明的,但碼文的格式并不限于此。QTP能夠一邊解釋日志320的碼文一邊再現(xiàn)執(zhí)行碼文所表達(dá)的操作。因此,一旦生成了日志320,就能任意次地重復(fù)執(zhí)行同一內(nèi)容的詞典測(cè)試。另外,只要改寫日志320的一部分,就能以不同于手動(dòng)操作時(shí)的內(nèi)容來執(zhí)行詞典測(cè)試。例如,將Browser ("XYZ ! " ) Page ("XYZ ! " ) . WebEdit ("p").Set"測(cè)試"中所包含的字符串“測(cè)試”變更成其它字符串“測(cè)一試”,改寫成Browser ("XYZ ! " ) Page ("XYZ ! " ) . WebEdit ("p") Set"測(cè)一試"而輸入到QTP中,則能夠自動(dòng)執(zhí)行僅改變了編輯框302的輸入字符串的同內(nèi)容的詞典測(cè)試。 但是,要改寫日志320地執(zhí)行動(dòng)作測(cè)試,需要針對(duì)日志320的語法擁有某種程度的知識(shí)。另外,在改寫日志320時(shí)有可能會(huì)發(fā)生人為性的錯(cuò)誤。圖3是表示用于執(zhí)行詞典測(cè)試的程序330的圖。也可以不通過日志320執(zhí)行動(dòng)作測(cè)試,而是通過用VB (Visual Basic)腳本等記述與日志320同等的內(nèi)容來執(zhí)行測(cè)試程序。圖3所示的程序330是參照?qǐng)D2的日志320而編制成的測(cè)試程序。例如,操作Al被表達(dá)為WebEditSet (Browser ("XYZ ! " ). Page ("XYZ!") WebEdit ("p"),DataTable("pl,dtGlobalSheet")這樣的VB函數(shù)。WebEditSet函數(shù)的具體邏輯如該圖中部所記述的那樣。在程序330不包含字符串“測(cè)試”這樣的輸入數(shù)據(jù)這一點(diǎn)上,程序330不同于日志320。作為替代手段,WebEditSet函數(shù)是從被表達(dá)為dtGlobalSheet的文件(下稱“輸入數(shù)據(jù)文件”)接受輸入數(shù)據(jù)的。即,邏輯與輸入數(shù)據(jù)是分離的。通過輸入數(shù)據(jù)文件的改寫或替換,能夠基于各種各樣的輸入數(shù)據(jù)執(zhí)行同一邏輯的詞典測(cè)試。與基于手動(dòng)的動(dòng)作測(cè)試或基于日志320的動(dòng)作測(cè)試相比,基于程序330的動(dòng)作測(cè)試具有易于增加輸入數(shù)據(jù)的變化這樣的優(yōu)點(diǎn)。但是,基于程序330的動(dòng)作測(cè)試中存在以下問題。Dl.需要新花費(fèi)編程的功夫。D2.根據(jù)程序編制者不同,程序的內(nèi)容會(huì)變化。例如,程序員Pl針對(duì)操作Al編制的WebEditSet函數(shù)和程序員P2針對(duì)操作Al編制的WebEditSet函數(shù),即使函數(shù)名相同,邏輯也未必相同。另外,程序本身也有可能混入了漏洞(bug)。因此,就需要用于確保程序330自身的可靠性的措施。此外,程序330中還需要例外處理等與動(dòng)作測(cè)試沒有直接關(guān)系的邏輯,但未必所有程序員都會(huì)編入考慮到例外處理的邏輯。例如在圖3所示的WebEditSet函數(shù)的情況下,編入了能應(yīng)對(duì)輸入數(shù)據(jù)為空字符的情況的邏輯,但其他程序員在編制WebEditSet函數(shù)時(shí)可能會(huì)漏掉這樣的考慮。
結(jié)果,動(dòng)作測(cè)試的內(nèi)容結(jié)果容易受到程序員的水平的影響。圖4是動(dòng)作檢驗(yàn)裝置100的功能框圖。對(duì)于本說明書的框圖所示的各功能塊,硬件上可以用計(jì)算機(jī)的CPU等元件或機(jī)械裝置來實(shí)現(xiàn),軟件上可以通過計(jì)算機(jī)程序等來實(shí)現(xiàn),在此,描述通過它們的結(jié)合來實(shí)現(xiàn)的功能塊。因此,本領(lǐng)域技術(shù)人員當(dāng)理解這些功能塊可以通過硬件、軟件的組合以各種各樣的形式來實(shí)現(xiàn)。例如,各功能塊可以作為計(jì)算機(jī)程序存儲(chǔ)在記錄介質(zhì)中,通過安裝到信息處理裝置的硬盤中,并適時(shí)地被讀入到主存儲(chǔ)器而被處理器執(zhí)行。動(dòng)作檢驗(yàn)裝置100可以被形成為專用硬件,也可以被形成為網(wǎng)頁(yè)瀏覽器等與用戶接ロ協(xié)作的軟件模塊。作為參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100,說明其被形成為QTP的附加組件(add-on)的軟件模塊的情況。動(dòng)作檢驗(yàn)裝置100包括IF (接ロ)部110、數(shù)據(jù)處理部130以及數(shù)據(jù)保持部140。IF部110負(fù)責(zé)與用戶、QTP的接ロ。數(shù)據(jù)處理部130基于從IF部110、數(shù)據(jù)保持部140取得的數(shù)據(jù)執(zhí)行各種數(shù)據(jù)處理。數(shù)據(jù)處理部130還發(fā)揮IF部110與數(shù)據(jù)保持部140間的接ロ的作用。數(shù)據(jù)保持部140是用于保持各種數(shù)據(jù)的存儲(chǔ)區(qū)域。IF 部 110:IF部110包括輸入部112和輸出部118。輸入部112負(fù)責(zé)來自用戶和QTP的輸入處理,輸出部118負(fù)責(zé)向用戶和QTP的輸出處理。輸入部112包括日志取得部114和輸入數(shù)據(jù)取得部116。日志取得部114從QTP取得日志。輸入數(shù)據(jù)取得部116取得輸入數(shù)據(jù)文件,并從輸入數(shù)據(jù)文件取得要提供給程序的輸入數(shù)據(jù)。關(guān)于輸入數(shù)據(jù)文件的詳細(xì)情況,將結(jié)合圖5和圖9詳細(xì)敘述。輸出部118包括函數(shù)設(shè)定畫面顯示部120、輸入設(shè)定畫面顯示部122、程序畫面顯示部124以及事例設(shè)定畫面顯示部126。函數(shù)設(shè)定畫面顯示部120使得圖7所示的函數(shù)設(shè)定畫面210顯示出來。輸入設(shè)定畫面顯示部122使得圖9所示的輸入設(shè)定畫面230顯示出來。程序畫面顯示部124使得圖8所示的程序畫面220顯示出來。事例設(shè)定畫面顯示部126使得圖10所示的事例設(shè)定畫面240顯示出來。數(shù)據(jù)處理部130:
數(shù)據(jù)處理部130包括程序生成部132、程序執(zhí)行部134以及測(cè)試事例登錄部136。程序生成部132自動(dòng)生成動(dòng)作測(cè)試用的程序。程序執(zhí)行部134使所被生成的程序執(zhí)行。在參考技術(shù)I中,是使QTP執(zhí)行程序。測(cè)試事例登錄部136將執(zhí)行集(set)登錄在事例文件中。關(guān)于執(zhí)行集和事例文件,將結(jié)合圖10進(jìn)行詳細(xì)敘述。數(shù)據(jù)保持部140:數(shù)據(jù)保持部140包括日志保持部142、程序保持部144、輸入數(shù)據(jù)文件保持部146、事例文件保持部148、函數(shù)保持部150以及結(jié)果保持部152 (以下也稱“測(cè)試結(jié)果保持部152”)。日志保持部142保持日志。程序保持部144保持程序。輸入數(shù)據(jù)文件保持部14 6保持輸入數(shù)據(jù)文件。事例文件保持部148保持事例文件。函數(shù)保持部150保持可被登錄到動(dòng)作測(cè)試用的程序中的函數(shù)的函數(shù)庫(kù)。結(jié)果保持部152保持動(dòng)作測(cè)試的結(jié)果。圖5是在參考技術(shù)I中至取得日志并執(zhí)行動(dòng)作測(cè)試為止的示意圖。首先,手動(dòng)操作動(dòng)作測(cè)試的對(duì)象機(jī)器。在參考技術(shù)I中,操作客戶端終端的網(wǎng)頁(yè)瀏覽器,訪問入口站點(diǎn)“XYZ ! ”。QTP生成日志,日志取得部114從QTP取得日志。各種碼文預(yù)先與函數(shù)建立有對(duì)應(yīng)關(guān)系。函數(shù)設(shè)定畫面顯示部120讀取函數(shù)保持部150的函數(shù)庫(kù),并使與日志中所包含的各碼文對(duì)應(yīng)的函數(shù)一覽顯示(SI)。在函數(shù)設(shè)定畫面顯示部120中,用戶能夠根據(jù)需要追加、變更、刪除函數(shù)。這樣,應(yīng)被包含在程序中的函數(shù)就被確定了。關(guān)于SI,將與圖7相結(jié)合地在后面詳述。接下來,設(shè)定應(yīng)提供給該程序的輸入數(shù)據(jù)(S2 )。設(shè)定內(nèi)容以輸入數(shù)據(jù)文件的形式被登錄。關(guān)于S2,將結(jié)合圖9在后面詳述。基于在SI中設(shè)定的函數(shù)群自動(dòng)生成程序(S3)。關(guān)于S3,將結(jié)合圖8在后面詳述。接下來,基于多種程序以及多種輸入數(shù)據(jù)文件,將程序與輸入數(shù)據(jù)文件的組合作為“執(zhí)行集”登錄。也可以登錄多個(gè)執(zhí)行集(S4)。設(shè)定內(nèi)容被以事例文件的形式登錄。例如,當(dāng)想要使得在基于輸入數(shù)據(jù)文件F2執(zhí)行程序Pl后再基于輸入數(shù)據(jù)文件F6執(zhí)行程序P2的情況下,被以執(zhí)行集I :程序Pl +輸入數(shù)據(jù)文件F2執(zhí)行集2 :程序P2 +輸入數(shù)據(jù)文件F6的形式登錄到事例文件中。關(guān)于S4,將結(jié)合圖10詳述。最后,按照事例文件執(zhí)行程序(S5)。在上述例子的情況下,程序執(zhí)行部134使執(zhí)行集I和執(zhí)行集2連續(xù)執(zhí)行。程序執(zhí)行部134將程序的執(zhí)行結(jié)果、換言之是將測(cè)試結(jié)果登錄到結(jié)果保持部152中。圖6是日志畫面200的畫面圖。在日志取得部114取得日志后,輸出部118使日志畫面顯示在日志畫面200中的日志顯示區(qū)域202。用戶也可以將QTP的日志復(fù)制并粘貼到日志顯示區(qū)域202中?;蛘?,也可以是輸出部118在日志畫面200顯示時(shí)取得QTP所生成的日志(文件),并使之畫面顯示在日志顯示區(qū)域202中。用戶鼠標(biāo)點(diǎn)擊執(zhí)行按鈕204后,接下來的圖7所示的函數(shù)設(shè)定畫面210被顯示出來。圖7是函數(shù)設(shè)定畫面210的畫面圖。程序生成部132針對(duì)日志所包含的碼文確定函數(shù),并使確定的函數(shù)一覽顯示在函數(shù)設(shè)定畫面210的函數(shù)欄214中。編號(hào)欄212表示執(zhí)行順序,說明欄216表示函數(shù)的概要說明,對(duì)象欄218表示操作對(duì)象的對(duì)象(object),變量欄219表示變量名,輸入值欄217表示輸入數(shù)據(jù)。對(duì)于前述的表示操作Al的碼文Browser ("XYZ ! " ) · Page ("XYZ ! " ) . WebEdit ("p") · Set"測(cè)試",WebEditSet函數(shù)在函數(shù)庫(kù)中預(yù)先與其建立有對(duì)應(yīng)關(guān)系。程序生成部132讀出日志320的第一個(gè)碼文后,參照函數(shù)保持部150的函數(shù)庫(kù),確定WebEditSet函數(shù)。因?yàn)椴僮鰽l中被作為操作對(duì)象的對(duì)象是“Browser ("XYZ !〃). Page ("XYZ!")”頁(yè),所以對(duì)象欄218 中被設(shè)定為 “Browser ("XYZ!")· Page ("XYZ ! " )”。WebEditSet 函數(shù)是以設(shè)定在編輯框P (編輯框302)中的輸入數(shù)據(jù)為自變量的函數(shù)。雖然也可以在輸入值欄217中設(shè)定應(yīng)設(shè)定到編輯框P中的輸入數(shù)據(jù),但這里假定在函數(shù)設(shè)定畫面210中沒有登錄輸入數(shù)據(jù)的情況來進(jìn)行說明。應(yīng)設(shè)定到編輯框P中的輸入數(shù)據(jù)在將結(jié)合圖9詳述的輸入設(shè)定畫面230中 被設(shè)定。由于日志320中對(duì)應(yīng)于操作Al A3地包含有三個(gè)碼文,所以程序生成部132確定三個(gè)函數(shù)。用戶也可以在函數(shù)設(shè)定畫面210中追加、刪除、變更函數(shù)。圖7中的第四個(gè)TextCheck函數(shù)與第五個(gè)WebScreenCapture函數(shù)是用戶追加選擇的函數(shù)。TextCheck函數(shù)是判定正在顯示的網(wǎng)頁(yè)中是否包含被賦值為變量q的字符串的函數(shù)。WebScreenCapture函數(shù)是對(duì)正在顯示的網(wǎng)頁(yè)進(jìn)行畫面抓圖的函數(shù)。在對(duì)動(dòng)作測(cè)試的結(jié)果進(jìn)行證跡管理方面,WebScreenCapture函數(shù)是非常方便的函數(shù)。這樣,函數(shù)庫(kù)中不僅備有WebEditSet函數(shù)那樣的與用戶的操作相對(duì)應(yīng)的函數(shù),還備有TestCheck函數(shù)這樣的用于輔助支持動(dòng)作測(cè)試的函數(shù)。用戶只要從函數(shù)庫(kù)中選擇所希望的函數(shù),就能設(shè)定想要包含在動(dòng)作測(cè)試中的邏輯。測(cè)試事例設(shè)定按鈕215被點(diǎn)擊時(shí),圖10的事例設(shè)定畫面240被顯示出來。輸入數(shù)據(jù)文件生成按鈕213被點(diǎn)擊時(shí),圖9的輸入設(shè)定畫面230被顯示出來。程序生成按鈕211被點(diǎn)擊時(shí),圖8的程序畫面220被顯示出來。參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100具有如下優(yōu)點(diǎn)。ml.僅基于⑶I (Graphical User Interface :圖形用戶接ロ)選擇函數(shù),就能選擇想要包含在程序中的邏輯。幾乎不需要花費(fèi)用于編制程序的功夫。m2.被包含在程序中的函數(shù)是已被登錄在函數(shù)庫(kù)中的函數(shù),所以很難因編制者不同而出現(xiàn)程序質(zhì)量的偏差。例外處理等必要的邏輯也被預(yù)先編入了各函數(shù)中。圖8是程序畫面220的畫面圖。在函數(shù)設(shè)定畫面210中,若程序生成按鈕211被鼠標(biāo)點(diǎn)擊,則程序生成部132生成程序,程序畫面顯示部124使其源代碼顯示在程序畫面220中的程序顯示區(qū)域222內(nèi)。程序被保持在程序保持部144中。圖9是輸入設(shè)定畫面230的畫面圖。在函數(shù)設(shè)定畫面210中,若輸入數(shù)據(jù)文件生成按鈕213被鼠標(biāo)點(diǎn)擊,則輸入設(shè)定畫面顯示部122使輸入設(shè)定畫面230顯示出來。在函數(shù)設(shè)定畫面210中,變量P和q被定義了。編號(hào)欄232表示輸入順序,變量欄234表示對(duì)變量P的輸入數(shù)據(jù),變量欄236表示對(duì)變量q的輸入數(shù)據(jù)。在輸入設(shè)定畫面230中,設(shè)定要賦值給該變量P和q的輸入數(shù)據(jù)。各輸入數(shù)據(jù)被作為輸入數(shù)據(jù)文件保持在輸入數(shù)據(jù)文件保持部146中。
例如若給與程序330圖9所示的格式的輸入數(shù)據(jù)文件,則如I.將字符串“測(cè)試”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結(jié)果的畫面中是否包含有字符串“試驗(yàn)”的測(cè)試2.將字符串“test”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結(jié)果的畫面中是否包含有字符串“試驗(yàn)”的測(cè)試3.將字符串“測(cè)試事例”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結(jié)果的畫面中是否包含有字符串“試驗(yàn)”的測(cè)試這樣,連續(xù)執(zhí)行基于不同的輸入數(shù)據(jù)的多個(gè)詞典測(cè)試。
圖10是事例設(shè)定畫面240的畫面圖。在函數(shù)設(shè)定畫面210中,若測(cè)試事例設(shè)定按鈕215被鼠標(biāo)點(diǎn)擊,則事例設(shè)定畫面顯示部126使事例設(shè)定畫面240顯示出來。編號(hào)欄244表示執(zhí)行順序,執(zhí)行集欄245表示執(zhí)行集的概要,程序欄246表示成為執(zhí)行對(duì)象的程序,輸入數(shù)據(jù)文件欄247表示成為輸入數(shù)據(jù)的提取對(duì)象的輸入數(shù)據(jù)文件。這里,以網(wǎng)絡(luò)證券的網(wǎng)站為動(dòng)作測(cè)試對(duì)象進(jìn)行說明。在該圖中,I.登入(login)、2.查看新聞、3.賣出股票、4.賣出債券、5.住所變更、6.退出(logout)這六個(gè)執(zhí)行集被登錄了。首先,QTP基于程序“l(fā)ogin, vbs”生成“l(fā)ogin”項(xiàng)目。這里所謂“項(xiàng)目”,是包含QTP的執(zhí)行格式文件群的目錄。QTP以“l(fā)ogin”項(xiàng)目為輸入來執(zhí)行l(wèi)ogin, vbs和login, xls中預(yù)定義的處理。若用戶鼠標(biāo)點(diǎn)擊執(zhí)行按鈕248,則先是執(zhí)行集“登入”的“l(fā)ogin”項(xiàng)目被執(zhí)行。第一個(gè)執(zhí)行集“登入”完成后,作為執(zhí)行集“查看新聞”,“ncheck”項(xiàng)目被執(zhí)行。這樣,在執(zhí)行按鈕248被鼠標(biāo)點(diǎn)擊后,I.登入(login)、2.查看新聞、3.賣出股票、4.賣出債券、5.住所變更、6.退出(logout)這六個(gè)執(zhí)行集被連續(xù)執(zhí)行。由此,能夠?qū)⒒凇跋鹊侨耄诓榭葱侣労笾甘举u出所持股票和所持債券,再在變更住所后退出”這樣一個(gè)測(cè)試劇本(scenario)的動(dòng)作測(cè)試自動(dòng)化。用戶能夠在事例設(shè)定畫面240中自由制作測(cè)試劇本。例如可以登錄執(zhí)行集“買入股票”來取代執(zhí)行集“賣出股票”,另外,作為執(zhí)行集“賣出股票”的輸入數(shù)據(jù)文件,也可以不登錄“stockl. xls”而是登錄其它輸入數(shù)據(jù)文件。在事例設(shè)定畫面240中所登錄的測(cè)試劇本被作為事例文件記錄,并被保持在事例文件保持部148中。通過一點(diǎn)點(diǎn)地改變測(cè)試劇本的構(gòu)成或輸入數(shù)據(jù)文件等,易于擴(kuò)展動(dòng)作測(cè)試的變化。以上說明了參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100。通過動(dòng)作檢驗(yàn)裝置100,能夠分離程序與輸入數(shù)據(jù),即能夠使處理與變量相分離。并且,能夠基于GUI界面的設(shè)定自動(dòng)生成其所要使用的程序。由此,能夠既確保包含在程序中的邏輯的多樣性,又能簡(jiǎn)單地生成質(zhì)量穩(wěn)定的程序。另外,由于僅改變輸入數(shù)據(jù)文件的內(nèi)容就能變更動(dòng)作測(cè)試的內(nèi)容,所以易于擴(kuò)展動(dòng)作測(cè)試的變化。進(jìn)而,通過將執(zhí)行集登錄在事例文件中制作測(cè)試劇本,能夠組合既有程序地實(shí)現(xiàn)各種各樣狀況下的動(dòng)作測(cè)試。另外,由于不僅備有WebEditSet函數(shù)這樣的用于操作測(cè)試對(duì)象機(jī)器的函數(shù),還備有WebScreenCapture函數(shù)這樣的用于輔助動(dòng)作測(cè)試的函數(shù),所以易于進(jìn)一步提高動(dòng)作測(cè)試的效率和可靠性。
(參考技術(shù)2)在參考技術(shù)2中,提出一種對(duì)上述參考技術(shù)I改良后的動(dòng)作檢驗(yàn)裝置100。首先,比較參考技術(shù)I中的動(dòng)作檢驗(yàn)裝置100和參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100來說明參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100的概要。圖11表示參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100和參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100各自中的構(gòu)成的概要。如圖11的(a)所示,參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100具有作為動(dòng)作測(cè)試的執(zhí)行引擎的QTP模塊102和用于使利用了 QTP模塊102的網(wǎng)頁(yè)服務(wù)器400的動(dòng)作測(cè)試高效化的包裝器(Wrapper)模塊104。該包裝器模塊104包含圖4所示的各功能塊。在圖11的(a)中,用戶通過QTP模塊102操作作為動(dòng)作確認(rèn)的對(duì)象裝置的網(wǎng)頁(yè)服務(wù)器400 (SlOO)0包裝器模塊104從QTP模塊102取得記錄有其操作內(nèi)容的日志,將函數(shù)設(shè)定畫面210提供給用戶(S102)。用戶在動(dòng)作測(cè)試執(zhí)行時(shí),使得在包裝器模塊104中生成 QTP模塊可讀的動(dòng)作測(cè)試用程序,并使QTP模塊102執(zhí)行該程序(S104)。與此不同,圖11的(b)所示的參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100具有統(tǒng)合了動(dòng)作測(cè)試的執(zhí)行引擎的功能和包裝器模塊104的功能的統(tǒng)合檢驗(yàn)?zāi)K106。用戶通過統(tǒng)合檢驗(yàn)?zāi)K106操作網(wǎng)頁(yè)服務(wù)器400時(shí)(S200),統(tǒng)合檢驗(yàn)?zāi)K106逐次檢測(cè)出其操作內(nèi)容,設(shè)定函數(shù)設(shè)定畫面210的數(shù)據(jù),并將函數(shù)設(shè)定畫面210提供給用戶(S202)。用戶在執(zhí)行動(dòng)作測(cè)試的時(shí)候,使得在統(tǒng)合檢驗(yàn)?zāi)K106中生成并執(zhí)行動(dòng)作測(cè)試用程序(S204)。圖12表示參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100和參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100各自中的動(dòng)作的概要。圖12的(a)表示出參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100中的動(dòng)作的概要。用戶執(zhí)行對(duì)網(wǎng)頁(yè)服務(wù)器400的數(shù)據(jù)輸入操作(S110),QTP模塊102輸出記錄了其操作內(nèi)容的日志(S112)。用戶將該日志的數(shù)據(jù)復(fù)制到QTP模塊102的預(yù)定的輸入?yún)^(qū)域(S114)。包裝器模塊104基于被設(shè)定在預(yù)定的輸入?yún)^(qū)域中的日志的數(shù)據(jù),設(shè)定函數(shù)設(shè)定畫面并使之顯示(S116),用戶通過該函數(shù)設(shè)定畫面設(shè)定應(yīng)追加、變更的函數(shù)輸入數(shù)據(jù)(S118)。包裝器模塊104基于函數(shù)設(shè)定畫面的數(shù)據(jù)生成用于動(dòng)作測(cè)試的QTP用程序(S120)。用戶將QTP用程序復(fù)制到QTP模塊102的預(yù)定的輸入?yún)^(qū)域(S122)。用戶在事例設(shè)定畫面中設(shè)定以QTP用程序和輸入數(shù)據(jù)文件為集(set)而指定的動(dòng)作測(cè)試的劇本(S124)。包裝器模塊104基于該劇本,將QTP用程序和輸入數(shù)據(jù)文件的集交給QTP模塊102,按每個(gè)集來使動(dòng)作測(cè)試執(zhí)行(S126 )。圖12的(b)表示出參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中的動(dòng)作的概要。用戶執(zhí)行對(duì)網(wǎng)頁(yè)服務(wù)器400的數(shù)據(jù)輸入操作(S210)。統(tǒng)合檢驗(yàn)?zāi)K106逐次檢測(cè)出其數(shù)據(jù)輸入操作,將與數(shù)據(jù)輸入操作對(duì)應(yīng)的函數(shù)記錄到操作內(nèi)容文件中,并在函數(shù)設(shè)定畫面中顯示該操作內(nèi)容文件的記錄數(shù)據(jù)(S212)。用戶通過該函數(shù)設(shè)定畫面將應(yīng)追加、變更的函數(shù)和輸入數(shù)據(jù)設(shè)定在操作內(nèi)容文件中(S214)。然后,用戶在事例設(shè)定畫面中設(shè)定以操作內(nèi)容文件和輸入數(shù)據(jù)文件為集而指定的動(dòng)作測(cè)試的劇本(S216)。統(tǒng)合檢驗(yàn)?zāi)K106基于該劇本生成集約了劇本內(nèi)的一個(gè)以上集的動(dòng)作測(cè)試用程序并執(zhí)行(S218 )。這樣,在參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100中,QTP模塊102和包裝器模塊104是分離的。因此,為使兩模塊聯(lián)系起來,需要用戶自己來執(zhí)行中介作業(yè)。另外,包裝器模塊104需要針對(duì)劇本內(nèi)的每個(gè)集來調(diào)用QTP模塊102,需要按每個(gè)集來使測(cè)試用程序執(zhí)行。與此不同,在參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中,動(dòng)作測(cè)試的執(zhí)行引擎和實(shí)現(xiàn)其高效利用的包裝器并不相分離,而是被無縫地統(tǒng)合在一起。因此,與參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100相比,原本為使相分離的模塊聯(lián)系起來而所需的用戶作業(yè)變得不再需要,用于動(dòng)作測(cè)試的用戶的作業(yè)量降低了。另外,由于是生成將劇本內(nèi)的多個(gè)集集約起來的動(dòng)作測(cè)試用程序,并通過該程序的執(zhí)行而執(zhí)行ー連串劇本,所以能實(shí)現(xiàn)迅速的動(dòng)作測(cè)試。圖13是表示參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100的功能構(gòu)成的框圖。該圖的功能塊被包含在圖11的(b)所示的統(tǒng)合檢驗(yàn)?zāi)K106中。參考技術(shù)2的功能塊中與參考技術(shù)I的功能塊對(duì)應(yīng)的功能塊被標(biāo)注了相同的標(biāo)號(hào)。關(guān)于賦予了與參考技術(shù)I的功能塊相同標(biāo)號(hào)的功能塊,僅在其功能不同于參考技術(shù)I中已述的內(nèi)容時(shí)進(jìn)行說明,對(duì)于同樣的功能省略其說明。數(shù)據(jù)保持部140具有操作內(nèi)容文件保持部143、程序保持部144、輸入數(shù)據(jù)文件保持部146、事例文件保持部148、函數(shù)保持部150。操作內(nèi)容文件保持部143用于存儲(chǔ)記錄有應(yīng)設(shè)定在動(dòng)作測(cè)試用程序中的函數(shù)的操作內(nèi)容文件。程序保持部144存儲(chǔ)按操作內(nèi)容文件 而生成的動(dòng)作測(cè)試用程序。IF部110的輸入部112具有操作檢測(cè)部115和用戶設(shè)定受理部117。操作檢測(cè)部115逐次檢測(cè)出用戶對(duì)網(wǎng)頁(yè)服務(wù)器400的數(shù)據(jù)輸入操作。用戶設(shè)定受理部117檢測(cè)用戶對(duì)函數(shù)設(shè)定畫面210、輸入設(shè)定畫面230、事例設(shè)定畫面240的設(shè)定信息。IF部110的輸出部118具有函數(shù)設(shè)定畫面顯示部120、輸入設(shè)定畫面顯示部122、事例設(shè)定畫面顯示部126。函數(shù)設(shè)定畫面顯示部120使函數(shù)設(shè)定畫面210顯示在預(yù)定的顯示裝置中,該函數(shù)設(shè)定畫面210用于顯示被記錄在操作內(nèi)容文件保持部143中的操作內(nèi)容文件的內(nèi)容。數(shù)據(jù)處理部130具有程序生成部132、程序執(zhí)行部134、測(cè)試事例登錄部136、操作記錄部137、輸入數(shù)據(jù)記錄部138。操作記錄部137參照函數(shù)保持部150來確定與在操作檢測(cè)部115中被檢測(cè)出的數(shù)據(jù)輸入操作對(duì)應(yīng)的函數(shù),將該函數(shù)記錄在操作內(nèi)容文件中。另外,操作記錄部137將用戶對(duì)函數(shù)設(shè)定畫面210的設(shè)定信息記錄在操作內(nèi)容文件中。輸入數(shù)據(jù)記錄部138將用戶通過輸入設(shè)定畫面230輸入的輸入數(shù)據(jù)記錄在輸入數(shù)據(jù)文件中。程序生成部132根據(jù)被記錄在操作內(nèi)容文件中的函數(shù)而生成動(dòng)作測(cè)試用程序。程序執(zhí)行部134作為動(dòng)作測(cè)試的執(zhí)行引擎而執(zhí)行動(dòng)作測(cè)試用程序,并將其結(jié)果記錄到結(jié)果保持部152中。圖14是參考技術(shù)2中至檢測(cè)出用戶的數(shù)據(jù)輸入操作并執(zhí)行動(dòng)作測(cè)試為止的示意圖。首先,用戶操作客戶端終端的網(wǎng)頁(yè)瀏覽器訪問網(wǎng)頁(yè)服務(wù)器400,執(zhí)行對(duì)網(wǎng)頁(yè)服務(wù)器400的各種操作,典型的是執(zhí)行對(duì)網(wǎng)頁(yè)服務(wù)器400所提供的網(wǎng)頁(yè)的數(shù)據(jù)輸入操作。操作檢測(cè)部115逐次檢測(cè)用戶的數(shù)據(jù)輸入操作,操作記錄部137讀取函數(shù)保持部150的函數(shù)庫(kù),將與該數(shù)據(jù)輸入操作對(duì)應(yīng)的函數(shù)逐次記錄到操作內(nèi)容文件中(S220)。接下來,函數(shù)設(shè)定畫面顯示部120讀取操作內(nèi)容文件保持部143的操作內(nèi)容文件,使一覽顯示與用戶的操作對(duì)應(yīng)的函數(shù)的函數(shù)設(shè)定畫面顯示出來。在函數(shù)設(shè)定畫面中,用戶能夠根據(jù)需要追加、變更、刪除函數(shù),并且能夠設(shè)定應(yīng)靜態(tài)地設(shè)定在動(dòng)作測(cè)試用程序中的輸入數(shù)據(jù)。這樣,應(yīng)包含在動(dòng)作測(cè)試用程序中的函數(shù)就被確定了。關(guān)于函數(shù)設(shè)定畫面,將結(jié)合圖15和圖16在后面敘述。接下來,輸入設(shè)定畫面顯示部122使輸入設(shè)定畫面230顯示出來。用戶通過輸入設(shè)定畫面230設(shè)定應(yīng)在動(dòng)作測(cè)試執(zhí)行時(shí)動(dòng)態(tài)地提供給動(dòng)作測(cè)試用程序的輸入數(shù)據(jù)。用戶所設(shè)定的輸入數(shù)據(jù)被記錄在輸入數(shù)據(jù)文件中(S222)。關(guān)于輸入設(shè)定畫面230,將結(jié)合圖17在后面敘述。接下來,事例設(shè)定畫面顯示部126使事例設(shè)定畫面240顯示出來。用戶基于多種操作內(nèi)容文件以及多種輸入數(shù)據(jù)文件,將操作內(nèi)容文件和輸入數(shù)據(jù)文件的組合登錄為執(zhí)行集。測(cè)試事例登錄部136將一個(gè)以上的執(zhí)行集記錄在事例文件中(S224)。例如,在測(cè)試事例I中,若要在基于輸入數(shù)據(jù)文件F12使操作內(nèi)容文件R)1的設(shè)定內(nèi)容執(zhí)行后,再基于輸入數(shù)據(jù)文件F16使操作內(nèi)容文件H)2的設(shè)定內(nèi)容執(zhí)行,則以測(cè)試事例I :執(zhí)行集I :操作內(nèi)容文件H)1 +輸入數(shù)據(jù)文件F12執(zhí)行集2 :操作內(nèi)容文件R)2 +輸入數(shù)據(jù)文件F16
的形式登錄到事例文件中。關(guān)于事例設(shè)定畫面240,將結(jié)合圖18在后面敘述。接下來,程序生成部132基于事例文件和操作內(nèi)容文件生成動(dòng)作測(cè)試用程序(S226)。具體來說,可以將被依次記錄在執(zhí)行集所設(shè)定的操作內(nèi)容文件中的函數(shù),依次設(shè)定為動(dòng)作測(cè)試用程序的程序代碼。另外,在一個(gè)測(cè)試事例中設(shè)定有多個(gè)執(zhí)行集時(shí),程序生成部132將被記錄在各執(zhí)行集的操作內(nèi)容文件中的函數(shù)集約設(shè)定成一個(gè)動(dòng)作測(cè)試用程序。另外,在針對(duì)操作內(nèi)容文件的函數(shù)設(shè)定有輸入數(shù)據(jù)本身的情況下,程序生成部132將該輸入數(shù)據(jù)靜態(tài)地設(shè)定到動(dòng)作測(cè)試用程序中。例如,在生成動(dòng)作測(cè)試用程序時(shí),預(yù)先設(shè)定輸入數(shù)據(jù)作為該程序代碼中的函數(shù)的自變量。另外,在針對(duì)操作內(nèi)容文件的函數(shù)指定有輸入數(shù)據(jù)文件的情況下,進(jìn)行設(shè)定使得在程序執(zhí)行時(shí)讀入該輸入數(shù)據(jù)文件的數(shù)據(jù)。最后,程序執(zhí)行部134執(zhí)行動(dòng)作測(cè)試用程序,再現(xiàn)用戶對(duì)網(wǎng)頁(yè)服務(wù)器400執(zhí)行的一連串操作(S228)。對(duì)于需要輸入數(shù)據(jù)文件的數(shù)據(jù)的函數(shù),將動(dòng)作測(cè)試用程序執(zhí)行時(shí)所讀入的輸入數(shù)據(jù)文件的數(shù)據(jù)作為自變量傳遞給它。即,基于從輸入數(shù)據(jù)文件動(dòng)態(tài)地取得的輸入數(shù)據(jù)來執(zhí)行函數(shù)。圖15是函數(shù)設(shè)定畫面210的畫面圖。該圖表示了顯示將在后面的圖18中敘述的“檢索記入.xls”的函數(shù)設(shè)定畫面210。數(shù)據(jù)文件列名(column name)欄250是用于指定輸入數(shù)據(jù)文件的列名的區(qū)域,該輸入數(shù)據(jù)文件記錄有要設(shè)定給變量的輸入數(shù)據(jù)。用戶可以在輸入值欄217中記述輸入數(shù)據(jù)本身,也可以不這樣,而是在數(shù)據(jù)文件列名欄250中指定輸入數(shù)據(jù)文件的列名。當(dāng)數(shù)據(jù)文件列名欄250內(nèi)有輸入數(shù)據(jù)文件的列名被指定時(shí),在動(dòng)作測(cè)試用程序執(zhí)行時(shí),被設(shè)定在該輸入數(shù)據(jù)文件的列中的一個(gè)以上的輸入數(shù)據(jù)會(huì)被讀取并傳遞給函數(shù)。圖16是參考技術(shù)2中的函數(shù)設(shè)定畫面210的畫面圖。在該圖的“檢索部署名”變量的輸入值欄217中,輸入數(shù)據(jù)的候選被用下拉列表252 —覽顯不。下拉列表252中所顯示的輸入數(shù)據(jù)候選,是在用戶對(duì)網(wǎng)頁(yè)進(jìn)行數(shù)據(jù)輸入時(shí)被顯示在該網(wǎng)頁(yè)的下拉列表中的輸入數(shù)據(jù)候選。用戶可以從下拉列表252中選擇輸入數(shù)據(jù),能減輕用戶在設(shè)定輸入數(shù)據(jù)過程中的負(fù)擔(dān)。為設(shè)定下拉列表252,操作檢測(cè)部115取得在用戶對(duì)網(wǎng)頁(yè)進(jìn)行數(shù)據(jù)輸入操作時(shí)顯示在該網(wǎng)頁(yè)的下拉列表中的輸入數(shù)據(jù)的候選。例如,基于從網(wǎng)頁(yè)服務(wù)器400取得的網(wǎng)頁(yè)的數(shù)據(jù)、例如HTML數(shù)據(jù),取得下拉列表中的輸入數(shù)據(jù)候選。操作記錄部137將該輸入數(shù)據(jù)候選記錄在操作內(nèi)容文件的輸入值欄217中。函數(shù)設(shè)定畫面顯示部120在輸入值欄217有輸入時(shí),使被記錄在操作內(nèi)容文件中的輸入數(shù)據(jù)候選以下拉列表的形式一覽顯示出來。圖17是參考技術(shù)2中的輸入設(shè)定畫面230的畫面圖。圖17的(a)表示了輸入設(shè)定畫面230,該輸入設(shè)定畫面230顯示在圖15和圖16的函數(shù)設(shè)定畫面210中被指定了列名的輸入數(shù)據(jù)文件“檢索記入數(shù)據(jù).xls”。在圖15和圖16中,圖17的(a)的“姓名漢字”列和“姓名讀音”列被指定了。圖17的(b)表示了顯示另ー輸入數(shù)據(jù)文件“登入數(shù)據(jù)2. xls”的輸入設(shè)定畫面230。關(guān)于該圖的輸入數(shù)據(jù)文件,將結(jié)合圖18在后面敘述。圖18是參考技術(shù)2中的事例設(shè)定畫面240的畫面圖。執(zhí)行編號(hào)欄253中被設(shè)定各執(zhí)行集的基本的執(zhí)行順序,測(cè)試事例ID欄254中被設(shè)定測(cè)試事例的識(shí)別信息。組(group)ID欄256中被設(shè)定表示執(zhí)行集的重復(fù)處理的組的識(shí)別信息,行編號(hào)欄258中被設(shè)定動(dòng)作測(cè)試中的輸入數(shù)據(jù)文件的參照范圍。操作內(nèi)容文件欄260被設(shè)定各執(zhí)行集中的操作內(nèi)容文件,輸入數(shù)據(jù)文件欄262被設(shè)定各執(zhí)行集的輸入數(shù)據(jù)文件。事例設(shè)定畫面240中的設(shè)定內(nèi)容被作為事例文件存儲(chǔ)在事例文件保持部148中。
在事例設(shè)定畫面240中測(cè)試執(zhí)行按鈕264被按下時(shí),程序生成部132按照事例文件和操作內(nèi)容文件生成動(dòng)作測(cè)試用程序。具體來說,基于在事例文件中被設(shè)定相同測(cè)試事例ID的ー個(gè)以上的操作內(nèi)容文件,生成各操作內(nèi)容文件所記錄的函數(shù)被設(shè)定為程序代碼后的一個(gè)動(dòng)作測(cè)試用程序。例如,程序生成部132按照記錄有圖18的事例設(shè)定畫面240的內(nèi)容的事例文件,生成用于執(zhí)行登錄事例的一個(gè)動(dòng)作測(cè)試用程序和用于執(zhí)行檢索事例的一個(gè)動(dòng)作測(cè)試用程序。所謂“ー個(gè)動(dòng)作測(cè)試用程序”,意思是被作為ー個(gè)執(zhí)行單位來執(zhí)行的程序,換言之是在一次執(zhí)行機(jī)會(huì)中被執(zhí)行的程序,與其物理上的程序數(shù)量無關(guān)。程序執(zhí)行部134在執(zhí)行各操作內(nèi)容文件內(nèi)所記錄的ー個(gè)函數(shù)時(shí),將與該操作內(nèi)容文件相對(duì)應(yīng)的輸入數(shù)據(jù)文件的數(shù)據(jù)中、在操作內(nèi)容文件中與該函數(shù)相對(duì)應(yīng)的列的數(shù)據(jù)傳遞給該函數(shù)。另外,程序執(zhí)行部134將在同一測(cè)試事例中被賦予相同組ID的多個(gè)執(zhí)行集作為應(yīng)執(zhí)行相同重復(fù)處理的相同組來處理。具體來說,重復(fù)進(jìn)行被賦予相同組ID的多個(gè)執(zhí)行集的執(zhí)行,在每次重復(fù)執(zhí)行時(shí),向被記錄在各執(zhí)行集的操作內(nèi)容文件中的函數(shù)傳遞被記錄在輸入數(shù)據(jù)文件中的預(yù)定數(shù)量的記錄(record)。在參考技術(shù)2中,假定每次重復(fù)時(shí)將被記錄在輸入數(shù)據(jù)文件中的一個(gè)記錄(record)傳遞給函數(shù)。另外,也可以在程序生成部132中生成已將用于執(zhí)行上述處理的重復(fù)命令設(shè)定在程序代碼中的動(dòng)作測(cè)試用程序。另外,針對(duì)被指定了行編號(hào)的執(zhí)行集,程序執(zhí)行部134將在輸入數(shù)據(jù)文件中以該行編號(hào)所確定的輸入數(shù)據(jù)傳遞給該操作內(nèi)容文件中所記錄的函數(shù)。因此,在被指定了基于組ID的重復(fù)處理,并進(jìn)一歩被指定了行編號(hào)的情況下,就重復(fù)執(zhí)行行編號(hào)所指定的次數(shù)。例如,在圖18的登錄事例中,沒有設(shè)定跨執(zhí)行集的組,在各執(zhí)行集中被執(zhí)行ー個(gè)輸入數(shù)據(jù)量的處理。與此不同,在圖18的檢索事例中,各執(zhí)行集中的ー個(gè)輸入數(shù)據(jù)量的處理被重復(fù)執(zhí)行三次。具體來說,在第一次的重復(fù)中,登入數(shù)據(jù)2. xls的第35行的數(shù)據(jù)“t_yamada”被傳遞給登入2. xls中所記錄的函數(shù)。并且,檢索記入數(shù)據(jù).xls的第I行姓名漢字的數(shù)據(jù)“山田太郎”被傳遞給檢索記入.xls中所記錄的函數(shù)、具體來說是圖15的Nol的函數(shù)。此外,檢索記入數(shù)據(jù).xls的第I行姓名讀音的數(shù)據(jù)“ヤマダタロウ”被傳遞給圖15的No2的函數(shù)。
在第二次的重復(fù)中,登入數(shù)據(jù)2. xls的第36行的數(shù)據(jù)“h_yamada”被傳遞給登入2. xls中所記錄的函數(shù)。并且,檢索記入數(shù)據(jù).xls的第2行姓名漢字的數(shù)據(jù)“山田花子”被傳遞給檢索記入.xls中所記錄的圖15的Nol的函數(shù)。此外,檢索記入數(shù)據(jù).xls的第2行姓名讀音的數(shù)據(jù)“ W夕' ^ f - ”被傳遞給圖15的No2的函數(shù)。在第三次的重復(fù)中也是一樣,遞增后的行編號(hào)中的輸入數(shù)據(jù)被傳遞給各函數(shù)。在參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中,也能發(fā)揮在參考技術(shù)I中說明過的效果。具體來說,由于實(shí)現(xiàn)了處理與變量的分離以及基于GUI的設(shè)定,所以能夠既確保包含在動(dòng)作測(cè)試用程序中的邏輯的多樣性,又能簡(jiǎn)單地生成質(zhì)量穩(wěn)定的程序。此外,通過輸入數(shù)據(jù)文件的設(shè)定,容易擴(kuò)展動(dòng)作測(cè)試的變化。此外,通過事例文件的設(shè)定,能實(shí)現(xiàn)各種各樣的劇本下的動(dòng)作測(cè)試。在參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中,執(zhí)行動(dòng)作測(cè)試用程序的執(zhí)行引擎功能和實(shí) 現(xiàn)執(zhí)行引擎的高效利用的包裝器功能無縫地、不需要用戶中介地聯(lián)系在一起。由此,能夠減輕用于執(zhí)行動(dòng)作測(cè)試的用戶的負(fù)擔(dān)。此外,與參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100時(shí)不同,用戶無需熟悉QTP的項(xiàng)目等用于程序執(zhí)行的環(huán)境。即,只要設(shè)定用戶容易理解操作的形式的操作內(nèi)容文件和輸入數(shù)據(jù)文件即可。由此,用戶能夠容易地實(shí)施動(dòng)作測(cè)試。在參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中,是生成一個(gè)集約了同一測(cè)試事例的多個(gè)執(zhí)行集的動(dòng)作測(cè)試用程序,并執(zhí)行該一個(gè)動(dòng)作測(cè)試用程序的。與參考技術(shù)I的動(dòng)作檢驗(yàn)裝置100中的按執(zhí)行集、即按照基于執(zhí)行集生成的每個(gè)QTP項(xiàng)目進(jìn)行執(zhí)行的情況相比,能夠降低在執(zhí)行一個(gè)測(cè)試事例中的一連串動(dòng)作測(cè)試時(shí)的系統(tǒng)開銷(overhead),能實(shí)現(xiàn)迅速的動(dòng)作測(cè)試。在參考技術(shù)2的動(dòng)作檢驗(yàn)裝置100中,還能夠設(shè)定跨多個(gè)執(zhí)行集重復(fù)的組。由此,能夠靈活分割執(zhí)行集,能夠靈活設(shè)定動(dòng)作測(cè)試的劇本。此外,還能夠設(shè)定輸入數(shù)據(jù)文件的參照范圍。由此,即使輸入數(shù)據(jù)文件相同,也能夠根據(jù)劇本靈活地變更參照范圍,能夠容易地實(shí)現(xiàn)各種各樣變化的動(dòng)作測(cè)試。在上述的參考技術(shù)2中,作為對(duì)函數(shù)設(shè)定畫面210中的值設(shè)定進(jìn)行輔助的例子,表示出了下拉列表252。在變形例中,網(wǎng)頁(yè)中的單選按鈕、復(fù)選框、列表框等以可選方式顯示的輸入數(shù)據(jù)候選也可以被以下拉列表252或其它形式可選地顯示在函數(shù)設(shè)定畫面210中。即,在對(duì)動(dòng)作確認(rèn)對(duì)象機(jī)器進(jìn)行數(shù)據(jù)輸入操作時(shí)以各種各樣的可選形式顯示給用戶的輸入數(shù)據(jù)候選,也可以在函數(shù)設(shè)定畫面210中的值設(shè)定時(shí)被可選地顯示出來。在上述的參考技術(shù)I中,QTP受理用戶對(duì)網(wǎng)頁(yè)服務(wù)器400的操作,動(dòng)作檢驗(yàn)裝置100以生成了日志為條件生成動(dòng)作測(cè)試用程序。另外,在上述參考技術(shù)2中,動(dòng)作檢驗(yàn)裝置100檢測(cè)用戶對(duì)網(wǎng)頁(yè)服務(wù)器400的操作,來生成動(dòng)作測(cè)試用程序。作為變形例,在動(dòng)作檢驗(yàn)裝置100中也可以在從網(wǎng)頁(yè)服務(wù)器400取得了 HTML文件的時(shí)點(diǎn)生成動(dòng)作測(cè)試用程序。在該情況下,動(dòng)作檢驗(yàn)裝置100檢索被包含在HTML文件中的表單(form)標(biāo)簽,確定HTML文件中包含有什么樣的輸入接口。然后,只要選擇用于將數(shù)據(jù)輸入到各輸入接口的函數(shù)并將這些函數(shù)按各種順序排列,即使沒有用戶明示的網(wǎng)頁(yè)操作,也能生成測(cè)試用的程序。(參考技術(shù)3)首先,說明參考技術(shù)3的概要。目前公開有非常多的網(wǎng)頁(yè)瀏覽器,用戶的PC中也有多種網(wǎng)頁(yè)瀏覽器被使用。因此,作為動(dòng)作檢驗(yàn)裝置,希望能夠支持針對(duì)多種網(wǎng)頁(yè)瀏覽器的網(wǎng)頁(yè)的動(dòng)作測(cè)試。此時(shí),動(dòng)作檢驗(yàn)裝置需要根據(jù)網(wǎng)頁(yè)瀏覽器的規(guī)格操作網(wǎng)頁(yè)瀏覽器,其方法大致可分為以下兩種。以下也將成為動(dòng)作測(cè)試對(duì)象的網(wǎng)頁(yè)稱為“測(cè)試對(duì)象頁(yè)”。方式I.來自外部的操作通過調(diào)用網(wǎng)頁(yè)瀏覽器對(duì)外公開的API、即接受對(duì)正顯示在網(wǎng)頁(yè)瀏覽器中的測(cè)試對(duì)象頁(yè)的輸入操作的接ロ(以下也稱“操作IF”),來從外部操作網(wǎng)頁(yè)瀏覽器。本參考技術(shù)3的操作IF具體來說是用于對(duì)測(cè)試對(duì)象頁(yè)輸入數(shù)據(jù)、執(zhí)行測(cè)試對(duì)象頁(yè)的表單(form)、以及對(duì)網(wǎng)頁(yè)服務(wù)器的GET請(qǐng)求(Request)和POST請(qǐng)求(Request)的函數(shù)。方式2.來自內(nèi)部的操作向測(cè)試對(duì)象頁(yè)的程序代碼(即HTML文件)追記接受對(duì)測(cè)試對(duì)象頁(yè)的輸入操作,并使 網(wǎng)頁(yè)瀏覽器執(zhí)行該輸入操作的腳本文件(以下也稱“控制代碼”)。然后,通過調(diào)用該控制代碼來從內(nèi)部操作網(wǎng)頁(yè)瀏覽器。換言之,通過被預(yù)先編入網(wǎng)頁(yè)瀏覽器所表示的網(wǎng)頁(yè)中的腳本文件來操作該網(wǎng)頁(yè)瀏覽器。本參考技術(shù)3的控制代碼是記述了包含接受外部對(duì)測(cè)試對(duì)象頁(yè)的輸入操作的接ロ功能的函數(shù)的程序代碼。并且還是記述了包含通過操作測(cè)試對(duì)象頁(yè)的DOM樹來更新測(cè)試對(duì)象頁(yè)的顯示內(nèi)容的功能、發(fā)送對(duì)網(wǎng)頁(yè)服務(wù)器的GET請(qǐng)求和POST請(qǐng)求的功能的函數(shù)的程序代碼。控制代碼也可以用預(yù)定的腳本語言(例如JAVA腳本(“JAVA”是注冊(cè)商標(biāo)))來記述。圖19表示對(duì)網(wǎng)頁(yè)瀏覽器的兩種操作方式的特征。該圖是來自外部的操作方式與來自內(nèi)部的操作方式的比較圖。在被認(rèn)為最重要的動(dòng)作測(cè)試本身的可靠性方面,由于來自內(nèi)部的操作方式是改寫測(cè)試對(duì)象頁(yè)的操作,所以可以說來自外部的操作方式更佳。而在適合性和通用性方面,由于來自外部的操作方式是依賴于網(wǎng)頁(yè)瀏覽器中的操作IF的操作,所以可以說來自內(nèi)部的操作方式更佳。因此,在本參考技術(shù)3中,提出ー種如果動(dòng)作測(cè)試所使用的網(wǎng)頁(yè)瀏覽器的操作IF是公開的,則從外部操作網(wǎng)頁(yè)瀏覽器,而如果操作IF是非公開的,則從內(nèi)部操作網(wǎng)頁(yè)瀏覽器的動(dòng)作檢驗(yàn)裝置。由此,能夠在盡可能地確保動(dòng)作測(cè)試的可靠性的同時(shí),支持基于各種各樣的網(wǎng)頁(yè)瀏覽器的動(dòng)作測(cè)試。圖20針對(duì)對(duì)網(wǎng)頁(yè)瀏覽器的兩種操作方式,示意性地示出了功能間的調(diào)用關(guān)系。網(wǎng)頁(yè)服務(wù)器400是提供測(cè)試對(duì)象頁(yè)的信息處理裝置。以瀏覽器402為總稱的瀏覽器A402a、瀏覽器B402b、瀏覽器C402c、瀏覽器D402d是作為HTTP用戶代理而發(fā)揮功能的網(wǎng)頁(yè)瀏覽器,執(zhí)行測(cè)試對(duì)象頁(yè)的顯示處理、操作處理等。另外,假定該圖的瀏覽器A402a和瀏覽器B402b將其操作IF對(duì)外公開,而瀏覽器C402c和瀏覽器D402d不公開其操作IF。以個(gè)別瀏覽器用引擎404為總稱的瀏覽器A用引擎404a和瀏覽器B用引擎404b分別是調(diào)用瀏覽器A402a和瀏覽器B402b各自的操作IF的程序代碼。通用IF406是用于調(diào)用多種瀏覽器402各自的操作IF的接ロ,是具有不依賴于多種瀏覽器402各自不同的操作IF的通用格式的接ロ的程序代碼。以個(gè)別瀏覽器用引擎驅(qū)動(dòng)器408為總稱的瀏覽器A用弓I擎驅(qū)動(dòng)器408a、瀏覽器B用引擎驅(qū)動(dòng)器408b通過將不依賴于瀏覽器402的種類的通用IF406格式的數(shù)據(jù)變換成按各瀏覽器402而不同的操作IF格式的數(shù)據(jù),來橋接動(dòng)作測(cè)試用程序和個(gè)別瀏覽器用引擎404。代理(proxy)服務(wù)器410作為瀏覽器402的代理,發(fā)揮從網(wǎng)頁(yè)服務(wù)器取得測(cè)試對(duì)象頁(yè)的反向代理的功能。代理服務(wù)器410在向測(cè)試對(duì)象頁(yè)追加控制代碼后,將該測(cè)試對(duì)象頁(yè)提供給瀏覽器C402c和瀏覽器D402d。內(nèi)部操作引擎412介由代理服務(wù)器410調(diào)用被附加在測(cè)試對(duì)象頁(yè)中的控制代碼。內(nèi)部操作引擎驅(qū)動(dòng)器414通過將通用IF406格式的數(shù)據(jù)變換成用于調(diào)用控制代碼的預(yù)定格式的數(shù)據(jù),來橋接動(dòng)作測(cè)試用程序和內(nèi)部操作引擎412。下面說明圖20的動(dòng)作。當(dāng)顯示測(cè)試對(duì)象頁(yè)的網(wǎng)頁(yè)瀏覽器是瀏覽器A402a或?yàn)g覽器B402b時(shí),動(dòng)作測(cè)試用程序調(diào)用通用IF406。伴隨于此,網(wǎng)頁(yè)瀏覽器的操作IF被介由個(gè)別瀏覽器用引擎驅(qū)動(dòng)器408和個(gè)別瀏覽器用引擎404而調(diào)用,由此,網(wǎng)頁(yè)瀏覽器被操作,對(duì)測(cè)試對(duì)象頁(yè)的輸入操作被實(shí)現(xiàn)。另一方面,當(dāng)顯示測(cè)試對(duì)象頁(yè)的網(wǎng)頁(yè)瀏覽器是瀏覽器C402c或?yàn)g覽器D402d時(shí),代理服務(wù)器410向測(cè)試對(duì)象頁(yè)追加控制代碼,并使該測(cè)試對(duì)象頁(yè)顯示在網(wǎng)頁(yè)瀏覽器中。此時(shí),動(dòng)作測(cè)試用程序也是調(diào)用通用IF406,被附加在測(cè)試對(duì)象頁(yè)中的控制代碼被介由內(nèi)部操作引擎驅(qū)動(dòng)器414、內(nèi)部操作引擎412、代理服務(wù)器410地調(diào)用。由此,網(wǎng)頁(yè)瀏覽器被不介由網(wǎng)頁(yè)瀏覽器的操作IF地操作,對(duì)測(cè)試對(duì)象頁(yè)的輸入操作被實(shí)現(xiàn)。
通過圖20的結(jié)構(gòu),網(wǎng)頁(yè)瀏覽器的接口的差異被個(gè)別瀏覽器用引擎驅(qū)動(dòng)器408和內(nèi)部操作引擎驅(qū)動(dòng)器414所吸收。由此,動(dòng)作測(cè)試用程序能夠不依賴于網(wǎng)頁(yè)的動(dòng)作測(cè)試中所使用的網(wǎng)頁(yè)瀏覽器(以下也稱“測(cè)試執(zhí)行瀏覽器”)的種類,總是通過調(diào)用通用IF406來操作測(cè)試執(zhí)行瀏覽器。換言之,通過同一個(gè)動(dòng)作測(cè)試用程序就能使基于多種網(wǎng)頁(yè)瀏覽器的動(dòng)作測(cè)試自動(dòng)執(zhí)行。圖21是表示參考技術(shù)3的動(dòng)作檢驗(yàn)裝置的功能構(gòu)成的框圖。對(duì)該圖的功能塊中的與參考技術(shù)I和2所示的動(dòng)作檢驗(yàn)裝置100的功能塊對(duì)應(yīng)的功能塊標(biāo)注相同的標(biāo)號(hào)。關(guān)于標(biāo)注了相同標(biāo)號(hào)的功能塊,僅在其功能不同于參考技術(shù)I和2中已述的內(nèi)容時(shí)再進(jìn)行說明,對(duì)于同樣的功能,由于已經(jīng)說明過了,故適當(dāng)省略其說明。動(dòng)作檢驗(yàn)裝置100除圖13所示的功能塊外還具有瀏覽器處理部160。瀏覽器處理部160對(duì)應(yīng)于圖20的瀏覽器402,作為網(wǎng)頁(yè)瀏覽器而發(fā)揮功能。當(dāng)然,也可以是一個(gè)動(dòng)作檢驗(yàn)裝置100具有多種瀏覽器處理部160。程序執(zhí)行部134在動(dòng)作測(cè)試用程序的執(zhí)行時(shí),根據(jù)測(cè)試執(zhí)行瀏覽器的種類、換言之根據(jù)瀏覽器處理部160的形態(tài)來選擇來自外部的操作方式或來自內(nèi)部的操作方式而操作瀏覽器處理部160。圖22是表示圖21的程序執(zhí)行部134的詳細(xì)情況的框圖。程序執(zhí)行部134包括測(cè)試主體選擇部162、外部操作執(zhí)行部164、代理處理部166、內(nèi)部操作執(zhí)行部168、佐證物設(shè)定部170。測(cè)試主體選擇部162從預(yù)定的設(shè)定文件或動(dòng)作測(cè)試用程序取得表示測(cè)試執(zhí)行瀏覽器的種類的信息、換言之取得表示瀏覽器處理部160中的操作IF的公開狀況的信息,按照該信息決定動(dòng)作測(cè)試的執(zhí)行主體。例如,可以參照將各種網(wǎng)頁(yè)瀏覽器與各自的操作IF的公開狀況建立起對(duì)應(yīng)關(guān)系的表,來確定測(cè)試執(zhí)行瀏覽器中的操作IF的公開狀況。當(dāng)瀏覽器處理部160是對(duì)外公開操作IF的時(shí),測(cè)試主體選擇部162選擇在后文中敘述的外部操作執(zhí)行部164作為動(dòng)作測(cè)試的執(zhí)行主體。另一方面,當(dāng)瀏覽器處理部160不對(duì)外公開操作IF時(shí),選擇在后文中敘述的代理處理部166和內(nèi)部操作執(zhí)行部168作為動(dòng)作測(cè)試的執(zhí)行主體。外部操作執(zhí)行部164對(duì)應(yīng)于圖20的個(gè)別瀏覽器用引擎404,在動(dòng)作測(cè)試用程序的執(zhí)行時(shí)檢測(cè)動(dòng)作測(cè)試用程序?qū)νㄓ肐F406的調(diào)用。然后,通過調(diào)用瀏覽器處理部160所公開的操作IF,來操作瀏覽器處理部160,執(zhí)行對(duì)測(cè)試對(duì)象頁(yè)的輸入操作。代理處理部166對(duì)應(yīng)于圖20的代理服務(wù)器410,從網(wǎng)頁(yè)服務(wù)器400代理取得瀏覽器處理部160所要求的測(cè)試對(duì)象頁(yè),在測(cè)試對(duì)象頁(yè)的HTML代碼內(nèi)插入控制代碼。然后,將改變后的測(cè)試對(duì)象頁(yè)的HTML代碼發(fā)送給瀏覽器處理部160使之顯示。此外,代理處理部166從后文敘述的內(nèi)部操作執(zhí)行部168接受控制代碼的調(diào)用,調(diào)用已追加到測(cè)試對(duì)象頁(yè)中的控制代碼。代理處理部166與測(cè)試對(duì)象頁(yè)的通信可以采用基于XMLHttpRequest的非同步通ィ目。內(nèi)部操作執(zhí)行部168對(duì)應(yīng)于圖20的內(nèi)部操作引擎412,在動(dòng)作測(cè)試用程序的執(zhí)行吋,檢測(cè)動(dòng)作測(cè)試用程序?qū)νㄓ肐F406的調(diào)用。然后,通過介由代理處理部166地調(diào)用被追加在測(cè)試對(duì)象頁(yè)中的控制代碼,來操作瀏覽器處理部160,執(zhí)行對(duì)測(cè)試對(duì)象頁(yè)的輸入操作。代理處理部166和內(nèi)部操作執(zhí)行部168可以采用被作為測(cè)試自動(dòng)化工具而公開的Selenium(http: //seleniumhq. org/ ;的庫(kù)。 佐證物設(shè)定部170根據(jù)來自外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168的要求,設(shè)定證明動(dòng)作測(cè)試的結(jié)果的數(shù)據(jù)(以下也稱“佐證物”),將該佐證物保存到結(jié)果保持部152中。作為佐證物,可以取得通過瀏覽器處理部160而顯示在顯示器中的測(cè)試對(duì)象頁(yè)的畫面快照,也可以取得在與網(wǎng)頁(yè)服務(wù)器400的HTTP通信中所收發(fā)的數(shù)據(jù)。此外,畫面快照的取得功能可以由動(dòng)作檢驗(yàn)裝置100的操作系統(tǒng)(以下也稱“OS”)提供,HTTP通信數(shù)據(jù)的取得功能可以由被安裝在動(dòng)作檢驗(yàn)裝置100中的抓包軟件提供。下面說明以上結(jié)構(gòu)的動(dòng)作。圖23是表示動(dòng)作檢驗(yàn)裝置100的動(dòng)作的流程圖。該圖表示在動(dòng)作檢驗(yàn)裝置100中動(dòng)作測(cè)試用程序被執(zhí)行時(shí)的動(dòng)作。例如,是表示圖12中的S218的詳細(xì)情況的圖,也是表示圖14中的S228的詳細(xì)情況的圖。在測(cè)試對(duì)象頁(yè)的動(dòng)作測(cè)試開始時(shí),測(cè)試主體選擇部162根據(jù)瀏覽器處理部160中的操作IF的公開狀況選擇動(dòng)作測(cè)試的執(zhí)行引擎(S300)。瀏覽器處理部160要求網(wǎng)頁(yè)服務(wù)器400提供測(cè)試對(duì)象頁(yè)(S302)。當(dāng)在瀏覽器處理部160中操作IF是非公開的時(shí)(S304為N),代理處理部166代理取得測(cè)試對(duì)象頁(yè),在向其HTML代碼追加控制代碼后,將測(cè)試對(duì)象頁(yè)發(fā)送給瀏覽器處理部160 (S306)。如果操作IF沒有被公開(S304為Y),則S306被跳過。瀏覽器處理部160使測(cè)試對(duì)象頁(yè)顯示在預(yù)定的顯示器中(S308)。佐證物設(shè)定部170通過取得測(cè)試對(duì)象頁(yè)的畫面快照等來設(shè)定動(dòng)作測(cè)試的佐證物,并保存到結(jié)果保持部152中(S310)。如果應(yīng)在動(dòng)作測(cè)試中執(zhí)行的所有操作都已執(zhí)行完(S312為Y),則結(jié)束本圖的流程。如果還有未執(zhí)行的操作(S312為N),當(dāng)瀏覽器處理部160中操作IF是公開的時(shí)(S314為Y),外部操作執(zhí)行部164通過調(diào)用該操作IF來執(zhí)行動(dòng)作測(cè)試用程序?qū)y(cè)試對(duì)象頁(yè)的輸入操作(S316)。如果操作IF非公開(S314為N),則內(nèi)部操作執(zhí)行部168通過調(diào)用被追加在測(cè)試對(duì)象頁(yè)中的控制代碼來執(zhí)行動(dòng)作測(cè)試用程序?qū)y(cè)試對(duì)象頁(yè)的輸入操作(S318)。當(dāng)基于對(duì)測(cè)試對(duì)象頁(yè)的操作而被要求提供新的網(wǎng)頁(yè)時(shí)、例如發(fā)生基于GET請(qǐng)求或POST請(qǐng)求等的畫面轉(zhuǎn)移時(shí)(S320為Y),回到S304。如果沒有被要求提供新的網(wǎng)頁(yè)(S320為N),則回到S310。參考技術(shù)3的動(dòng)作檢驗(yàn)裝置100以參考技術(shù)I和參考技術(shù)2中所記載的動(dòng)作檢驗(yàn)裝置100的結(jié)構(gòu)為前提,追加了用于支持多種網(wǎng)頁(yè)瀏覽器中的網(wǎng)頁(yè)的動(dòng)作測(cè)試的結(jié)構(gòu)。因此,本參考技術(shù)3的動(dòng)作檢驗(yàn)裝置100的構(gòu)成不僅具有參考技術(shù)I和參考技術(shù)2所記載的效果,還具有以下效果。在動(dòng)作檢驗(yàn)裝置100中,作為網(wǎng)頁(yè)瀏覽器的操作方式,配置有來自內(nèi)部的操作方式,從而能夠不論網(wǎng)頁(yè)瀏覽器中的操作IF公開與否,都能執(zhí)行多種網(wǎng)頁(yè)瀏覽器中的網(wǎng)頁(yè)的動(dòng)作測(cè)試。另外,在動(dòng)作檢驗(yàn)裝置100中,作為網(wǎng)頁(yè)瀏覽器的操作方式,還配置有來自外部的操作方式,在網(wǎng)頁(yè)瀏覽器公開操作IF的情況下,通過以來自外部的操作方式進(jìn)行動(dòng)作測(cè)試,容易確保動(dòng)作測(cè)試的可靠性。以上說明了參考技術(shù)3的動(dòng)作檢驗(yàn)裝置100。在參考技術(shù)3中,與代理服務(wù)器410對(duì)應(yīng)的代理處理部166是被內(nèi)置在動(dòng)作檢驗(yàn)裝置100中的。在變形例中,代理處理部166也可以是被包含在動(dòng)作檢驗(yàn)裝置100之外的其它信息處理裝置中。如前面所說明的,既可以是單一的動(dòng)作檢驗(yàn)裝置100中安裝有多種網(wǎng)頁(yè)瀏覽器,也可以是動(dòng)作檢驗(yàn)裝置100具有與多種網(wǎng)頁(yè)瀏覽器對(duì)應(yīng)的多個(gè)瀏覽器處理部160。此時(shí),程序執(zhí)行部134可以在各個(gè)網(wǎng)頁(yè)瀏覽器中執(zhí)行測(cè)試對(duì)象頁(yè)的動(dòng)作測(cè)試。S卩,可以針對(duì)各網(wǎng)頁(yè)瀏覽器并行執(zhí)行圖23所示的處理。由于能夠在單一的動(dòng)作檢驗(yàn)裝置100中實(shí)施多種網(wǎng)頁(yè)瀏覽器中的動(dòng)作測(cè)試,所以能實(shí)現(xiàn)高效率且低成本的動(dòng)作測(cè)試。在參考技術(shù)3中,是按照網(wǎng)頁(yè)瀏覽器的種類而選擇來自內(nèi)部的操作方式或來自外部的操作方式的。在變形例中,也可以在單一網(wǎng)頁(yè)瀏覽器的動(dòng)作測(cè)試中組合兩種方式。例如,對(duì)于針對(duì)測(cè)試對(duì)象頁(yè)的操作中的、能利用已公開的操作IF來執(zhí)行的操作,適用來自外部的操作方式,即外部操作執(zhí)行部164調(diào)用操作IF。而對(duì)于不能利用公開的操作IF來執(zhí)行的操作,適用來自內(nèi)部的操作方式,即內(nèi)部操作執(zhí)行部168調(diào)用控制代碼。由于網(wǎng)頁(yè)內(nèi)所記述的腳本代碼一般是被允許廣泛的操作的,所以能夠通過來自內(nèi)部的操作方式來補(bǔ)足依賴于操作IF的規(guī)格而造成的來自外部的操作方式下的制約。(參考技術(shù)4)
在參考技術(shù)4中提出一種與上述參考技術(shù)3相關(guān)聯(lián)、支持基于各種網(wǎng)頁(yè)瀏覽器的網(wǎng)頁(yè)動(dòng)作測(cè)試的動(dòng)作檢驗(yàn)裝置100。以下說明中的“Windows'“Internet Explorer(IE)”、“Firefox (火狐)”、“1^”、“1^05”、“5&€&1^”、“從¥4”等名稱是各公司的商標(biāo)或注冊(cè)商標(biāo)。圖24示意性地表示網(wǎng)頁(yè)的動(dòng)作測(cè)試中的功能間的調(diào)用關(guān)系。該圖的動(dòng)作檢驗(yàn)引擎500表示了動(dòng)作檢驗(yàn)裝置100中的用于網(wǎng)頁(yè)動(dòng)作測(cè)試的核心功能。Windows環(huán)境540表示W(wǎng)indowsOS中的環(huán)境,Mac環(huán)境560表示了 MacOS中的環(huán)境。當(dāng)然,OS被裝有Windows的動(dòng)作檢驗(yàn)裝置100也可以由動(dòng)作檢驗(yàn)引擎500和Windows環(huán)境540的組合來構(gòu)成。此外,OS被裝有MacOS的動(dòng)作檢驗(yàn)裝置100也可以由動(dòng)作檢驗(yàn)引擎500和Mac環(huán)境560的組合來構(gòu)成。圖24的IE瀏覽器542公開了能從外部的應(yīng)用調(diào)用的操作IF,即C0M550。因此,對(duì)于IE瀏覽器542中所顯示的網(wǎng)頁(yè)的操作,采用參考技術(shù)3中的來自外部的操作方式。另一方面,F(xiàn)F (火狐)瀏覽器546和Safari瀏覽器562沒有公開能從外部應(yīng)用調(diào)用的操作IF。因此,針對(duì)這些瀏覽器上所顯示的網(wǎng)頁(yè)的操作就采用參考技術(shù)3中的來自內(nèi)部的操作方式。在圖24中,表示了用于來自內(nèi)部的操作方式的Selenium模塊530。Selenium模塊530對(duì)應(yīng)于圖20的內(nèi)部操作引擎412和代理服務(wù)器410,是作為測(cè)試自動(dòng)化工具而被公開的Selenium (http: //seleniumhq. org/)的服務(wù)器程序。Selenium模塊530對(duì)顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)瀏覽器的窗ロ(以下也稱作“瀏覽器窗ロ”)分配獨(dú)自的標(biāo)識(shí)符。然后,當(dāng)客戶指定該標(biāo)識(shí)符時(shí),就唯一識(shí)別應(yīng)作為操作對(duì)象的瀏覽器窗ロ(換言之是網(wǎng)頁(yè))。共通IF406對(duì)應(yīng)于圖20的共通IF406。IE驅(qū)動(dòng)器502對(duì)應(yīng)于圖20的個(gè)別瀏覽器用引擎驅(qū)動(dòng)器408。IE驅(qū)動(dòng)器502在使用IE瀏覽器542的網(wǎng)頁(yè)動(dòng)作測(cè)試中作為動(dòng)作測(cè)試用程序(以下也稱作“測(cè)試程序”)與IE瀏覽器542的橋梁來發(fā)揮功能。IE驅(qū)動(dòng)器502包含IE窗ロ管理器504、IE瀏覽器操作部506、IE對(duì)話框操作部508。IE窗ロ管理器504管理針對(duì)顯示網(wǎng)頁(yè)的瀏覽器窗ロ,由用戶在測(cè)試程序中分配的標(biāo)識(shí)符(以下也稱作“用戶分配ID”)與OS所分配的標(biāo)識(shí)符(以下稱作“OS分配ID”)的對(duì)應(yīng)關(guān)系。
IE瀏覽器操作部506針對(duì)應(yīng)進(jìn)行網(wǎng)頁(yè)操作的瀏覽器窗ロ(以下也稱“操作對(duì)象窗ロ”),確定與在測(cè)試程序中所指定的用戶分配ID對(duì)應(yīng)的OS分配ID。此外,還確定與在測(cè)試程序中所指定的操作內(nèi)容對(duì)應(yīng)的C0M550的函數(shù)。然后,通過指定OS分配ID并調(diào)用C0M550的函數(shù),來從外部操作IE瀏覽器542,使IE瀏覽器542執(zhí)行操作對(duì)象窗口中的網(wǎng)頁(yè)操作。根據(jù)網(wǎng)頁(yè)的操作不同,IE瀏覽器542有時(shí)直接使用WindowsOS的資源來顯示對(duì)話框。以下將該對(duì)話框也稱作“OS對(duì)話框”。IE對(duì)話框操作部508操作IE瀏覽器542所顯示的OS對(duì)話框544。具體來說,通過在檢測(cè)到OS對(duì)話框544被顯示時(shí)調(diào)用與測(cè)試程序中所指定的對(duì)話框操作對(duì)應(yīng)的Win32API552的函數(shù),來執(zhí)行針對(duì)OS對(duì)話框544的操作。作為針對(duì)OS對(duì)話框544的典型的操作內(nèi)容,可以舉出字符串的輸入、顯示項(xiàng)目的選擇、按鈕的按下等。針對(duì)后述的FF對(duì)話框548及Safari對(duì)話框564的操作內(nèi)容也是一祥。FF驅(qū)動(dòng)器510對(duì)應(yīng)于圖20的內(nèi)部操作引擎驅(qū)動(dòng)器414,在使用FF瀏覽器546的網(wǎng)頁(yè)動(dòng)作測(cè)試中,作為測(cè)試程序與FF瀏覽器546的橋梁來發(fā)揮功能。FF驅(qū)動(dòng)器510包含F(xiàn)F窗ロ管理器512、FF瀏覽器操作部514、FF對(duì)話框操作部516。FF窗ロ管理器512管理由Selenium模塊530分配給顯示網(wǎng)頁(yè)的瀏覽器窗ロ的標(biāo)識(shí)符(以下也稱作“Selenium分配ID”)與針對(duì)該窗ロ的用戶分配ID及OS分配ID的對(duì)應(yīng)關(guān)系。FF瀏覽器操作部514針對(duì)操作對(duì)象窗ロ,確定與在測(cè)試程序中所指定的用戶分配ID對(duì)應(yīng)的Se I en i um分配ID。此夕卜,還確定與測(cè)試程序中所指定的操作內(nèi)容對(duì)應(yīng)的Se I en i um模塊530的函數(shù)。然后,指定Selenium分配ID,調(diào)用Selenium模塊530的函數(shù)。據(jù)此,Selenium模塊530基于Selenium分配ID確定操作對(duì)象窗ロ,調(diào)用與該操作對(duì)象窗ロ所顯示的網(wǎng)頁(yè)的控制代碼中的、與被調(diào)用的函數(shù)對(duì)應(yīng)的控制代碼。由此,在操作對(duì)象的網(wǎng)頁(yè)中,確定的JAVA腳本動(dòng)作,從內(nèi)部操作FF瀏覽器546,從而實(shí)現(xiàn)測(cè)試程序所指定的網(wǎng)頁(yè)操作。在測(cè)試程序指定了應(yīng)不介由Selenium模塊530地操作的預(yù)定操作、典型的是瀏覽器窗ロ的關(guān)閉處理時(shí),F(xiàn)F瀏覽器操作部514抑制Selenium模塊530的調(diào)用。取而代之,同IE對(duì)話框操作部508 —祥,通過調(diào)用Win32API552來執(zhí)行該操作。根據(jù)網(wǎng)頁(yè)的操作,F(xiàn)F瀏覽器546有時(shí)使OS對(duì)話框544顯示,或者使利用FF瀏覽器546獨(dú)自的資源的對(duì)話框(以下也稱“ FF對(duì)話框”)顯示。典型的是,在與文件的保存等OS協(xié)作時(shí)使OS對(duì)話框544顯示,而作為基于JAVA腳本的警告對(duì)話框,則使FF對(duì)話框548顯不。FF對(duì)話框操作部516操作OS對(duì)話框544和FF對(duì)話框548。具體來說,檢測(cè)到OS對(duì)話框544的顯示時(shí),調(diào)用與測(cè)試程序所指定的對(duì)話框操作對(duì)應(yīng)的Win32API552的函數(shù),由此執(zhí)行對(duì)該OS對(duì)話框544的操作。另外,在檢測(cè)到FF對(duì)話框548的顯示時(shí),調(diào)用預(yù)設(shè)在FF瀏覽器546中的作為擴(kuò)展功能的FF插件554來指示對(duì)話框操作,由此執(zhí)行針對(duì)FF對(duì)話框548的操作。該詳細(xì)情況將與圖26相關(guān)聯(lián)地在后面敘述。Safari驅(qū)動(dòng)器520對(duì)應(yīng)于圖20的內(nèi)部操作引擎驅(qū)動(dòng)器414,在使用Safari瀏覽器562的網(wǎng)頁(yè)的動(dòng)作測(cè)試中,作為測(cè)試程序與Safari瀏覽器562的橋梁而發(fā)揮功能。Safari驅(qū)動(dòng)器520包含Safari窗口管理器522、Safari瀏覽器操作部524、Safari對(duì)話框操作部526。Safari窗口管理器522管理針對(duì)網(wǎng)頁(yè)所被顯示的窗口的用戶分配ID、OS分配ID及Selenium分配ID的對(duì)應(yīng)關(guān)系。在MacOS中,對(duì)瀏覽器窗口分配ID的是Safari瀏覽器562, 但為了說明的方便,將其名稱統(tǒng)一為OS分配ID。Safari瀏覽器操作部524針對(duì)操作對(duì)象的窗口,確定與測(cè)試程序所指定的用戶分配ID對(duì)應(yīng)的Selenium分配ID。此外,還確定與測(cè)試程序所指定的操作內(nèi)容對(duì)應(yīng)的Selenium模塊530的函數(shù)。然后,指定Selenium分配ID,調(diào)用Selenium模塊530的函數(shù)。由此,同F(xiàn)F瀏覽器操作部514—樣,介由Selenium模塊530執(zhí)行針對(duì)操作對(duì)象的網(wǎng)頁(yè)的操作。在測(cè)試程序指定了應(yīng)不介由Selenium模塊530地操作的預(yù)定操作、典型的是窗口的關(guān)閉處理時(shí),Safari瀏覽器操作部524抑制Selenium模塊530的調(diào)用。取而代之地,通過調(diào)用MacOS提供的API來執(zhí)行該操作。具體來說,調(diào)用為用于殘障者的應(yīng)用的使用而準(zhǔn)備的API群、即可訪問性(ACCeSsibility)API566。該詳細(xì)情況將與圖27相關(guān)聯(lián)地在后面敘述。根據(jù)網(wǎng)頁(yè)的操作,Safari瀏覽器562有時(shí)使對(duì)話框(以下也稱“Safari對(duì)話框”)。Safari對(duì)話框操作部526在檢測(cè)到Safari對(duì)話框564的顯示時(shí),調(diào)用與測(cè)試程序所指定的對(duì)話框操作對(duì)應(yīng)的MacOS的API,由此執(zhí)行針對(duì)Safari對(duì)話框564的操作。此時(shí)也調(diào)用上述的可訪問性API566。該詳細(xì)情況將與圖27相關(guān)聯(lián)地在后面敘述。上述的FF窗口管理器512和Safari窗口管理器522被統(tǒng)稱為Selenium窗口管理器532。圖25表示Selenium窗口管理器532所存儲(chǔ)的數(shù)據(jù)例子。如該圖所示,Selenium窗口管理器532將在網(wǎng)頁(yè)的動(dòng)作測(cè)試中對(duì)各瀏覽器窗口分配的用戶分配ID、SeleniUm分配ID及OS分配ID相對(duì)應(yīng)地保存。當(dāng)然,IE瀏覽器542的操作并不介由Selenium模塊530。因此,IE窗口管理器504僅將用戶分配ID與OS分配ID相對(duì)應(yīng)地保存。此外,上述的FF瀏覽器操作部514和Safari瀏覽器操作部524被統(tǒng)稱為介由Selenium模塊530操作網(wǎng)頁(yè)瀏覽器的Selenium瀏覽器操作部534。圖26表示針對(duì)圖24的FF對(duì)話框548的操作的方式。在Selenium模塊530中,F(xiàn)F瀏覽器546起動(dòng)時(shí),JAVA腳本所配裝的窗口句柄572被預(yù)先設(shè)定在FF瀏覽器546所讀入的FF歸檔(profile) 570中。FF瀏覽器546在打開新的瀏覽器窗口時(shí),將窗口句柄572讀入FF插件554的存儲(chǔ)區(qū)域,由此,被追加裝入窗口句柄572的功能。窗口句柄572被作為FF插件554裝入時(shí),將檢測(cè)FF瀏覽器546的窗口生成的監(jiān)聽對(duì)象(listener object)介由 XPConnect578 和 XPC0M580 登錄到窗 ロ 查看器(Windowffatcher)582中。窗ロ句柄572介由所登錄的監(jiān)聽對(duì)象而檢測(cè)到FF對(duì)話框548被生成時(shí),與FF對(duì)話框操作部516的套接字(socket)服務(wù)器574進(jìn)行套接字通信,通知其FF對(duì)話框548已被生成。該通知信息中包含表示FF對(duì)話框548中的顯示字符串、按鈕等顯示對(duì)象的顯示樣式信息。FF對(duì)話框操作部516被通知FF對(duì)話框548已生成后,將與測(cè)試程序所指定的對(duì)話框操作對(duì)應(yīng)的函數(shù)、即XPC0M580的函數(shù)的識(shí)別信息通知給窗ロ句柄572。窗ロ句柄572通過調(diào)用由FF對(duì)話框操作部516指定的XPC0M580的函數(shù)來操作FF對(duì)話框548。當(dāng)然,F(xiàn)F對(duì)話框操作部516也可以根據(jù)FF對(duì)話框548的顯示樣式而適當(dāng)調(diào)整對(duì)FF對(duì)話框548的操作內(nèi)容。例如,可以對(duì)測(cè)試程序所指定的按鈕按下操作追加按下對(duì)象的按鈕的ID后,將該操作指示通知給窗ロ句柄572。如前所述,作為JAVA腳本的警告對(duì)話框,F(xiàn)F瀏覽器546是使FF對(duì)話框548顯示 的。該FF對(duì)話框548是利用FF瀏覽器546獨(dú)自的資源而被顯示的,故不能從OS側(cè)判別對(duì)話框的內(nèi)容。例如,不能判別FF對(duì)話框548中的顯示字符串、按鈕等顯示對(duì)象。因此,如對(duì)OS對(duì)話框544的操作那樣,不能進(jìn)行介由Win32API552的操作。例如,不能進(jìn)行對(duì)FF對(duì)話框548所顯示的按鈕的按下操作。因此,在參考技術(shù)4中,通過將FF瀏覽器546中的FF對(duì)話框548顯示的監(jiān)視功能作為插件追加,能夠取得FF對(duì)話框548的顯示內(nèi)容,并實(shí)現(xiàn)對(duì)FF對(duì)話框548的操作。此外,F(xiàn)F瀏覽器操作部514由于是介由Selenium模塊530操作FF瀏覽器546,故能對(duì)網(wǎng)頁(yè)的程序代碼設(shè)定用于對(duì)話框操作的函數(shù)(例如與窗ロ句柄572 —祥的程序代碼)。但是,若FF對(duì)話框548是模式對(duì)話框(modal dialog,應(yīng)用模式對(duì)話框或系統(tǒng)模式對(duì)話框),則不能從其顯示源的網(wǎng)頁(yè)的代碼來操作對(duì)話框。另ー方面,被作為FF插件554而裝入的窗ロ句柄572能夠繼續(xù)進(jìn)行對(duì)模式對(duì)話框的操作。基于該觀點(diǎn),可以說希望窗ロ句柄572被設(shè)定為FF瀏覽器546的擴(kuò)展功能。圖27表示對(duì)圖24的Safari對(duì)話框564的操作的方式。該圖的Apple腳本584是調(diào)用MacOS中的作為應(yīng)用間通信技術(shù)的Apple事件的腳本。系統(tǒng)事件586是MacOS提供的應(yīng)用,以Apple腳本584和可訪問性API566為中介地實(shí)現(xiàn)基于Apple腳本584的可訪問性API566的調(diào)用。圖27以四階層表示了 MacOS,上位的階層提供比下位的階層抽象度高的API、換言之提供高級(jí)別的API。如該圖所示,可訪問性API566屬于最上位的階層“用戶體驗(yàn)”。如已述的那樣,可訪問性API566是用于確保面向殘障者的可用性的關(guān)于Π自動(dòng)化功能的API群。被自動(dòng)化的操作內(nèi)容包括打開窗ロ、按下按鈕等各種用戶接ロ(畫面)操作。Safari對(duì)話框操作部526確定與測(cè)試程序所指定的對(duì)話框操作對(duì)應(yīng)的可訪問性API566的函數(shù),將指定該函數(shù)的Apple腳本584發(fā)送給系統(tǒng)事件586。由此,介由系統(tǒng)事件586,調(diào)用被作為可訪問性API566而準(zhǔn)備的對(duì)話框操作的函數(shù)。當(dāng)然,對(duì)Safari對(duì)話框564的操作可以用MacOS中的更低級(jí)別的API群來實(shí)現(xiàn)。例如,Safai對(duì)話框操作部526通過調(diào)用圖形與多媒體階層的“ Quartz” API,也能執(zhí)行對(duì)Safari對(duì)話框564的操作。但是,由于可訪問性API566提供與用戶所進(jìn)行的UI操作對(duì)應(yīng)的高級(jí)別的函數(shù),故通過利用可訪問性API566,能減少Safari對(duì)話框操作部526的代碼量,并能提高其可維護(hù)性。此外,在圖27中未圖示的是,對(duì)于針對(duì)網(wǎng)頁(yè)的操作中的、應(yīng)不介由Selenium模塊530地進(jìn)行的預(yù)定操作,Safari瀏覽器操作部524同Safari對(duì)話框操作部526 —樣調(diào)用可訪問性API566。由此,使MacOS或Safai瀏覽器562執(zhí)行該操作。圖28是表示參考技術(shù)4的動(dòng)作檢驗(yàn)裝置100的功能構(gòu)成的框圖。該圖的功能塊中的與參考技術(shù)I至3所示的動(dòng)作檢驗(yàn)裝置100的功能塊相同或?qū)?yīng)的功能塊被賦予相同標(biāo)號(hào)。關(guān)于賦予了相同標(biāo)號(hào)的功能塊,僅在其功能與在參考技術(shù)I至3中已述的內(nèi)容不同時(shí)進(jìn)行記載,對(duì)于同樣的功能,適當(dāng)省略其記載。動(dòng)作檢驗(yàn)裝置100還具有窗口 ID保持部154和ID取得部139。窗口 ID保持部154和ID取得部139對(duì)應(yīng)于圖24的窗口管理器504和Selenium窗口管理器532。即,窗口 ID保持部154保存對(duì)顯示網(wǎng)頁(yè)的瀏覽器窗口所分配的用戶分配ID、SeleniUm分配ID、及OS分配ID的對(duì)應(yīng)關(guān)系。 ID取得部139從OS (WindowsOS或MacOS)取得針對(duì)瀏覽器窗口的OS分配ID。在WindowsOS的情況下,ID取得部139取得通過調(diào)用Win32API而得到的窗口句柄(windowhandle)。例如,以long型整數(shù)的方式取得函數(shù)“FindWindow”返回的HWND值,存儲(chǔ)到窗口ID保持部154的OS分配ID字段中。關(guān)于函數(shù)“FindWindow”返回的多種HWND值中的未存儲(chǔ)于窗口 ID保持部154的值,也可以作為窗口 ID保持部154的新的記錄來追加。此外,在MacOS的情況下,ID取得部139取得通過Apple腳本而從Safari瀏覽器562得到的long值,存儲(chǔ)到窗口 ID保持部154的OS分配ID字段中。例如,執(zhí)行以下腳本tell application,,Safari,,return id of windowsend tell來取得Safari瀏覽器562對(duì)各個(gè)瀏覽器窗口分配的long值一覽。此外,ID取得部139取得Selenium模塊530 (Selenium 一 CORE)對(duì)各瀏覽器窗口分配的窗口屬性值“seleniumWindowName”。然后,將該窗口屬性值作為Selenium分配ID保存到窗口 ID保持部154的Selenium分配ID字段中。例如,通過調(diào)用Selenium模塊530 的函數(shù)“getAttributeFromAllwindow ( ”seleniumwindowName”)”,來取得 Selenium 模塊530所管理的窗口屬性值一覽。另外,ID取得部139取得后述的ID分配部174和ID分配部180對(duì)瀏覽器窗口分配的用戶分配ID,保存到窗口 ID保持部154的用戶分配ID字段中。當(dāng)然,ID取得部139也可以將用戶分配ID、Selenium分配ID、OS分配ID分別按時(shí)間軸上的分配順序(ID取得部139中的取得順序)依次保存到窗口 ID保持部154中。由此,時(shí)間軸上先被分配的ID (例如Selenium分配ID)就與同樣在時(shí)間軸上先被分配的其它ID (例如用戶分配ID)相對(duì)應(yīng)了。圖29是表示圖28的程序執(zhí)行部134的詳細(xì)情況的框圖。程序執(zhí)行部134具有測(cè)試環(huán)境判定部171、外部操作執(zhí)行部164、代理處理部166、內(nèi)部操作執(zhí)行部168、佐證物設(shè)定部170。對(duì)于該圖的功能塊中的與參考技術(shù)3所示的程序執(zhí)行部134的功能塊相同或?qū)?yīng)的功能塊賦予了相同標(biāo)號(hào)。對(duì)于賦予了相同標(biāo)號(hào)的功能塊,僅在其功能與參考技術(shù)3中已述的內(nèi)容不同時(shí)進(jìn)行記載,對(duì)于同樣的功能,適當(dāng)省略其記載。
測(cè)試環(huán)境判定部171對(duì)應(yīng)于參考技術(shù)3 (圖21)中的測(cè)試主體選擇部162,基于用于網(wǎng)頁(yè)的動(dòng)作測(cè)試的環(huán)境、具體來說基于OS與網(wǎng)頁(yè)瀏覽器的組合,決定網(wǎng)頁(yè)的動(dòng)作測(cè)試的方式。例如,決定網(wǎng)頁(yè)瀏覽器的操作方式和對(duì)話框的操作方式。外部操作執(zhí)行部164對(duì)應(yīng)于圖24中的IE瀏覽器操作部506。外部操作執(zhí)行部164包含ID分配部174和對(duì)話框操作部176。ID分配部174在測(cè)試程序執(zhí)行時(shí)檢測(cè)到在測(cè)試程序中生成新的瀏覽器窗口的函數(shù)(指令)被指定時(shí),將被指定為該指令的變量的ID決定為用戶分配ID。若ID未指定,則采用在外部操作執(zhí)行部164和內(nèi)部操作執(zhí)行部168中唯一的新的ID作為用戶分配ID。對(duì)話框操作部176對(duì)應(yīng)于圖24的IE對(duì)話框操作部508,定期監(jiān)視IE瀏覽器542對(duì)對(duì)話框的設(shè)定。例如,可以定期地調(diào)用Win32API552的上述FindWindow函數(shù),來檢測(cè)對(duì)話框窗口被生成。對(duì)話框操作部176介由Win32API552操作在IE瀏覽器542中所顯示的OS對(duì)話框544。此外,外部操作執(zhí)行部164保存存儲(chǔ)有測(cè)試程序所能指定的網(wǎng)頁(yè)操作用的函數(shù)與 被作為網(wǎng)頁(yè)瀏覽器的操作IF而規(guī)定的函數(shù)的對(duì)應(yīng)關(guān)系的表,在參考技術(shù)4中是與C0M550及Win32API552所規(guī)定的函數(shù)的對(duì)應(yīng)關(guān)系的表。外部操作執(zhí)行部164參照該表來調(diào)用與測(cè)試程序所指定的函數(shù)對(duì)應(yīng)的C0M550或Win32API552的函數(shù)。代理處理部166對(duì)應(yīng)于圖24中的Selenium模塊530。如在參考技術(shù)3中所述的那樣,代理處理部166代理取得操作對(duì)象的網(wǎng)頁(yè)。然后,在該網(wǎng)頁(yè)的程序代碼中追加JAVA腳本所配裝的程序代碼、即為執(zhí)行對(duì)網(wǎng)頁(yè)的各種操作而預(yù)先準(zhǔn)備的函數(shù)群(參考技術(shù)3中的“控制代碼”)。然后,使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁(yè)。另外,根據(jù)來自內(nèi)部操作執(zhí)行部168的操作指示而調(diào)用與該操作指示對(duì)應(yīng)的控制代碼的函數(shù),由此,中介執(zhí)行網(wǎng)頁(yè)的操作。代理處理部166包含ID發(fā)出部178和附加組件(add-on)設(shè)定部179。ID發(fā)出部178在使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁(yè)時(shí),發(fā)出用于在代理處理部166中唯一識(shí)別該瀏覽器窗口的識(shí)別信息。該識(shí)別信息由ID取得部139作為Selenium分配ID而取得。附加組件設(shè)定部179在為使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁(yè)而應(yīng)起動(dòng)FF瀏覽器546時(shí),指定包含圖26的窗口句柄572的FF歸檔570,起動(dòng)FF瀏覽器546。由此,將窗口句柄572作為FF瀏覽器546的擴(kuò)展功能而裝入。內(nèi)部操作執(zhí)行部168對(duì)應(yīng)于圖24中的Selenium瀏覽器操作部534。內(nèi)部操作執(zhí)行部168包含ID分配部180和對(duì)話框操作部182。ID分配部180是與外部操作執(zhí)行部164的ID分配部174同樣的構(gòu)成。另外,內(nèi)部操作執(zhí)行部168保存存儲(chǔ)有測(cè)試程序所能指定的網(wǎng)頁(yè)操作用的函數(shù)與在Selenium模塊530中規(guī)定的網(wǎng)頁(yè)操作用的函數(shù)的對(duì)應(yīng)關(guān)系的表。外部操作執(zhí)行部164參照該表,調(diào)用與測(cè)試程序所指定的函數(shù)對(duì)應(yīng)的Selenium模塊530的函數(shù)來作為對(duì)Selenium模塊530的操作指示。對(duì)話框操作部182對(duì)應(yīng)于圖24的FF對(duì)話框操作部516和Safari對(duì)話框操作部526。若測(cè)試環(huán)境為WindowsOS和FF瀏覽器546,則對(duì)話框操作部182定期地監(jiān)視FF瀏覽器546所進(jìn)行的對(duì)話框的設(shè)定。例如,可以定期地調(diào)用Win32API552的上述FindWindow函數(shù),來檢測(cè)對(duì)話框窗口被生成。對(duì)話框操作部182介由Win32API552操作在FF瀏覽器546中所顯示的OS對(duì)話框544。另外,對(duì)話框操作部182介由FF插件554檢測(cè)由FF瀏覽器546所顯示的FF對(duì)話框548,并介由FF插件554來進(jìn)行操作。另外,若測(cè)試環(huán)境為MacOS和Safari瀏覽器562,則對(duì)話框操作部182定期地監(jiān)視Safari瀏覽器562所進(jìn)行的對(duì)話框的設(shè)定。例如,可以定期地執(zhí)行上述Apple腳本,檢測(cè)Safari瀏覽器562中的對(duì)話框窗口的設(shè)定。對(duì)話框操作部182介由可訪問性API566操作在Safari瀏覽器562中所顯示的Safari對(duì)話框564。下面說明以上結(jié)構(gòu)的動(dòng)作。圖30是表示動(dòng)作檢驗(yàn)裝置100的動(dòng)作的流程圖。該圖表示在動(dòng)作檢驗(yàn)裝置100中執(zhí)行動(dòng)作測(cè)試用程序時(shí)的動(dòng)作。例如,既是表示圖12中的S218的詳細(xì)情況的圖,也是表示圖14中的S228的詳細(xì)情況的圖。即,如圖14所示的那樣,動(dòng)作檢驗(yàn)裝置100通過再現(xiàn)事前用戶對(duì)網(wǎng)頁(yè)實(shí)施的一連串輸入操作,來輔助網(wǎng)頁(yè)的動(dòng)作確認(rèn)。圖30可以說是使圖23的流程圖更詳細(xì)化的圖。 從用戶收到網(wǎng)頁(yè)的動(dòng)作測(cè)試的開始指示后,測(cè)試環(huán)境判定部171判定成為動(dòng)作測(cè)試的執(zhí)行環(huán)境的OS及網(wǎng)頁(yè)瀏覽器的種類。然后,根據(jù)該判定結(jié)果,選擇外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168作為網(wǎng)頁(yè)的操作主體(S400)。程序執(zhí)行部134、換言之被選為操作主體的外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168執(zhí)行后述的測(cè)試程序讀入處理(S402)。當(dāng)記述在測(cè)試程序中的對(duì)網(wǎng)頁(yè)的全部操作(動(dòng)作測(cè)試的全部項(xiàng)目)都完成了時(shí)(S404的Y),結(jié)束本圖的流程。作為測(cè)試程序的一例,在此假定記錄有以下操作I 操作10的操作指令測(cè)試程序。(操作I)打開瀏覽器窗口A (指定ID = I)(操作2)打開瀏覽器窗口B (指定ID = 2)(操作3)選擇瀏覽器窗口A (指定ID = I)(操作4)對(duì)瀏覽器窗口A所顯示的網(wǎng)頁(yè)的操作(操作5)對(duì)瀏覽器窗口A所顯示的網(wǎng)頁(yè)的操作(操作6)對(duì)通過操作5而被顯示的對(duì)話框的操作(操作7)選擇瀏覽器窗口B (指定ID = 2)(操作8)對(duì)瀏覽器窗口B所顯示的網(wǎng)頁(yè)的操作(操作9)關(guān)閉瀏覽器窗口A (指定ID = I)(操作10)關(guān)閉瀏覽器窗口B (指定ID = 2)該測(cè)試程序是在圖14所示的一系列處理中所設(shè)定的動(dòng)作測(cè)試用程序。此時(shí)的操作內(nèi)容文件中,作為指定操作I和操作2的函數(shù),被指定“waitForNewWindow”,作為其變量,被設(shè)定網(wǎng)頁(yè)的URL和用戶指定的ID。此外,作為指定操作3和操作7的函數(shù),被指定“selectWindow",作為其變量,被設(shè)定用戶指定的ID。此外,作為指定操作4、操作5及操作8的函數(shù),被指定WebEditSet、WebElementClick等各種操作用的函數(shù)。另外,作為指定操作6的函數(shù),被指定對(duì)話框操作用的預(yù)定函數(shù)。在測(cè)試程序的執(zhí)行中,測(cè)試程序所記述的操作指令被依次執(zhí)行。若測(cè)試程序中尚有未執(zhí)行的操作指令(S404的N),并且在測(cè)試程序中被要求顯示新的網(wǎng)頁(yè),即應(yīng)執(zhí)行上述的操作I和操作2 (S406的Y),則被選為操作主體的外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168的ID分配部將該操作指令所指定的ID作為用戶分配ID而分配。ID取得部139取得該用戶分配ID,存儲(chǔ)到窗口 ID保持部154中(S408)。若網(wǎng)頁(yè)瀏覽器的操作IF是被公開的(S410的Y),則外部操作執(zhí)行部164通過調(diào)用該操作IF而使網(wǎng)頁(yè)瀏覽器取得操作對(duì)象的網(wǎng)頁(yè)的數(shù)據(jù)(S412)。然后,使顯示有操作對(duì)象的網(wǎng)頁(yè)的瀏覽器窗口顯示在顯示器上(S420)。在圖24中成為S410的Y的是網(wǎng)頁(yè)瀏覽器為IE瀏覽器542的情況,此時(shí)的操作IF對(duì)應(yīng)C0M550。若網(wǎng)頁(yè)瀏覽器的操作IF是非公開的(S410的N),則內(nèi)部操作執(zhí)行部168對(duì)代理處理部166指示取得操作對(duì)象的網(wǎng)頁(yè)。代理處理部166的ID發(fā)出部178發(fā)出Selenium分配ID (S414)。代理處理部166取得操作對(duì)象的網(wǎng)頁(yè)的數(shù)據(jù)(S416),對(duì)該網(wǎng)頁(yè)的數(shù)據(jù)追加控制代碼(S418)。代理處理部166執(zhí)行后述的網(wǎng)頁(yè)瀏覽器起動(dòng)處理后(S419),將追加了控制代碼的網(wǎng)頁(yè)的數(shù)據(jù)傳遞給網(wǎng)頁(yè)瀏覽器,使顯示操作對(duì)象網(wǎng)頁(yè)的瀏覽器窗口顯示在顯示器上(S420)。在圖24中成為S410的N的是網(wǎng)頁(yè)瀏覽器為FF瀏覽器546或Safari瀏覽器562的情況。ID取得部139調(diào)用OS所提供的API,取得OS分配給瀏覽器窗口的OS分配ID,存儲(chǔ)到窗口 ID保持部154中。此外,若網(wǎng)頁(yè)瀏覽器的操作IF是非公開的,則調(diào)用Selenium模塊530所提供的API,取得Selenium模塊530分配給瀏覽器窗口的Selenium分配ID,存儲(chǔ)到窗口 ID保持部154中。由此,使瀏覽器窗口 A和瀏覽器窗口 B各自被分配的用戶分配ID、OS分配ID及Selenium分配ID建立對(duì)應(yīng)(S422)。若在測(cè)試程序中沒有指定新網(wǎng)頁(yè)的顯示(S406的N),則S408 S422被跳過。若在測(cè)試程序中指定有網(wǎng)頁(yè)的操作,即應(yīng)執(zhí)行上述操作3 操作10 (S424的Y),則程序執(zhí)行部134執(zhí)行后述的網(wǎng)頁(yè)操作處理(S426)。若測(cè)試程序中沒有指定網(wǎng)頁(yè)的操作(S424的N),則S426被跳過。在對(duì)網(wǎng)頁(yè)的操作之后,佐證物設(shè)定部170將畫面快照等佐證物的數(shù)據(jù)存儲(chǔ)到結(jié)果保持部152中(S428),并返回S404。優(yōu)選佐證物設(shè)定部170將作為佐證物的瀏覽器窗口的相關(guān)畫面快照等佐證物與該瀏覽器窗口所被分配的用戶分配ID相對(duì)應(yīng)地記錄。由此,能使要確認(rèn)網(wǎng)頁(yè)的動(dòng)作測(cè)試結(jié)果的用戶確認(rèn)與自己所指定的ID相對(duì)應(yīng)的佐證物,能提高用戶確認(rèn)佐證物時(shí)的便利性。圖31是詳細(xì)表示圖30的S402的測(cè)試程序讀入處理的流程圖。程序執(zhí)行部134讀入動(dòng)作測(cè)試用程序(S430)。若該程序中被指定有表示對(duì)話框操作的預(yù)定函數(shù)(S432的Y),則程序執(zhí)行部134將該對(duì)話框操作的內(nèi)容(上述的操作6)保存在預(yù)定的對(duì)話框操作保持表中(S434)。如果沒有指定對(duì)話框操作(S432的N),則S434被跳過。圖32是詳細(xì)表示圖30的S419的網(wǎng)頁(yè)瀏覽器起動(dòng)處理的流程圖。代理處理部166起動(dòng)用于動(dòng)作測(cè)試的網(wǎng)頁(yè)瀏覽器(S440)。若動(dòng)作測(cè)試用的網(wǎng)頁(yè)瀏覽器是FF瀏覽器546(S442的Y),則附加組件設(shè)定部179將窗口句柄572作為FF瀏覽器546的擴(kuò)展功能而附加(S444)。窗口句柄572將用于檢測(cè)FF對(duì)話框548的監(jiān)聽器登錄到FF瀏覽器546中(S446)。若動(dòng)作測(cè)試用的網(wǎng)頁(yè)瀏覽器不是FF瀏覽器546 (S442的N),則S444和S446被跳過。圖33是詳細(xì)表示圖30的S426的網(wǎng)頁(yè)操作處理的流程圖。在測(cè)試環(huán)境判定部171的判定結(jié)果中,如果OS是MacOS(S450的Y),則內(nèi)部操作執(zhí)行部168執(zhí)行后述的Mac用操作 處理(S452)。如果OS不是MacOS (S450的N),則S452被跳過。如果OS是Windows (S454的Y)、網(wǎng)頁(yè)瀏覽器是IE瀏覽器542(S456的Y),則外部操作執(zhí)行部164執(zhí)行后述的IE用操作處理(S458)。如果網(wǎng)頁(yè)瀏覽器不是瀏覽器542(S456的N),而是FF瀏覽器546(S460的Y),則內(nèi)部操作執(zhí)行部168執(zhí)行后述的FF用操作處理(S462)。如果網(wǎng)頁(yè)瀏覽器也不是FF瀏覽器546 (S460的N),則S462被跳過,如果OS也不是Windows (S454的N),則S456以后的步驟被跳過。圖34是詳細(xì)表示圖33的S452的Mac用操作處理的流程圖。如果在測(cè)試程序中被指定了窗口選擇操作(上述的操作3和7)(S470的Y),則內(nèi)部操作執(zhí)行部168的ID分配部180將用變量所收到的ID確定為用戶分配ID (S472)。如果沒有被指定窗口選擇操作(S470的N),而是被指定了應(yīng)介由Safari瀏覽器562執(zhí)行的預(yù)定操作(上述的操作4、5、8,以下也稱作“瀏覽器操作”)(S474的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對(duì)應(yīng)關(guān)系的Selenium分配ID (S476)。然后,通過將指定有該Selenium分配ID的操作指示通知給Selenium模塊530,來使Selenium模塊530調(diào)用被追加于網(wǎng)頁(yè)的控制代碼中的與操作指示對(duì)應(yīng)的函數(shù)(S478)。如果沒有被指定瀏覽器操作(S474的N),而是被指定了應(yīng)介由MacOS執(zhí)行的預(yù)定操作(上述的操作9和10,以下也稱“OS操作”)(S480的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對(duì)應(yīng)的OS分配ID (S482)。然后,通過指定該OS分配ID,調(diào)用與操作內(nèi)容對(duì)應(yīng)的可訪問性API566的函數(shù),來使MacOS執(zhí)行對(duì)瀏覽器窗口的OS操作(S484)。如果也不是OS操作(S480的N),則S482和S484被跳過。內(nèi)部操作執(zhí)行部168的對(duì)話框操作部182檢測(cè)到Safai對(duì)話框564的顯示時(shí)(S486的Y),從對(duì)話框操作保持表取得針對(duì)該對(duì)話框的操作內(nèi)容(上述的操作6) (S488)。然后,通過調(diào)用與該操作內(nèi)容對(duì)應(yīng)的可訪問性API566的函數(shù),來執(zhí)行對(duì)Safari對(duì)話框564的操作(S490)。如果未檢測(cè)到Safari對(duì)話框564的顯示(S486的N),則S488和S490被跳過。圖35是詳細(xì)表示圖33的S458的IE用操作處理的流程圖。如果在測(cè)試程序中被指定了窗口選擇操作(上述操作3和7) (S500的Y),則外部操作執(zhí)行部164的ID分配部174將用變量收到的ID確定為用戶分配ID (S502)。如果沒有被指定窗口選擇操作(S500的N),而是被指定了應(yīng)介由IE瀏覽器542執(zhí)行的操作(上述操作4、5、8,以下也稱“瀏覽器操作”)(S504的Y),則外部操作執(zhí)行部164確定與用戶分配ID建立了對(duì)應(yīng)的OS分配ID(S506)。然后,通過指定該OS分配ID地調(diào)用與瀏覽器操作的內(nèi)容對(duì)應(yīng)的C0M550的函數(shù),來使IE瀏覽器542執(zhí)行該操作(S508)。如果沒有被指定瀏覽器操作(S504的N),而是被指定了應(yīng)介由WindowsOS執(zhí)行的操作(上述操作9和10,以下也稱“OS操作”)(S510的Y),則外部操作執(zhí)行部164確定與用戶分配ID建立了對(duì)應(yīng)的OS分配ID(S512)。然后,通過指定該OS分配ID地調(diào)用與操作內(nèi) 容對(duì)應(yīng)的Win32API552的函數(shù),來使WindowsOS執(zhí)行對(duì)瀏覽器窗口的OS操作(S514)。如果也不是OS操作(S510的N),則S512和S514被跳過。外部操作執(zhí)行部164的對(duì)話框操作部176檢測(cè)到OS對(duì)話框544的顯示時(shí)(S516的Y),從對(duì)話框操作保持表取得針對(duì)該對(duì)話框的操作內(nèi)容(上述操作6) (S518)。然后,通過調(diào)用與該操作內(nèi)容對(duì)應(yīng)的Win32API552的函數(shù),來執(zhí)行對(duì)OS對(duì)話框544的操作(S520)。如果未檢測(cè)到OS對(duì)話框544的顯示(S516的N),則S518和S520被跳過。圖36是詳細(xì)表示圖33的S462的FF用操作處理的流程圖。如果在測(cè)試程序中被指定了窗口選擇操作(上述操作3和7) (S530的Y),則內(nèi)部操作執(zhí)行部168的ID分配部180將用變量收到的ID確定為用戶分配ID (S532)。如果沒有被指定窗口選擇操作(S530的N),而是被指定了應(yīng)介由FF瀏覽器546執(zhí)行的預(yù)定操作(上述操作4、5、8,以下也稱“瀏覽器操作”)(S534的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對(duì)應(yīng)的Selenium分配ID (S536)。然后,將指定有該Selenium分配ID的操作指示通知給Selenium模塊530,由此,使Selenium模塊530調(diào)用被追加于網(wǎng)頁(yè)的控制代碼中的與操作指示對(duì)應(yīng)的函數(shù)(S538)。如果沒被指定瀏覽器操作(S534的N),而是被指定了應(yīng)介由WindowsOS執(zhí)行的預(yù)定操作(上述操作9和10,以下也稱“OS操作”)(S540的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對(duì)應(yīng)的OS分配ID (S542)。然后,通過指定該OS分配ID地調(diào)用與操作內(nèi)容對(duì)應(yīng)的Win32API552的函數(shù),來使WindowsOS執(zhí)行對(duì)瀏覽器窗口的OS操作(S544)。如果也不是OS操作(S540的N),則S542和S544被跳過。在本段落中說明通過上述操作5而顯示的對(duì)話框是FF對(duì)話框548的情況。內(nèi)部操作執(zhí)行部168的對(duì)話框操作部182通過來自窗口句柄572的通知而檢測(cè)到FF對(duì)話框548的顯示時(shí)(S546的Y),從對(duì)話框操作保持表取得對(duì)該對(duì)話框的操作內(nèi)容(上述操作6) (S548)。然后,通過將該操作內(nèi)容通知給窗口句柄572,來使窗口句柄572調(diào)用與該操作內(nèi)容對(duì)應(yīng)的 FF瀏覽器546的函數(shù)(S550)。由此,執(zhí)行針對(duì)FF對(duì)話框548的、遵照測(cè)試程序的操作。如果未檢測(cè)到FF對(duì)話框548的顯示(S546的N),則S548和S550被跳過。在本段落中說明通過上述操作5而顯示的對(duì)話框是OS對(duì)話框544的情況。內(nèi)部操作執(zhí)行部168的對(duì)話框操作部182檢測(cè)到OS對(duì)話框544被顯示時(shí)(S552的Y),從對(duì)話框操作保持表取得針對(duì)該對(duì)話框的操作內(nèi)容(上述操作6) (S554)。然后,通過調(diào)用與該操作內(nèi)容對(duì)應(yīng)的Win32API552的函數(shù),來執(zhí)行對(duì)OS對(duì)話框544的操作(S556)。如果未檢測(cè)到OS對(duì)話框544的顯示(S552的N),則S554和S556被跳過。根據(jù)參考技術(shù)4的動(dòng)作檢驗(yàn)裝置100,如在參考技術(shù)3中所述的那樣,通過使用Selenium模塊530,不論操作IF是否公開,都能進(jìn)行各種各樣的網(wǎng)頁(yè)瀏覽器上的網(wǎng)頁(yè)的動(dòng)作確認(rèn)。另外,在測(cè)試程序、以及成為測(cè)試程序的生成源的操作內(nèi)容文件和函數(shù)設(shè)定畫面中,用戶能將任意的ID賦予瀏覽器窗口。即,用戶能根據(jù)測(cè)試的情況而適當(dāng)設(shè)定瀏覽器窗口的ID,并且無需意識(shí)到Selenium模塊530識(shí)別瀏覽器窗口所需要的Selenium分配ID,能提高用戶的便利性。另外,通過動(dòng)作檢驗(yàn)裝置100,還能支持應(yīng)不介由Selenium模塊530地進(jìn)行的對(duì)瀏覽器窗口的操作。在該情況下,用戶也能根據(jù)測(cè)試的情況而任意設(shè)定瀏覽器窗口的ID,并且無需意識(shí)到OS或網(wǎng)頁(yè)瀏覽器分配給該瀏覽器窗口的ID,能提高用戶的便利性。此外,通過動(dòng)作檢驗(yàn)裝置100,將對(duì)話框檢測(cè)功能作為網(wǎng)頁(yè)瀏覽器(FF瀏覽器546)的擴(kuò)展功能來附加。由此,網(wǎng)頁(yè)瀏覽器為使用獨(dú)自的資源顯示對(duì)話框,即使在OS的功能中無法取得對(duì)話框的內(nèi)容,也能介由所附加的對(duì)話框檢測(cè)功能而取得對(duì)話框的內(nèi)容,并操作該對(duì)話框。另外,在網(wǎng)頁(yè)瀏覽器能生成使用了獨(dú)自的資源的第I對(duì)話框和使用了 OS的本機(jī)(native)資源的第2對(duì)話框這兩者的情況下,通過適當(dāng)切換對(duì)話框操作的方式,也能進(jìn)行對(duì)任一對(duì)話框的操作。即,對(duì)于第I對(duì)話框,介由所附加的對(duì)話框檢測(cè)功能來操作,對(duì)于第2對(duì)話框,介由OS的本機(jī)功能來操作,由此,能支持并再現(xiàn)對(duì)網(wǎng)頁(yè)的一系列操作。此外,通過動(dòng)作檢驗(yàn)裝置100,在針對(duì)瀏覽器窗口的多數(shù)操作中利用Selenium模塊530,而在例外性的操作中直接調(diào)用OS的API,或者利用對(duì)話框操作用的模塊。這樣,通過適當(dāng)組合參考技術(shù)4中所說明的技術(shù),還能支持在參考技術(shù)4中未言及的各種各樣的測(cè)試環(huán)境(即OS與網(wǎng)頁(yè)瀏覽器的組合),能輔助網(wǎng)頁(yè)的動(dòng)作測(cè)試。(第I實(shí)施方式)針對(duì)本發(fā)明第I實(shí)施方式(以下也稱“第I實(shí)施方式”)的動(dòng)作檢驗(yàn)裝置100,先說明其概要。圖37表示瀏覽器窗口中的網(wǎng)頁(yè)內(nèi)容的顯示例子。該圖表示了網(wǎng)頁(yè)服務(wù)器所提供的網(wǎng)頁(yè)(典型的是測(cè)試對(duì)象頁(yè))在顯示器的畫面630上被顯示于瀏覽器窗口 632中的狀況。在第I實(shí)施方式中,瀏覽器窗口中所起動(dòng)的網(wǎng)頁(yè)瀏覽器是Safari瀏覽器562。瀏覽器窗口 632包括客戶區(qū)域634和頭部區(qū)域636。頭部區(qū)域636是主要顯示關(guān)于Safari瀏覽器562的信息的區(qū)域,顯示用于操作Safari瀏覽器562的各種菜單、圖標(biāo)。此外,還顯示網(wǎng)頁(yè)的內(nèi)容本身以外的URL及標(biāo)題等網(wǎng)頁(yè)的元信息(meta-information)。
另一方面,客戶區(qū)域634是顯示網(wǎng)頁(yè)的內(nèi)容本身的區(qū)域??蛻魠^(qū)域634包含各自顯示不同網(wǎng)頁(yè)的多個(gè)框架(frame)。在第I實(shí)施方式中,假定包含框架a638、框架b640及框架c642。另外,假定在瀏覽器窗口 632中,頭部區(qū)域636被配置在客戶區(qū)域634的上部。框架a638由于其包含非顯示部分在內(nèi)的整體縱向長(zhǎng)度超過可視范圍的縱向長(zhǎng)度,故配置有縱向滾動(dòng)條646。此外,框架a638包含元素644。第I實(shí)施方式中的“元素”是被配置在框架內(nèi)、可被設(shè)定滾動(dòng)條的GUI元件,例如包含文本框或列表框。該圖的元素644由于其包含非顯示部分在內(nèi)的整體縱向長(zhǎng)度超過可視范圍的縱向長(zhǎng)度,故被配置有縱向滾動(dòng)條645。框架b640由于其包含非顯示部分在內(nèi)的整體橫向長(zhǎng)度超過可視范圍的橫向長(zhǎng)度,故被配置橫向滾動(dòng)條650。此外,框架b640包含表648。第I實(shí)施方式的動(dòng)作檢驗(yàn)裝置100在對(duì)瀏覽器窗口 632的顯示圖像進(jìn)行抓圖時(shí),將之按框架單位作為一個(gè)圖像數(shù)據(jù)來進(jìn)行保存。即,在對(duì)由多個(gè)框架構(gòu)成的網(wǎng)頁(yè)、換言之對(duì)將多個(gè)網(wǎng)頁(yè)進(jìn)行框架分割地顯示的網(wǎng)頁(yè)(以下為方便起見也稱為“首頁(yè)”)進(jìn)行畫面抓圖時(shí),保存各框架的抓像。另外,在瀏覽器窗口 632中不能一次性顯示框架整體的內(nèi)容,而需要滾動(dòng)的情況下,取得分別包含框架的一部分的多個(gè)圖像數(shù)據(jù),將使它們連接起來的圖像數(shù)據(jù)作為最終的抓像進(jìn)行保存。圖38表示圖37的瀏覽器窗口的抓像。圖38的(a)表示了框架a638的抓像。在第I實(shí)施方式的圖像抓圖處理中,包含圖37中所未顯示出的區(qū)域的框架a638整體被作為I張圖像來保存。此外,圖38的(b)表示了框架a638內(nèi)的元素644的抓像。在第I實(shí)施方式的圖像抓圖處理中,包含圖37中所未顯示出的區(qū)域的元素644整體被作為I張圖像來保存。圖38的(c)是框架b640的抓像,包含圖37中所未顯示出的區(qū)域的框架b640整體被作為I張圖像來保存。此外,雖然圖38中未圖示,但還取得框架c642的抓像。由于框架c642中未配置滾動(dòng)條,所以取得表示圖37中的顯示內(nèi)容的抓像。以下將應(yīng)對(duì)顯示圖像進(jìn)行抓圖的瀏覽器窗口稱為“抓圖對(duì)象窗口”,將抓圖對(duì)象窗口中所包含的框架稱為“抓圖對(duì)象框架”,將抓圖對(duì)象框架中所包含的元素稱為“抓圖對(duì)象元素”。此外,將在首頁(yè)中顯示于各個(gè)框架內(nèi)的網(wǎng)頁(yè)稱為“框架頁(yè)”。第I實(shí)施方式中的動(dòng)作檢驗(yàn)裝置100的主要功能構(gòu)成與在圖28及圖29中所示的參考技術(shù)4中的動(dòng)作檢驗(yàn)裝置100的功能構(gòu)成是一樣的。以下適當(dāng)省略在參考技術(shù)I 4中已說明過的結(jié)構(gòu)的說明,詳細(xì)說明用于網(wǎng)頁(yè)內(nèi)容的畫面抓圖處理的結(jié)構(gòu)。圖39是表示第I實(shí)施方式中的畫面抓圖處理的相關(guān)功能構(gòu)成的框圖。如已述的那樣,動(dòng)作檢驗(yàn)裝置100包括佐證物設(shè)定部170、代理處理部166、瀏覽器處理部160。佐證物設(shè)定部170調(diào)用代理處理部166所提供的后述的各種函數(shù)。代理處理部166與追加于網(wǎng)頁(yè)的程序代碼的控制代碼適時(shí)通信,使與佐證物設(shè)定部170所調(diào)用的函數(shù)對(duì)應(yīng)的JAVA腳本在瀏覽器處理部160側(cè)執(zhí)行。即,佐證物設(shè)定部170利用代理處理部166提供的各種函數(shù)來操作網(wǎng)頁(yè),并從瀏覽器處理部160和代理處理部166取得網(wǎng)頁(yè)圖像抓圖所需要的信息。圖40表示代理處理部166提供給佐證物設(shè)定部170的函數(shù)。這些函數(shù)也可以說是圖24的Selenium模塊530對(duì)外公開的函數(shù)。此外,該圖的“getOffsetPositionOfWindow”以外的函數(shù)可以是代理處理部166、即Selenium模塊530所標(biāo)準(zhǔn)提供的函數(shù)。第I實(shí)施方式的代理處理部166代理取得應(yīng)顯示于Safari瀏覽器562的首頁(yè),并對(duì)首頁(yè)追加控制代碼。另外,還代理取得應(yīng)顯示于首頁(yè)的框架中的框架頁(yè),對(duì)各框架頁(yè)也追加控制代碼。此時(shí),對(duì)顯示出網(wǎng)頁(yè)的瀏覽器窗口分配唯一的ID,并對(duì)該網(wǎng)頁(yè)上所顯示的各框架也分配ID。然后,將分配給窗口的ID和分配給框架的ID建立對(duì)應(yīng)地管理。
回到圖39,代理處理部166包含圖像位置確定部600。佐證物設(shè)定部170包括對(duì)象確定部612、框架處理部614、元素處理部619、圖像取得部625、圖像合成部627。該圖的各功能塊作為用于執(zhí)行網(wǎng)頁(yè)內(nèi)容的畫面抓圖處理的功能塊,也可總括地稱作畫面抓圖處理部629。當(dāng)然,畫面抓圖處理部629的各功能塊也可以根據(jù)代理處理部166提供給佐證物設(shè)定部170的函數(shù)的功能而配置于代理處理部166,或者配置于佐證物設(shè)定部170。代理處理部166 圖像位置確定部600實(shí)現(xiàn)圖40的函數(shù)“getOffsetPositionOfWindow”的功能。即,針對(duì)用上述函數(shù)的變量所指定的框架(抓圖對(duì)象框架),導(dǎo)出畫面630上的顯示位置,將表示該顯示位置的信息通知給佐證物設(shè)定部170。圖像位置確定部600包括窗口顯示位置取得部602、頭部區(qū)域確定部604、客戶區(qū)域確定部606、框架相對(duì)位置取得部608、框架顯示位置確定部610。窗口顯示位置取得部602取得顯示抓圖對(duì)象框架的瀏覽器窗口 632在畫面630上的顯示位置。在第I實(shí)施方式中,取得以畫面630的左上端為原點(diǎn)的正交坐標(biāo)系中的、瀏覽器窗口的左上端(圖37的點(diǎn)659)的坐標(biāo)。具體來說,窗口顯示位置取得部602與包含抓圖對(duì)象框架的首頁(yè)的控制代碼進(jìn)行通信,在首頁(yè)執(zhí)行“window. ScreenX”。然后,作為返回值,取得點(diǎn)659的橫坐標(biāo)值(圖37的橫坐標(biāo)652)。同樣,在首頁(yè)執(zhí)行“window. ScreenY”,作為返回值,取得點(diǎn)659的縱坐標(biāo)值(圖37的縱坐標(biāo)654)。頭部區(qū)域確定部604確定瀏覽器窗口 632中的頭部區(qū)域636的尺寸。在第I實(shí)施方式中,頭部區(qū)域636被配置在客戶區(qū)域634的上部,故頭部區(qū)域確定部604確定頭部區(qū)域636的縱向長(zhǎng)度。具體來說,頭部區(qū)域確定部604與包含抓圖對(duì)象框架的首頁(yè)的控制代碼進(jìn)行通信,在首頁(yè)執(zhí)行“window. OUterHeight^0然后,作為返回值,取得瀏覽器窗口 632的縱向長(zhǎng)度(圖37的縱向?qū)挾?56)。同樣,在首頁(yè)執(zhí)行“window. innerHeight”,作為返回值,取得客戶區(qū)域634的縱向長(zhǎng)度(圖37的縱向?qū)挾?58)。頭部區(qū)域確定部604通過從瀏覽器窗口632的縱向長(zhǎng)度減掉客戶區(qū)域634的縱向長(zhǎng)度,來導(dǎo)出頭部區(qū)域636的縱向長(zhǎng)度??蛻魠^(qū)域確定部606按照畫面630上的瀏覽器窗口 632的顯示位置和頭部區(qū)域636的尺寸,確定畫面630上的客戶區(qū)域634的顯示位置。具體來說,使瀏覽器窗口 632的左上端(點(diǎn)659)的坐標(biāo)的縱坐標(biāo)值加上頭部區(qū)域636的縱向長(zhǎng)度,并原樣使用點(diǎn)659的坐標(biāo)的橫坐標(biāo)值,來導(dǎo)出客戶區(qū)域634的左上端(點(diǎn)660)的坐標(biāo)??蚣芟鄬?duì)位置取得部608取得客戶區(qū)域634中的抓圖對(duì)象框架的位置。在第I實(shí)施方式中,取得以客戶區(qū)域634的左上端(圖37的點(diǎn)660)為原點(diǎn)的正交坐標(biāo)系中的、抓圖對(duì)象框架的左上端的坐標(biāo)(以下也稱“客戶區(qū)域內(nèi)坐標(biāo)”)。例如,抓圖對(duì)象框架是框架b640時(shí),取得圖37的點(diǎn)662的客戶區(qū)域內(nèi)坐標(biāo)。具體來說,框架相對(duì)位置取得部608與包含抓圖對(duì)象框架的首頁(yè)的控制代碼進(jìn)行通信,在首頁(yè)執(zhí)行“框架名.frameElement. offsetLeft”。然后作為返回值,取得抓圖對(duì)象框架的客戶區(qū)域內(nèi)坐標(biāo)的橫坐標(biāo)值。同樣,在首頁(yè)執(zhí)行“框架名.frameElement. offsetTop”,作為返回值,取得抓圖對(duì)象框架的客戶區(qū)域內(nèi)坐標(biāo)的縱坐標(biāo)值。
框架顯示位置確定部610按照客戶區(qū)域確定部606所導(dǎo)出的客戶區(qū)域634在畫面630上的顯示位置、和客戶區(qū)域634中的抓圖對(duì)象框架的位置,確定畫面630上的抓圖對(duì)象框架的顯示位置。具體來說,通過在客戶區(qū)域634的左上端坐標(biāo)的縱坐標(biāo)值和橫坐標(biāo)值上分別加上抓圖對(duì)象框架的客戶區(qū)域內(nèi)坐標(biāo)的縱坐標(biāo)值和橫坐標(biāo)值,來導(dǎo)出抓圖對(duì)象框架的左上端的坐標(biāo)(畫面630上的坐標(biāo))。佐證物設(shè)定部170 對(duì)象確定部612決定畫面630上所顯示的網(wǎng)頁(yè)內(nèi)容中的應(yīng)進(jìn)行圖像抓圖的對(duì)象內(nèi)容。具體來說,依次確定抓圖對(duì)象窗口、抓圖對(duì)象框架、抓圖對(duì)象元素。在第I實(shí)施方式中,用戶在函數(shù)設(shè)定畫面210中設(shè)定畫面抓圖函數(shù)(例如圖7的“WebScreenCapture”),作為其變量,設(shè)定應(yīng)抓圖的瀏覽器窗口的用戶分配ID。對(duì)象確定部612將與畫面抓圖函數(shù)的變量所指定的用戶分配ID對(duì)應(yīng)的瀏覽器窗口識(shí)別為抓圖對(duì)象窗□。此外,對(duì)象確定部612指定與畫面抓圖函數(shù)的變量所指定的用戶分配ID對(duì)應(yīng)的Selenium分配ID,調(diào)用函數(shù)“getAlIFrame”。然后,從代理處理部166取得抓圖對(duì)象窗口所包含的框架的一覽信息(以下也稱“框架列表”)。該框架列表中包含Selenium模塊530對(duì)抓圖對(duì)象窗口所包含的各框架所分配的各框架的ID (以下也稱“框架ID”)。對(duì)象確定部612將框架列表所包含的各框架識(shí)別為抓圖對(duì)象框架。此夕卜,對(duì)象確定部612指定抓圖對(duì)象框架各自的ID,調(diào)用函數(shù)“getScrollableElement”。然后,從代理處理部166取得抓圖對(duì)象框架所包含的可滾動(dòng)元素的一覽信息(以下也稱“元素列表”)。該元素列表中包括抓圖對(duì)象框架所包含的可滾動(dòng)的各元素的ID (以下也稱“元素ID”)。對(duì)象確定部612將元素列表所包含的各元素確定為抓圖對(duì)象元素??蚣芴幚聿?14執(zhí)行用于對(duì)抓圖對(duì)象框架進(jìn)行抓圖的準(zhǔn)備處理??蚣芴幚聿?14包括框架顯示位置取得部615、框架范圍取得部616、框架滾動(dòng)處理部617。框架顯示位置取得部615指定抓圖對(duì)象框架的框架ID,調(diào)用函數(shù)“getOffsetPositionOfWindow”。由此,使代理處理部166的圖像位置確定部600確定表示畫面630上的抓圖對(duì)象框架的顯示位置的坐標(biāo),從代理處理部166取得該坐標(biāo)值??蚣芊秶〉貌?16指定抓圖對(duì)象框架的框架ID,調(diào)用函數(shù)^getScrolIRectangleOfElement然后,從代理處理部166取得包括抓圖對(duì)象框架的不可視部分、即通過使之滾動(dòng)才顯示在畫面630上的部分在內(nèi)的整體尺寸,在此是取得抓圖對(duì)象框架整體的橫向長(zhǎng)度(橫向?qū)挾?和縱向長(zhǎng)度(縱向?qū)挾?。當(dāng)然,代理處理部166也可以在收到了函數(shù)“getScrolIRectangleOfElement”的調(diào)用時(shí),在首頁(yè)執(zhí)行因?yàn)g覽器處理部160的種類而不同的JAVA腳本。S卩,如第I實(shí)施方式那樣是Safari瀏覽器562的情況下,可以將“框架名.document, width”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架整體的橫向?qū)挾取M瑯?,可以將“框架?document, height”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架整體的縱向?qū)挾取A硪环矫?,在FF瀏覽器546的情況下,瀏覽器處理部160可以將“框架名.window. innerWidth”的執(zhí)行結(jié)果+“框架名.window. scrollMaxX”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架整體的橫向?qū)挾取M瑯?,可以將“框架?window. innerHeight”的執(zhí)行結(jié)果+“框架名.window. scrollMaxY”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架整體的縱向?qū)挾?。此外,框架范圍取得?16指定抓圖對(duì)象框架的框架ID,調(diào)用函數(shù)“getClientRectangle”。然后,從代理處理部166取得包含抓圖對(duì)象框架的可視部分、即不 滾動(dòng)就顯示在畫面630上的部分的尺寸,在此是取得抓圖對(duì)象框架中的可視部分的橫向?qū)挾群涂v向覽度。代理處理部166在收到函數(shù)“getClientRectangle”的調(diào)用時(shí),在首頁(yè)執(zhí)行與該函數(shù)對(duì)應(yīng)的JAVA腳本。例如可以將“框架名.document. documentElement. clientWidth”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架中的可視部分的橫向?qū)挾?。同樣,可以將“框架?document.documentElement. clientHeight”的執(zhí)行結(jié)果確定為抓圖對(duì)象框架中的可視部分的縱向覽度??蚣軡L動(dòng)處理部617將抓圖對(duì)象框架整體的橫向?qū)挾扔闷淇梢暡糠值臋M向?qū)挾葋沓?余數(shù)進(jìn)位),將其結(jié)果決定為橫向滾動(dòng)上限次數(shù)。此外,將抓圖對(duì)象框架整體的縱向?qū)挾扔闷淇梢暡糠值目v向?qū)挾葋沓?余數(shù)進(jìn)位),將其結(jié)果決定為縱向滾動(dòng)上限次數(shù)。另外,在被進(jìn)行抓圖對(duì)象框架的圖像取得后,框架滾動(dòng)處理部617在下一次取得圖像前,使框架縱向滾動(dòng),或者使之縱向滾動(dòng)和橫向滾動(dòng)。具體來說,為執(zhí)行縱向滾動(dòng),指定抓圖對(duì)象框架的框架ID,將橫向滾動(dòng)量指定為0,而作為縱向滾動(dòng)量,指定抓圖對(duì)象框架的可視部分的縱向?qū)挾?,來調(diào)用函數(shù)“doSCTollFrameTo”。此外,為執(zhí)行橫向滾動(dòng),指定抓圖對(duì)象框架的框架ID,將橫向滾動(dòng)量指定為抓圖對(duì)象框架的可視部分的橫向?qū)挾?,并將縱向滾動(dòng)量指定為0,來調(diào)用函數(shù)“doScroIIFrameTo”。在第I實(shí)施方式中,所謂反N型地執(zhí)行滾動(dòng)。即,首先,框架滾動(dòng)處理部617在每次圖像取得處理時(shí)固定橫向位置地進(jìn)行一次縱向滾動(dòng),直到達(dá)到其上限次數(shù)。接著,使縱向位置回到初始位置,并執(zhí)行一次橫向滾動(dòng)。然后,再次固定橫向位置地反復(fù)進(jìn)行縱向滾動(dòng),直到其上限次數(shù)。然后,當(dāng)縱向滾動(dòng)次數(shù)和橫向滾動(dòng)次數(shù)都達(dá)到上限次數(shù)時(shí),結(jié)束對(duì)抓圖對(duì)象框架的滾動(dòng)處理。元素處理部619執(zhí)行用于對(duì)抓圖對(duì)象元素進(jìn)行抓圖的準(zhǔn)備處理。元素處理部619包括元素相對(duì)位置取得部620、元素顯示位置確定部621、元素范圍取得部622、元素滾動(dòng)處理部623。元素相對(duì)位置取得部620指定抓圖對(duì)象元素的元素ID,調(diào)用函數(shù)“getOffsetPositionOfElement”。然后,取得以包含抓圖對(duì)象元素的框架的左上端為原點(diǎn)的正交坐標(biāo)系中的、抓圖對(duì)象元素的左上端的坐標(biāo)(以下也稱“框架內(nèi)坐標(biāo)”)。例如針對(duì)框架a638所包含的元素644,取得以點(diǎn)662為原點(diǎn)的元素644的左上端坐標(biāo)。代理處理部166收到函數(shù)“getOffsetPositionOfElement”的調(diào)用時(shí),在框架頁(yè)執(zhí)行與該函數(shù)對(duì)應(yīng)的JAVA腳本。例如可以執(zhí)行“元素名.getBoundingClientRect. left”,作為其返回值,取得抓圖對(duì)象元素的框架內(nèi)坐標(biāo)的橫坐標(biāo)值。同樣,可以執(zhí)行“元素名.getBoundingClientRect. top”,作為其返回值,取得抓圖對(duì)象元素的框架內(nèi)坐標(biāo)的縱坐標(biāo)值。元素顯示位置確定部621按照由框架顯示位置取得部615取得的表示畫面630上的抓圖對(duì)象框架的顯示位置的坐標(biāo)、和由元素相對(duì)位置取得部620取得的抓圖對(duì)象元素的框架內(nèi)坐標(biāo),確定畫面630上的抓圖對(duì)象元素的顯示位置。具體來說,通過對(duì)抓圖對(duì)象框架的左上端坐標(biāo)的縱坐標(biāo)值和橫坐標(biāo)值分別加上抓圖對(duì)象元素的框架內(nèi)坐標(biāo)的縱坐標(biāo)值和橫坐標(biāo)值,來導(dǎo)出抓圖對(duì)象元素的左上端的坐標(biāo)(畫面630上的坐標(biāo))。 元素范圍取得部622指定抓圖對(duì)象元素的元素ID,調(diào)用函數(shù)^getScrolIRectangleOfElement然后,從代理處理部166取得包含抓圖對(duì)象框架的不可視部分的整體尺寸,在此是取得抓圖對(duì)象框架整體的橫向?qū)挾群涂v向?qū)挾?。代理處理?66在收到函數(shù)“getScrollRectangleOfElement”的調(diào)用時(shí),在框架頁(yè)執(zhí)行與該函數(shù)對(duì)應(yīng)的JAVA腳本。例如可以執(zhí)行“元素名.scrollWidth”,作為其返回值,取得抓圖對(duì)象元素整體的橫向?qū)挾?。同樣,可以?zhí)行“元素名.scrollHeight”,作為其返回值,取得抓圖對(duì)象元素的框架內(nèi)坐標(biāo)的縱向?qū)挾?。此外,元素范圍取得?22指定抓圖對(duì)象元素的元素ID,調(diào)用函數(shù)“getClientRectangleOfElement”。然后,從代理處理部166取得抓圖對(duì)象元素的可視部分的尺寸,在此是取得抓圖對(duì)象框架中的可視部分的橫向?qū)挾群涂v向?qū)挾?。代理處理?66收到函數(shù)“getClientRectangleOfElement”的調(diào)用時(shí),在框架頁(yè)執(zhí)行與該函數(shù)對(duì)應(yīng)的JAVA腳本。例如可以取得“元素名.clientWidth”的執(zhí)行結(jié)果作為抓圖對(duì)象元素中的可視部分的橫向?qū)挾?。同樣,可以取得“元素?clientHeight”的執(zhí)行結(jié)果作為抓圖對(duì)象元素中的可視部分的縱向?qū)挾取T貪L動(dòng)處理部623將抓圖對(duì)象元素整體的橫向?qū)挾扔闷淇梢暡糠值臋M向?qū)挾葋沓?余數(shù)進(jìn)位),將其結(jié)果決定為橫向滾動(dòng)上限次數(shù)。此外,將抓圖對(duì)象元素整體的縱向?qū)挾扔闷淇梢暡糠值目v向?qū)挾葋沓?余數(shù)進(jìn)位),將其結(jié)果決定為縱向滾動(dòng)上限次數(shù)。在被執(zhí)行抓圖對(duì)象元素的圖像取得后,元素滾動(dòng)處理部623在下一次圖像取得前,使元素縱向滾動(dòng),或者使之縱向滾動(dòng)和橫向滾動(dòng)。具體來說,為執(zhí)行縱向滾動(dòng),指定抓圖對(duì)象元素的元素ID,將橫向滾動(dòng)量指定為0,作為縱向滾動(dòng)量,指定抓圖對(duì)象元素的可視部分的縱向?qū)挾?,這樣調(diào)用函數(shù)“doScrolIElementTo”。另外,為執(zhí)行橫向滾動(dòng),指定抓圖對(duì)象元素的元素ID,作為橫向滾動(dòng)量,指定抓圖對(duì)象元素的可視部分的橫向?qū)挾?,并?duì)縱向滾動(dòng)量指定為0,這樣來調(diào)用函數(shù)“doSCTollElementTo”。元素的滾動(dòng)方式同已述的框架的滾動(dòng)方式是一樣的。圖像取得部625按照畫面630上的抓圖對(duì)象框架的顯示位置對(duì)抓圖對(duì)象框架的顯示圖像進(jìn)行抓圖。并按照畫面630上的抓圖對(duì)象元素的顯示位置,對(duì)抓圖對(duì)象元素的顯示圖像進(jìn)行抓圖。第I實(shí)施方式的圖像取得部625將瀏覽器窗口 632的頭部區(qū)域636從抓圖對(duì)象中排除出去。即,取得被排除了頭部區(qū)域636的顯示圖像的、純粹是抓圖對(duì)象框架的顯示圖像。例如,圖像取得部625可以指定畫面630上的抓圖對(duì)象框架的左上端的坐標(biāo)值作為始點(diǎn),并指定抓圖對(duì)象元素的可視部分的橫向?qū)挾群涂v向?qū)挾茸鳛樽D范圍,來調(diào)用OS的畫面抓圖函數(shù)(API)。然后,可以使抓圖對(duì)象元素的可視部分的圖像數(shù)據(jù)保存在存儲(chǔ)器(剪貼板)內(nèi)。另外,圖像取得部625反復(fù)進(jìn)行抓圖對(duì)象框架的抓圖處理,直到框架滾動(dòng)處理部617所決定的縱橫的滾動(dòng)次數(shù)達(dá)到上限。同樣,反復(fù)進(jìn)行抓圖對(duì)象元素的抓圖處理,直到元素滾動(dòng)處理部623所決定的縱橫的滾動(dòng)次數(shù)達(dá)到上限。因此,對(duì)應(yīng)被設(shè)定有滾動(dòng)條的框架或元素,將多個(gè)抓像的數(shù)據(jù)取入存儲(chǔ)器內(nèi)。
圖像合成部627將針對(duì)一個(gè)抓圖對(duì)象框架的多次圖像取得處理所取得的多個(gè)抓像的數(shù)據(jù)合成為I張圖像數(shù)據(jù)。然后,針對(duì)I個(gè)抓圖對(duì)象框架,將I張圖像數(shù)據(jù)作為動(dòng)作測(cè)試的佐證物存儲(chǔ)到結(jié)果保持部152中。針對(duì)元素也是一樣,對(duì)于一個(gè)抓圖對(duì)象框架,將
I張圖像數(shù)據(jù)作為動(dòng)作測(cè)試的佐證物而存儲(chǔ)到結(jié)果保持部152中。另外,若多個(gè)抓像間存在重復(fù)部分,則從一者的抓像中修整掉該重復(fù)部分后,合成為I張圖像。下面說明以上結(jié)構(gòu)的動(dòng)作。圖41是表示動(dòng)作檢驗(yàn)裝置100中的圖像抓圖處理的動(dòng)作的流程圖。在動(dòng)作測(cè)試執(zhí)行中,若收到了網(wǎng)頁(yè)的圖像抓圖要求(S600的Y),則對(duì)象確定部612從代理處理部166取得該要求所指定的抓圖對(duì)象窗口中所包含的框架的列表(S602)。對(duì)象確定部612將框架列表所包含的框架之一確定為抓圖對(duì)象框架(S604)??蚣茱@示位置取得部615指定抓圖對(duì)象框架,使代理處理部166執(zhí)行后述的框架顯示位置確定處理(S606)??蚣芊秶〉貌?16取得抓圖對(duì)象框架整體的尺寸及其可視部分的尺寸(S608)??蚣軡L動(dòng)處理部617按照抓圖對(duì)象框架整體的尺寸及其可視部分的尺寸,分別決定應(yīng)對(duì)抓圖對(duì)象框架執(zhí)行的縱橫的滾動(dòng)上限次數(shù)(S610)。圖像取得部625將抓圖對(duì)象框架的可視部分的圖像暫時(shí)存儲(chǔ)到存儲(chǔ)器中(S612)。若未達(dá)到滾動(dòng)的上限次數(shù)(S614的N),則框架滾動(dòng)處理部617使抓圖對(duì)象框架滾動(dòng)I單位量,由此使抓圖對(duì)象框架的顯示內(nèi)容(即可視部分)變化后,返回S612 (S616)。當(dāng)達(dá)到滾動(dòng)的上限次數(shù)時(shí)(S614的Y),圖像合成部627取得針對(duì)抓圖對(duì)象框架而暫時(shí)保存的多個(gè)抓像,設(shè)定將它們合成后的I張圖像數(shù)據(jù)。然后,將合成后的圖像數(shù)據(jù)作為動(dòng)作測(cè)試的佐證物而存儲(chǔ)到結(jié)果保持部152中(S618)。當(dāng)然,若抓像本就是I張,則就將該圖像作為佐證物存儲(chǔ)到結(jié)果保持部152中。對(duì)象確定部612從代理處理部166取得抓圖對(duì)象框架所包含的元素的列表。若還有未抓圖的元素(即抓圖對(duì)象元素)(S620的N),則元素相對(duì)位置取得部620取得抓圖對(duì)象框架內(nèi)的抓圖對(duì)象元素的位置(S622)。元素顯示位置確定部621按照畫面上的抓圖對(duì)象框架的顯示位置和抓圖對(duì)象框架內(nèi)的抓圖對(duì)象元素的位置,導(dǎo)出畫面上的抓圖對(duì)象元素的顯示位置(S624)。然后返回S608。在元素的抓圖處理中,元素范圍取得部622取得抓圖對(duì)象元素整體的尺寸及其可視部分的尺寸(S608)。元素滾動(dòng)處理部623按照抓圖對(duì)象元素整體的尺寸及其可視部分的尺寸,分別決定應(yīng)對(duì)抓圖對(duì)象元素執(zhí)行的縱橫的滾動(dòng)上限次數(shù)(S610)。圖像取得部625將抓圖對(duì)象元素的可視部分的圖像暫時(shí)存儲(chǔ)到存儲(chǔ)器中(S612)。若未達(dá)到滾動(dòng)的上限次數(shù)(S614的N),則元素滾動(dòng)處理部623使抓圖對(duì)象元素滾動(dòng)I單位量后,返回S612 (S616)。當(dāng)達(dá)到滾動(dòng)的上限次數(shù)時(shí)(S614的Y),圖像合成部627取得針對(duì)抓圖對(duì)象元素所暫時(shí)保存的多個(gè)抓像,設(shè)定將它們合成后的I張圖像數(shù)據(jù)(S618)。當(dāng)針對(duì)所有抓圖對(duì)象元素的抓圖處理都已完成時(shí)(S620的Y),若針對(duì)框架列表的一部分框架的抓圖處理尚未完成(S626的N),則返回S604,新決定抓圖對(duì)象框架,繼續(xù)進(jìn)行處理。若針對(duì)框架列表的所有框架的抓圖處理都已完成(S626的Y),則結(jié)束本圖的流程。當(dāng)然,若未收到網(wǎng)頁(yè)的圖像抓圖要求(S600的N),則以后的處理被跳過,結(jié)束本圖的流程。圖42是詳細(xì)表示圖41的S606的框架顯示位置確定處理的流程圖。窗口顯示位置取得部602針對(duì)包含抓圖對(duì)象框架的抓圖對(duì)象窗口,取得其在畫面上的顯示位置(S630)。頭部區(qū)域確定部604通過計(jì)算抓圖對(duì)象窗口整體的尺寸與客戶區(qū)域634的尺寸的差,來導(dǎo) 出頭部區(qū)域636的尺寸(S632)。客戶區(qū)域確定部606按照畫面上的抓圖對(duì)象窗口的顯示位置和頭部區(qū)域636的尺寸,導(dǎo)出畫面上的客戶區(qū)域634的顯示位置(S634)??蚣芟鄬?duì)位置取得部608取得客戶區(qū)域634內(nèi)的抓圖對(duì)象框架的位置(S636)??蚣茱@示位置確定部610按照畫面上的客戶區(qū)域634的顯示位置和客戶區(qū)域634中的抓圖對(duì)象框架的位置,導(dǎo)出畫面上的抓圖對(duì)象框架的顯示位置(S638)。通過第I實(shí)施方式的動(dòng)作檢驗(yàn)裝置100,僅將確認(rèn)動(dòng)作測(cè)試的成功與否所需要網(wǎng)頁(yè)的顯示圖像作為佐證物保存。具體來說,能將框架內(nèi)所顯示的網(wǎng)頁(yè)的內(nèi)容本身,即排除掉頭部區(qū)域等多余部分、換言之排除掉構(gòu)成對(duì)動(dòng)作測(cè)試的結(jié)果確認(rèn)的干擾的部分后的抓像提示給用戶。由此,能對(duì)高效率的動(dòng)作測(cè)試進(jìn)行輔助。(第2實(shí)施方式)本發(fā)明的第2實(shí)施方式(以下也稱“第2實(shí)施方式”)在瀏覽器窗口 632中所起動(dòng)的網(wǎng)頁(yè)瀏覽器為FF瀏覽器546這一點(diǎn)上不同于第I實(shí)施方式。圖43表示瀏覽器窗口中的網(wǎng)頁(yè)內(nèi)容的顯示例子。對(duì)于該圖的要素中的與之前說明過的圖37的要素相同或?qū)?yīng)的要素,賦予與圖37相同的標(biāo)號(hào),并在以下的說明中省略。如圖43所不,第2實(shí)施方式的瀏覽器窗口 632不同于第I實(shí)施方式的瀏覽器窗口 632,在客戶區(qū)域634的下部具有固定長(zhǎng)度(例如26像素)的狀態(tài)欄。此外,第2實(shí)施方式的瀏覽器窗口 632具有被設(shè)定為某程度寬度(例如固定長(zhǎng)度4像素)的框線666作為與瀏覽器窗口外部的對(duì)象(其它窗口或背景等)的邊界。第2實(shí)施方式中的動(dòng)作檢驗(yàn)裝置100的主要功能構(gòu)成同第I實(shí)施方式一樣,主要?jiǎng)幼饕餐贗實(shí)施方式一樣。以下針對(duì)第2實(shí)施方式中的動(dòng)作檢驗(yàn)裝置100,說明其不同于第I實(shí)施方式的點(diǎn)。圖像位置確定部600的頭部區(qū)域確定部604還考慮狀態(tài)欄664的尺寸(寬度)地確定頭部區(qū)域636的尺寸。具體來說,從瀏覽器窗口 632的縱向?qū)挾戎袦p去客戶區(qū)域634的縱向?qū)挾?,并減去狀態(tài)欄664的縱向長(zhǎng)度、在此是預(yù)先確定的26像素,由此來導(dǎo)出頭部區(qū)域636的縱向長(zhǎng)度。當(dāng)然,固定值的26像素嚴(yán)謹(jǐn)?shù)卣f也可以說是狀態(tài)欄664的縱向長(zhǎng)度和框線666的寬度的合計(jì)值。圖像位置確定部600的客戶區(qū)域確定部606還考慮框線666的尺寸(寬度)地確定畫面630中的客戶區(qū)域634的顯示位置。具體來說,使瀏覽器窗口 632的左上端的坐標(biāo)的縱坐標(biāo)值加上頭部區(qū)域636的縱向長(zhǎng)度,并使該坐標(biāo)的橫坐標(biāo)值加上框線666的寬度、在此是預(yù)先確定的4像素,由此來導(dǎo)出客戶區(qū)域634的左上端的坐標(biāo)。通過第2實(shí)施方式的動(dòng)作檢驗(yàn)裝置100,即使是使用了在瀏覽器窗口 632中配置有狀態(tài)欄664和具有某程度寬度的框線666的網(wǎng)頁(yè)瀏覽器的動(dòng)作測(cè)試,也能實(shí)現(xiàn)與第I實(shí)施方式一樣的效果。即,能將排除了頭部區(qū)域以及狀態(tài)欄或框線等對(duì)動(dòng)作測(cè)試的結(jié)果確認(rèn)起到干擾的部分的抓像提示給用戶。以上基于第I實(shí)施方式和第2實(shí)施方式說明了本發(fā)明。該實(shí)施方式只是例示,本領(lǐng)域技術(shù)人員當(dāng)理解可以對(duì)其各構(gòu)成要素和各處理過程的組合進(jìn)行各種變形,并且這樣的變形例也包含在本發(fā)明的范圍內(nèi)。下面表示變形例。 說明第I變形例。在上述實(shí)施方式中,是假定頭部區(qū)域636被配置在客戶區(qū)域634的上部的,但瀏覽器窗口 632的樣式不限于此。例如頭部區(qū)域636也可以被配置在客戶區(qū)域634的左側(cè)。在該情況下,頭部區(qū)域確定部604可以取得瀏覽器窗口 632的橫向長(zhǎng)度和 客戶區(qū)域634的橫向長(zhǎng)度,并計(jì)算它們的差,由此來確定頭部區(qū)域636的橫向長(zhǎng)度。然后,客戶區(qū)域確定部606可以使瀏覽器窗口 632的左上端的橫坐標(biāo)值加上頭部區(qū)域636的橫向長(zhǎng)度,并原樣使用其縱坐標(biāo)值,來導(dǎo)出客戶區(qū)域634的左上端的坐標(biāo)。說明第2變形例。在上述實(shí)施方式中并未特別言及,但第I實(shí)施方式和第2實(shí)施方式也可以相組合,在一個(gè)動(dòng)作檢驗(yàn)裝置100中來實(shí)現(xiàn)。例如,代理處理部166可以包括對(duì)起動(dòng)Safari瀏覽器562的瀏覽器窗口的顯示圖像進(jìn)行抓圖時(shí)所被調(diào)用的第I圖像位置確定部,和在對(duì)起動(dòng)FF瀏覽器546的瀏覽器窗口的顯示圖像進(jìn)行抓圖時(shí)所被調(diào)用的第2圖像位置確定部。然后,代理處理部166可以根據(jù)成為抓圖對(duì)象的瀏覽器窗口的種類而使某一者動(dòng)作。作為另一種結(jié)構(gòu),圖像位置確定部600的頭部區(qū)域確定部604和客戶區(qū)域確定部606可以根據(jù)成為抓圖對(duì)象的瀏覽器窗口的種類而執(zhí)行第I實(shí)施方式所記載的動(dòng)作或第2實(shí)施方式所記載的動(dòng)作的某一者。當(dāng)然,瀏覽器窗口的種類可以由用戶在動(dòng)作測(cè)試開始時(shí)的變量、各種設(shè)定文件中指定,并從OS或?yàn)g覽器處理部160動(dòng)態(tài)地讀入。說明第3變形例。在上述實(shí)施方式中表示了客戶區(qū)域634被分割成多個(gè)框架的例子,但客戶區(qū)域634也可以不被分割成多個(gè)框架。在該情況下,框架處理部614只要將客戶區(qū)域整體視為一個(gè)框架,與實(shí)施方式同樣地進(jìn)行動(dòng)作即可。此外,元素處理部619只要將客戶區(qū)域整體所含的元素視為一個(gè)框架所含的元素,與實(shí)施方式同樣地進(jìn)行動(dòng)作即可。說明第4變形例。在上述實(shí)施方式中,作為網(wǎng)頁(yè)瀏覽器,例示了 Safari瀏覽器562和FF瀏覽器546。但本發(fā)明的技術(shù)思想的適用范圍不限于這幾種網(wǎng)頁(yè)瀏覽器。例如對(duì)于在瀏覽器窗口 632中未配置狀態(tài)欄664,并且框線666的寬度不足預(yù)定值的網(wǎng)頁(yè)瀏覽器,也能適用第I實(shí)施方式的技術(shù)。此外,對(duì)于配置有狀態(tài)欄664,并且框線666的寬度在預(yù)定值以上的網(wǎng)頁(yè)瀏覽器,也能適用第2實(shí)施方式的技術(shù)。另外,本領(lǐng)域技術(shù)人員能理解在配置有狀態(tài)欄664但框線666的寬度不足預(yù)定值時(shí)、以及反過來未配置狀態(tài)欄664但框線666的寬度在預(yù)定值以上時(shí),可以適當(dāng)選擇第I實(shí)施方式和第2實(shí)施方式的構(gòu)成來組合。說明第5變形例。在上述實(shí)施方式中并未特別言及,但動(dòng)作檢驗(yàn)裝置100可以還具有對(duì)照?qǐng)D像保持部,保存用于對(duì)照與動(dòng)作測(cè)試中所取得的抓像是否一致的對(duì)照?qǐng)D像。該對(duì)照?qǐng)D像同實(shí)施方式的抓像一樣,是按框架單位、元素單位設(shè)定的圖像數(shù)據(jù)。另外,動(dòng)作檢驗(yàn)裝置100可以還包括對(duì)照部,判定作為佐證物的抓像與對(duì)照?qǐng)D像是否一致。作為佐證物的抓像是動(dòng)作測(cè)試中的抓像,換言之是由圖像合成部627所合成的圖像,再換言之是被存儲(chǔ)在結(jié)果保持部152中的抓像。對(duì)照部可以將抓像與對(duì)照?qǐng)D像是否一致的判定結(jié)果存儲(chǔ)到預(yù)定的存儲(chǔ)區(qū)域(文件或DB等)中而通知給用戶。通過該變形例,能使動(dòng)作正常性的判定自動(dòng)化,輔助高效的動(dòng)作測(cè)試。另外,由于在上述實(shí)施方式中是排除掉頭部區(qū)域后的純粹的網(wǎng)頁(yè)內(nèi)容的內(nèi)容被抓圖的,故無需對(duì)照區(qū)域的排除設(shè)定(所謂的掩模處理),能容易地判定抓像與對(duì)照?qǐng)D像是否一致。上述參考技術(shù)、實(shí)施方式、變形例的任意組合作為本發(fā)明的實(shí)施方式也是有用的。通過組合而產(chǎn)生的新的實(shí)施方式兼具所組合的參考技術(shù)、實(shí)施方式、變形例各自的效果。本領(lǐng)域技術(shù)人員還能理解權(quán)利要求記載的各構(gòu)成要件所應(yīng)發(fā)揮的功能可以由參考技術(shù)、實(shí)施方式及變形例中所示的各構(gòu)成要素的單體或其協(xié)作來實(shí)現(xiàn)。
〔標(biāo)號(hào)說明〕100動(dòng)作檢驗(yàn)裝置、160瀏覽器處理部、166代理處理部、170佐證物設(shè)定部、600圖像位置確定部、602窗口顯示位置取得部、604頭部區(qū)域確定部、606客戶區(qū)域確定部、608框架相對(duì)位置取得部、610框架顯示位置確定部、612對(duì)象確定部、625圖像取得部、627圖像合成部、630畫面、632瀏覽器窗口、634客戶區(qū)域、636頭部區(qū)域、664狀態(tài)欄、666框線。〔工業(yè)可利用性〕本發(fā)明能適用于測(cè)試產(chǎn)品的動(dòng)作的裝置。
權(quán)利要求
1.一種圖像取得裝置,其特征在于,包括 窗口位置取得部,針對(duì)包括顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于上述客戶區(qū)域的附加區(qū)域的瀏覽器窗口,取得畫面上的上述瀏覽器窗口的顯示位置, 圖像位置確定部,按照上述畫面上的上述瀏覽器窗口的顯示位置、上述瀏覽器窗口的附加區(qū)域的尺寸,確定上述畫面上的上述客戶區(qū)域的顯示位置,以及 圖像取得部,按照上述圖像位置確定部所確定的上述畫面上的顯示位置,對(duì)上述客戶區(qū)域的顯示圖像進(jìn)行抓圖。
2.如權(quán)利要求I所述的圖像取得裝置,其特征在于, 上述圖像取得部將上述瀏覽器窗口的附加區(qū)域從抓圖對(duì)象中排除。
3.如權(quán)利要求I或2所述的圖像取得裝置,其特征在于, 上述圖像位置確定部包括 附加區(qū)域確定部,取得上述瀏覽器窗口的長(zhǎng)度和上述客戶區(qū)域的長(zhǎng)度,通過計(jì)算它們的差來導(dǎo)出上述附加區(qū)域的長(zhǎng)度,和 客戶區(qū)域確定部,將使上述畫面上的上述瀏覽器窗口的顯示位置根據(jù)上述附加區(qū)域的長(zhǎng)度而變位后的位置,確定為上述畫面上的上述客戶區(qū)域的顯示位置。
4.如權(quán)利要求3所述的圖像取得裝置,其特征在于, 在上述瀏覽器窗口中,上述附加區(qū)域被配置在上述客戶區(qū)域的上部; 上述窗口位置取得部取得正交坐標(biāo)系中的上述瀏覽器窗口的左上坐標(biāo)作為上述畫面上的上述瀏覽器窗口的顯示位置; 上述附加區(qū)域確定部確定上述附加區(qū)域的縱向長(zhǎng)度; 上述客戶區(qū)域確定部通過使上述瀏覽器窗口的左上坐標(biāo)中的縱坐標(biāo)值加上上述附加區(qū)域的縱向長(zhǎng)度,來導(dǎo)出上述正交坐標(biāo)系中的上述客戶區(qū)域的左上坐標(biāo)。
5.如權(quán)利要求I至4的任一項(xiàng)所述的圖像取得裝置,其特征在于, 上述客戶區(qū)域中包含多個(gè)框架; 本裝置還包括框架位置取得部,針對(duì)上述多個(gè)框架中的抓圖對(duì)象框架,取得上述客戶區(qū)域中的上述抓圖對(duì)象框架的位置; 上述圖像位置確定部按照上述畫面上的上述客戶區(qū)域的顯示位置和上述客戶區(qū)域中的上述抓圖對(duì)象框架的位置,確定上述畫面上的上述抓圖對(duì)象框架的顯示位置; 上述圖像取得部按照上述畫面上的上述抓圖對(duì)象框架的顯示位置,對(duì)上述抓圖對(duì)象框架的顯示圖像進(jìn)行抓圖。
6.一種由圖像取得裝置執(zhí)行的圖像取得方法,其特征在于,包括 針對(duì)包含顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于上述客戶區(qū)域的附加區(qū)域的瀏覽器窗口,取得畫面上的上述瀏覽器窗口的顯示位置的步驟, 按照上述畫面上的上述瀏覽器窗口的顯示位置和上述瀏覽器窗口的附加區(qū)域的尺寸,確定上述畫面上的上述客戶區(qū)域的顯示位置的確定步驟,以及 按照在上述確定步驟中所確定的上述畫面上的顯示位置,對(duì)上述客戶區(qū)域的顯示圖像進(jìn)行抓圖的步驟。
7.一種計(jì)算機(jī)程序,使圖像取得裝置實(shí)現(xiàn)以下功能 針對(duì)包括顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于上述客戶區(qū)域的附加區(qū)域的瀏覽器窗口,取得畫面上的上述瀏覽器窗口的顯示位置的功能, 按照上述畫面上的上述瀏覽器窗口的顯示位置和上述瀏覽器窗口的附加區(qū)域的尺寸,確定上述畫面上的上述客戶區(qū)域的顯示位置的確定功能,以及 按照由上述確定功能所確定的上述畫面上的顯示位置,對(duì)上述客戶區(qū)域的顯示圖像進(jìn)行抓圖的功能。
全文摘要
動(dòng)作檢驗(yàn)裝置(100)包括窗口顯示位置取得部(602),針對(duì)包括顯示網(wǎng)頁(yè)的客戶區(qū)域和不同于客戶區(qū)域的附加區(qū)域的瀏覽器窗口,取得畫面上的瀏覽器窗口的顯示位置;客戶區(qū)域確定部(606),按照畫面上的瀏覽器窗口的顯示位置和瀏覽器窗口中的附加區(qū)域的尺寸,確定畫面上的客戶區(qū)域的顯示位置;圖像取得部(625),按照所確定的畫面上的顯示位置,對(duì)客戶區(qū)域的顯示圖像進(jìn)行抓圖。
文檔編號(hào)G06F15/00GK102713876SQ20108004308
公開日2012年10月3日 申請(qǐng)日期2010年9月28日 優(yōu)先權(quán)日2010年9月28日
發(fā)明者三宅光太郎, 今井久夫, 溝口拓治, 石橋琢磨, 高畠勇人 申請(qǐng)人:株式會(huì)社野村綜合研究所