本技術(shù)涉及計(jì)算機(jī),尤其涉及一種應(yīng)用程序的適配程序測(cè)試方法及裝置。
背景技術(shù):
1、為了使得基于某種操作系統(tǒng)構(gòu)建的應(yīng)用程序適配不同的操作系統(tǒng),需要在操作系統(tǒng)中部署適配程序,應(yīng)用程序能夠基于適配程序運(yùn)行在不同的操作系統(tǒng)。
2、目前,通常由開發(fā)人員手動(dòng)點(diǎn)擊運(yùn)行在操作系統(tǒng)中的應(yīng)用程序中的按鈕控件,觀察是否有異常現(xiàn)象出現(xiàn),以此測(cè)試適配程序是否能夠使得應(yīng)用程序在操作系統(tǒng)中正常運(yùn)行。如果有異?,F(xiàn)象,那么開發(fā)人員基于所觀察到的異?,F(xiàn)象對(duì)操作系統(tǒng)中部署的適配程序進(jìn)行優(yōu)化,以使得應(yīng)用程序能夠在操作系統(tǒng)中正常運(yùn)行。
3、但是,這種測(cè)試適配程序的方式依賴于開發(fā)人員,存在測(cè)試效率較低的情況。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,本技術(shù)提供了一種應(yīng)用程序的適配程序測(cè)試方法及裝置,以提高對(duì)應(yīng)用程序在操作系統(tǒng)中所用的適配程序的測(cè)試效率。具體方案如下:
2、本技術(shù)第一方面提供一種應(yīng)用程序的適配程序測(cè)試方法,所述方法包括:
3、在目標(biāo)應(yīng)用被啟動(dòng)后,獲得所述目標(biāo)應(yīng)用運(yùn)行在目標(biāo)運(yùn)行環(huán)境中的至少一個(gè)應(yīng)用進(jìn)程;所述目標(biāo)運(yùn)行環(huán)境為適配程序在第一操作系統(tǒng)中所構(gòu)建的運(yùn)行環(huán)境;所述目標(biāo)應(yīng)用為基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序;
4、獲得所述目標(biāo)運(yùn)行環(huán)境中的初始窗體;所述初始窗體為所述目標(biāo)運(yùn)行環(huán)境中的所有頂層窗體;
5、從所述初始窗體中,篩選出屬于所述應(yīng)用進(jìn)程的目標(biāo)窗體;
6、對(duì)所述目標(biāo)窗體中的按鈕控件進(jìn)行識(shí)別,以得到按鈕列表,所述按鈕列表中包含至少一個(gè)按鈕控件;
7、對(duì)所述按鈕列表中的按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作,以得到所述按鈕控件對(duì)應(yīng)的測(cè)試結(jié)果,所述測(cè)試結(jié)果表征所述適配程序是否使得所述目標(biāo)應(yīng)用能夠在所述目標(biāo)運(yùn)行環(huán)境中提供服務(wù)。
8、在一種可能的實(shí)現(xiàn)中,所述獲得所述目標(biāo)應(yīng)用運(yùn)行在目標(biāo)運(yùn)行環(huán)境中的至少一個(gè)應(yīng)用進(jìn)程,包括:
9、生成所述目標(biāo)運(yùn)行環(huán)境中的進(jìn)程快照;
10、對(duì)所述進(jìn)程快照進(jìn)行處理,以得到所述目標(biāo)運(yùn)行環(huán)境中的第一進(jìn)程列表,所述第一進(jìn)程列表包含至少一個(gè)進(jìn)程;
11、篩選所述第一進(jìn)程列表中相對(duì)于第二進(jìn)程列表中進(jìn)程的新增進(jìn)程,以得到所述目標(biāo)應(yīng)用在目標(biāo)運(yùn)行環(huán)境中的至少一個(gè)應(yīng)用進(jìn)程;
12、其中,所述第二進(jìn)程列表中包含至少一個(gè)進(jìn)程,所述第二進(jìn)程列表中的進(jìn)程為所述目標(biāo)應(yīng)用被啟動(dòng)之前所述目標(biāo)運(yùn)行環(huán)境中的進(jìn)程。
13、在一種可能的實(shí)現(xiàn)中,所述從所述初始窗體中,篩選出屬于所述應(yīng)用進(jìn)程的目標(biāo)窗體,包括:
14、獲得所述初始窗體所屬進(jìn)程的進(jìn)程信息;
15、根據(jù)所述進(jìn)程信息,篩選出所述初始窗體中屬于所述應(yīng)用進(jìn)程的目標(biāo)窗體。
16、在一種可能的實(shí)現(xiàn)中,所述獲得所述目標(biāo)窗體中的按鈕控件,包括:
17、利用目標(biāo)方式,獲得所述目標(biāo)窗體中控件類型為按鈕類型的按鈕控件;所述目標(biāo)方式包括第一方式和第二方式中的至少一項(xiàng);
18、其中,所述第一方式與所述第二方式所使用的接口類型不同。
19、在一種可能的實(shí)現(xiàn)中,所述第一方式包括:
20、利用第一類型的接口,枚舉所述目標(biāo)窗體中所包含的子窗體,以得到初選子窗體;獲得每個(gè)所述初選子窗體對(duì)應(yīng)的類名信息;篩選所述類名信息表征為按鈕類型的初選子窗體,以得到按鈕控件;
21、所述第二方式包括:
22、利用第二類型的接口,枚舉所述目標(biāo)窗體中所包含的子控件,以得到初選子控件;獲得每個(gè)所述初選子控件對(duì)應(yīng)的角色信息和狀態(tài)信息;篩選所述角色信息表征為按鈕類型且所述狀態(tài)信息表征為可見狀態(tài)的初選子控件,以得到按鈕控件;
23、其中,所述第一類型的接口與所述第二類型的接口不同。
24、在一種可能的實(shí)現(xiàn)中,所述方法還包括:
25、獲得所述按鈕控件的標(biāo)題信息和坐標(biāo)信息;
26、將所述按鈕控件的標(biāo)題信息和坐標(biāo)信息添加到所述按鈕列表中;
27、其中,所述按鈕控件對(duì)應(yīng)的測(cè)試結(jié)果至少包含:所述按鈕控件的標(biāo)題信息和坐標(biāo)信息以及所述按鈕控件所屬進(jìn)程的進(jìn)程信息。
28、在一種可能的實(shí)現(xiàn)中,在所述對(duì)所述目標(biāo)窗體中的按鈕控件進(jìn)行識(shí)別之后,在所述對(duì)所述按鈕列表中的按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作之前,所述方法還包括:
29、將本次識(shí)別到的按鈕控件的當(dāng)前數(shù)量與目標(biāo)變量中的數(shù)值進(jìn)行比對(duì);所述目標(biāo)變量中記錄上一次識(shí)別到的按鈕控件的歷史數(shù)量;
30、如果本次識(shí)別到的按鈕控件的當(dāng)前數(shù)量與所述目標(biāo)變量中的數(shù)值不一致,將所述當(dāng)前數(shù)量記錄到所述目標(biāo)變量;將本次識(shí)別到的按鈕控件中相對(duì)于所述按鈕列表新增的按鈕控件添加到所述按鈕列表中;等待第一時(shí)長(zhǎng)后,執(zhí)行所述獲得所述目標(biāo)應(yīng)用運(yùn)行在目標(biāo)運(yùn)行環(huán)境中的至少一個(gè)應(yīng)用進(jìn)程;
31、如果本次識(shí)別到的按鈕控件的當(dāng)前數(shù)量與所述目標(biāo)變量中的數(shù)值相一致,對(duì)輪詢變量的數(shù)值加1;判斷所述輪詢變量中的數(shù)值是否到達(dá)目標(biāo)閾值;如果所述輪詢變量中的數(shù)值沒有到達(dá)所述目標(biāo)閾值,等待第二時(shí)長(zhǎng)后,返回執(zhí)行所述獲得所述目標(biāo)應(yīng)用運(yùn)行在目標(biāo)運(yùn)行環(huán)境中的至少一個(gè)應(yīng)用進(jìn)程;如果所述輪詢變量中的數(shù)值到達(dá)所述目標(biāo)閾值,執(zhí)行所述對(duì)所述按鈕列表中的按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作。
32、在一種可能的實(shí)現(xiàn)中,所述對(duì)所述按鈕列表中的按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作,以得到測(cè)試結(jié)果,包括:
33、從所述按鈕列表中選擇未被執(zhí)行鼠標(biāo)點(diǎn)擊操作的按鈕控件執(zhí)行所述鼠標(biāo)點(diǎn)擊操作,以得到測(cè)試結(jié)果;
34、其中,在得到測(cè)試結(jié)果之后,所述方法還包括:
35、在所述測(cè)試結(jié)果表征所述適配程序使得所述目標(biāo)應(yīng)用能夠在所述目標(biāo)運(yùn)行環(huán)境中提供服務(wù)的情況下,返回執(zhí)行所述從所述按鈕列表中選擇未被執(zhí)行鼠標(biāo)點(diǎn)擊操作的按鈕控件執(zhí)行所述鼠標(biāo)點(diǎn)擊操作,直到所述按鈕列表中的所有按鈕控件均被執(zhí)行鼠標(biāo)點(diǎn)擊操作;
36、在所述測(cè)試結(jié)果表征所述適配程序使得所述目標(biāo)應(yīng)用不能在所述目標(biāo)運(yùn)行環(huán)境中提供服務(wù)的情況下,根據(jù)所述測(cè)試結(jié)果,生成測(cè)試報(bào)告,所述測(cè)試報(bào)告用于對(duì)所述適配程序進(jìn)行調(diào)整。
37、在一種可能的實(shí)現(xiàn)中,所述測(cè)試結(jié)果表征所述適配程序使得所述目標(biāo)應(yīng)用不能在所述目標(biāo)運(yùn)行環(huán)境中提供服務(wù),包括:
38、所述測(cè)試結(jié)果表征所述按鈕控件所屬的應(yīng)用進(jìn)程出現(xiàn)進(jìn)程崩潰的事件;
39、其中,所述方法還包括:
40、調(diào)整所述第一操作系統(tǒng)的系統(tǒng)注冊(cè)表,以使得所述進(jìn)程崩潰的事件能夠被識(shí)別到。
41、本技術(shù)第二方面提供了一種應(yīng)用程序的適配程序測(cè)試裝置,所述裝置包括:
42、進(jìn)程獲得單元,用于在目標(biāo)應(yīng)用被啟動(dòng)后,獲得所述目標(biāo)應(yīng)用運(yùn)行在目標(biāo)運(yùn)行環(huán)境中至少一個(gè)應(yīng)用進(jìn)程;所述目標(biāo)運(yùn)行環(huán)境為適配程序在第一操作系統(tǒng)中所構(gòu)建的運(yùn)行環(huán)境;所述目標(biāo)應(yīng)用為基于第二操作系統(tǒng)開發(fā)的應(yīng)用程序;
43、窗體獲得單元,用于獲得所述目標(biāo)運(yùn)行環(huán)境中的初始窗體;所述初始窗體為所述目標(biāo)運(yùn)行環(huán)境中的所有頂層窗體;從所述初始窗體中,篩選出屬于所述應(yīng)用進(jìn)程的目標(biāo)窗體;
44、按鈕識(shí)別單元,用于對(duì)所述目標(biāo)窗體中的按鈕控件進(jìn)行識(shí)別,以得到按鈕列表,所述按鈕列表中包含至少一個(gè)按鈕控件;
45、點(diǎn)擊執(zhí)行單元,用于對(duì)所述按鈕列表中的按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作,以得到所述按鈕控件對(duì)應(yīng)的測(cè)試結(jié)果,所述測(cè)試結(jié)果表征所述適配程序是否使得所述目標(biāo)應(yīng)用能夠在所述目標(biāo)運(yùn)行環(huán)境中提供服務(wù)。
46、本技術(shù)第三方面提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可讀指令,當(dāng)所述計(jì)算機(jī)可讀指令在電子設(shè)備上運(yùn)行時(shí),使得所述電子設(shè)備實(shí)現(xiàn)上述第一方面或第一方面任一實(shí)現(xiàn)方式的應(yīng)用程序的適配程序測(cè)試方法。
47、本技術(shù)第四方面提供一種電子設(shè)備,包括至少一個(gè)處理器和與所述處理器連接的存儲(chǔ)器,其中:
48、所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序;
49、所述處理器用于執(zhí)行所述計(jì)算機(jī)程序,以使所述電子設(shè)備能夠?qū)崿F(xiàn)上述第一方面或第一方面任一實(shí)現(xiàn)方式的應(yīng)用程序的適配程序測(cè)試方法。
50、本技術(shù)第五方面提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)承載有一個(gè)或多個(gè)計(jì)算機(jī)程序,當(dāng)所述一個(gè)或多個(gè)計(jì)算機(jī)程序被電子設(shè)備執(zhí)行時(shí),能夠使所述電子設(shè)備實(shí)現(xiàn)上述第一方面或第一方面任一實(shí)現(xiàn)方式的應(yīng)用程序的適配程序測(cè)試方法。
51、借由上述技術(shù)方案,本技術(shù)提供的一種應(yīng)用程序的適配程序測(cè)試方法及裝置中,在基于第二操作系統(tǒng)開發(fā)的目標(biāo)應(yīng)用運(yùn)行在第一操作系統(tǒng)中基于適配程序構(gòu)建的目標(biāo)運(yùn)行環(huán)境時(shí),獲得目標(biāo)應(yīng)用在目標(biāo)運(yùn)行環(huán)境中的應(yīng)用進(jìn)程,這樣在獲得每個(gè)應(yīng)用進(jìn)程對(duì)應(yīng)的窗體中的按鈕控件后,對(duì)這些按鈕控件執(zhí)行鼠標(biāo)點(diǎn)擊操作,這樣就可以得到按鈕控件的測(cè)試結(jié)果,這些按鈕控件的測(cè)試結(jié)果能夠表征適配程序是否使得目標(biāo)應(yīng)用能夠在目標(biāo)運(yùn)行環(huán)境中提供服務(wù),這一測(cè)試過程中不需要依賴開發(fā)人員,就可以通過對(duì)目標(biāo)應(yīng)用的按鈕控件進(jìn)行測(cè)試,實(shí)現(xiàn)對(duì)適配程序的測(cè)試,由此可以提高對(duì)適配程序的測(cè)試效率。