一種分發(fā)自動化測試用例的方法、系統(tǒng)及分發(fā)服務(wù)器的制造方法
【專利摘要】本發(fā)明公開了一種分發(fā)自動化測試用例的方法、系統(tǒng)及分發(fā)服務(wù)器,方法包括:建立與各個測試設(shè)備之間的連接關(guān)系;當(dāng)觸發(fā)測試任務(wù)時,從用例庫提取第一自動化測試用例;查找是否存在空閑的所述測試設(shè)備;若存在空閑的所述測試設(shè)備,則向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。通過上述方式,本發(fā)明能夠平衡測試設(shè)備之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
【專利說明】
一種分發(fā)自動化測試用例的方法、系統(tǒng)及分發(fā)服務(wù)器
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施方式涉及軟件測試技術(shù)領(lǐng)域,特別是涉及一種分發(fā)自動化測試用例的方法及分發(fā)服務(wù)器。
【背景技術(shù)】
[0002]自動化測試是指預(yù)先設(shè)置好自動化測試用例,并使測試設(shè)備根據(jù)自動化測試用例自動運(yùn)行進(jìn)行測試,并返回測試結(jié)果的過程,自動化測試用例是指設(shè)定好的測試條件。
[0003]目前,自動化測試是隨著項(xiàng)目進(jìn)行的,并且自動化測試用例是隨機(jī)分配的。當(dāng)項(xiàng)目增多時,自動化測試用例也會越來越多,很容易造成某一或者多個測試設(shè)備上分配的自動化測試用例非常多,而其它的測試設(shè)備的自動化測試用例非常少,從而導(dǎo)致整體自動化測試回歸的效率低下,且耗時更長,拖慢測試的進(jìn)度,也影響后續(xù)的手工測試。
【發(fā)明內(nèi)容】
[0004]本發(fā)明主要解決的技術(shù)問題是提供一種分發(fā)自動化測試用例的方法、系統(tǒng)及分發(fā)服務(wù)器,能夠平衡測試設(shè)備之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
[0005]為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種分發(fā)自動化測試用例的方法,包括:建立與各個測試設(shè)備之間的連接關(guān)系;獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例;查找是否存在空閑的所述測試設(shè)備;若存在空閑的所述測試設(shè)備,則向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。
[0006]其中,所述向空閑的所述測試設(shè)備分配所述第一自動化測試用例的步驟包括:將所述第一自動化測試用例分配至消息隊列,以使所述空閑的所述測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息;所述查找是否存在空閑的所述測試設(shè)備的步驟包括:計算所述測試設(shè)備的數(shù)量;檢測所述分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量;若小于所述測試設(shè)備的數(shù)量,則存在空閑的所述測試設(shè)備。
[0007]其中,所述用例庫預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長;所述方法還包括:若不存在空閑的所述測試設(shè)備;獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例對應(yīng)的預(yù)估測試時長;根據(jù)所述第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長;向所述等待時長最短的測試設(shè)備分配所述第一自動化測試用例。
[0008]其中,所述方法還包括:接收所述測試設(shè)備在完成所述第二自動化測試用例的測試時返回的測試結(jié)果,其中,所述測試結(jié)果攜帶所述測試設(shè)備執(zhí)行所述第二自動化測試用例時所耗費(fèi)時的精確測試時長;將所述用例庫中第二自動化測試用例對應(yīng)的預(yù)估測試時長更新為精確測試時長。
[0009]其中,在所述向所述等待時長最短的測試設(shè)備發(fā)送所述第一自動化測試用例的步驟之前,所述方法還包括:判斷最短的所述等待時長是否大于或者等于時長閾值;若大于或者等于所述時長閾值,則返回所述獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例的預(yù)估測試時長以及等待進(jìn)行測試的第三自動化測試用例的預(yù)估測試時長的步驟;若小于所述時長閾值,則進(jìn)入向所述等待時長最短的測試設(shè)備發(fā)送所述第一自動化測試用例的步驟。
[0010]其中,所述方法還包括:若最短的所述等待時長大于或者等于所述時長閾值,發(fā)出所述測試設(shè)備負(fù)載過載告警。
[0011]為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:提供一種分發(fā)服務(wù)器,包括:建立模塊,用于建立與各個測試設(shè)備之間的連接關(guān)系;提取模塊,用于獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例;查找模塊,用于查找是否存在空閑的所述測試設(shè)備;第一分配模塊,用于在所述查找模塊找到空閑的測試設(shè)備時,向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。
[0012]其中,所述用例庫預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長;所述分發(fā)服務(wù)器還包括獲取模塊、計算模塊和第二分配模塊;所述獲取模塊,用于在所述查找模塊沒有找到空閑的測試設(shè)備時,獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試對應(yīng)的第三自動化測試用例的預(yù)估測試時長所述計算模塊,用于根據(jù)所述第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長;所述第二分配模塊,用于向所述等待時長最短的測試設(shè)備分配所述第一自動化測試用例。
[0013]其中,所述查找模塊包括:分配子模塊,用于將所述第一自動化測試用例分配至消息隊列,以使所述空閑的所述測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息;計算子模塊,用于計算所述測試設(shè)備的數(shù)量;確認(rèn)子模塊,檢測所述分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量;若小于所述測試設(shè)備的數(shù)量,則存在空閑的所述測試設(shè)備。
[0014]其中,所述分發(fā)服務(wù)器還包括:接收模塊,用于接收所述測試設(shè)備在完成所述第二自動化測試用例的測試時返回的測試結(jié)果,其中,所述測試結(jié)果攜帶所述測試設(shè)備執(zhí)行所述第二自動化測試用例時所耗費(fèi)時的精確測試時長;更新模塊,用于將所述用例庫中第二自動化測試用例的預(yù)估測試時長更新為精確測試時長。
[0015]其中,所述分發(fā)服務(wù)器還包括:判斷模塊,用于判斷最短的所述等待時長是否大于或者等于時長閾值,在所述最短的所述等待時長小于時長閾值時,進(jìn)入所述分配模塊;返回模塊,用于在所述判斷模塊判斷到最短的所述等待時長大于或者等于時長閾值時,返回所述獲取模塊。
[0016]為解決上述技術(shù)問題,本發(fā)明采用的再一個技術(shù)方案是:提供一種分發(fā)自動化測試用例的系統(tǒng),包括分發(fā)服務(wù)器、測試設(shè)備和用例庫;所述分發(fā)服務(wù)器用于建立與各個測試設(shè)備之間的連接關(guān)系,當(dāng)觸發(fā)測試任務(wù)時,從用例庫提取第一自動化測試用例,查找是否存在空閑的所述測試設(shè)備,若存在空閑的所述測試設(shè)備,則向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。
[0017]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明在向測試設(shè)備分發(fā)第一自動化測試用例時,先查找是否存在空閑的測試設(shè)備,若存在空閑的測試設(shè)備,則優(yōu)先向空閑的測試設(shè)備分配第一自動化測試用例,從而平衡測試設(shè)備之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
【附圖說明】
[0018]圖1是本發(fā)明分發(fā)自動化測試用例的系統(tǒng)實(shí)施方式的示意圖;
[0019]圖2是本發(fā)明分發(fā)服務(wù)器實(shí)施方式的示意圖;
[0020]圖3是本發(fā)明分發(fā)自動化測試用例的方法第一實(shí)施方式的流程圖;
[0021]圖4是本發(fā)明分發(fā)自動化測試用例的方法第一實(shí)施方式中查找空閑的測試設(shè)備的流程圖;
[0022]圖5是本發(fā)明分發(fā)自動化測試用例的方法第二實(shí)施方式的流程圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖和實(shí)施方式對本發(fā)明進(jìn)行詳細(xì)說明。
[0024]請參閱圖1,分發(fā)自動化測試用例的系統(tǒng)20包括用例庫21、分發(fā)服務(wù)器22和測試設(shè)備23。測試設(shè)備23的數(shù)量有多個,在本實(shí)施方式中,測試設(shè)備23可以為智能手機(jī)、平板電腦、PDA等等。用例庫21也可以設(shè)置說單獨(dú)的設(shè)備上,也可以設(shè)置于分發(fā)服務(wù)器22上。
[0025]分發(fā)服務(wù)器22用于建立與測試設(shè)備23之間的連接關(guān)系。分發(fā)服務(wù)器22與測試設(shè)備23之間的連接關(guān)系可以由測試設(shè)備23發(fā)起的,例如:在測試設(shè)備23接入時,測試設(shè)備23自動向分發(fā)服務(wù)器22進(jìn)行登記,則分發(fā)服務(wù)器22獲知接入了新的測試設(shè)備23,也可以是分發(fā)服務(wù)器22發(fā)起的,例如分發(fā)服務(wù)器22定期廣播探測報文,測試設(shè)備23接收探測報文會向分發(fā)服務(wù)器22返回應(yīng)答報文,則當(dāng)分發(fā)服務(wù)器22發(fā)現(xiàn)新的應(yīng)答報文時,說明有新的測試設(shè)備23接入,分發(fā)服務(wù)器22與新的測試設(shè)備23建立,方便擴(kuò)展或者縮減分發(fā)自動化測試用例的系統(tǒng)中的測試設(shè)備23。
[0026]分發(fā)服務(wù)器22用于獲取測試任務(wù)的觸發(fā)指令,從用例庫21提取第一自動化測試用例。在分發(fā)服務(wù)器22上觸發(fā)測試任務(wù)具體方式不作限定,可以為當(dāng)前用例庫21新增自動化測試用例時,自動觸發(fā)測試任務(wù),或者,測試人員根據(jù)實(shí)際觸發(fā)測試任務(wù)等等。用例庫21預(yù)先存儲有自動化測試用例,并且測試人員可以向用例庫21增回自動化測試用例。若分發(fā)服務(wù)器22隨機(jī)分配第一自動化測試用例,容易造成某一個或者幾個測試設(shè)備23分配得到非常多自動化測試用例,而某些測試設(shè)備23分配得到的自動化測試用例比較少,從而造成測試設(shè)備23負(fù)載不均衡,影響自動化測試回歸的時間。
[0027]分發(fā)服務(wù)器22用于查找是否存在空閑的測試設(shè)備23,若存在空閑的測試設(shè)備23,則向空閑的測試設(shè)備23分配第一自動化測試用例,以使空閑的測試設(shè)備23根據(jù)第一自動化測試用例進(jìn)行測試。當(dāng)分發(fā)自動化測試用例的系統(tǒng)中存在空閑的測試設(shè)備23,先向空閑的測試設(shè)備23分配第一自動化測試用例,有利于平衡測試設(shè)備23之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。當(dāng)然,分發(fā)服務(wù)器22在分發(fā)自動化測試用例時,也可以對自動化測試用例進(jìn)行設(shè)定,以使自動化測試用例向特定的測試設(shè)備23分配。
[0028]需要說明的是:分發(fā)服務(wù)器22在向空閑的測試設(shè)備23分配第一自動化測試用例時,可以將第一自動化測試用例設(shè)置在消息隊列中,同時監(jiān)測結(jié)果回收隊列。相應(yīng)地,空閑的測試設(shè)備23監(jiān)測上述消息隊列,當(dāng)檢測到消息隊列中有任務(wù)時,自動接收任務(wù),并將接收到的任務(wù)從消息隊列中移除;在測試設(shè)備執(zhí)行完任務(wù)后,將執(zhí)行結(jié)果通過結(jié)果回收隊列返回給分發(fā)服務(wù)器22,當(dāng)分發(fā)服務(wù)器22端收到與分發(fā)出去的任務(wù)等同數(shù)量的結(jié)果后,認(rèn)為所有任務(wù)執(zhí)行完畢,并且分發(fā)服務(wù)器可以根據(jù)分配至消息隊列的自動化測試用例的數(shù)量和回收消息的數(shù)量,判斷是否存在空閑的測試設(shè)備?;蛘?,通過心跳回傳方式,分發(fā)服務(wù)器22可以監(jiān)控測試設(shè)備23狀態(tài),計算出閑置設(shè)備數(shù)量;測試設(shè)備23可以監(jiān)控分發(fā)服務(wù)器22中是否存在第一自動化測試用例,主動觸發(fā)測試任務(wù)。
[0029]進(jìn)一步的,在向用例庫21存儲自動化測試用例時,還為每一個自動化測試用例設(shè)置預(yù)估測試時長,簡而言之,用例庫21還預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長,當(dāng)然,在其它替代實(shí)施方式中,也可以在用例庫21中設(shè)置于估算模型,在向用例庫21輸入自動化測試用例時,用例庫21自動根據(jù)估算模型計算該自動化測試用例的預(yù)估測試時長,并將預(yù)估測試時長存儲在用例庫21中。若不存在空閑的測試設(shè)備23,則分發(fā)服務(wù)器22獲取各個測試設(shè)備23當(dāng)前正在運(yùn)行的第二自動化測試用例的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例的預(yù)估測試時長,并且根據(jù)所述第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長,向等待時長最短的測試設(shè)備23分配第一自動化測試用例。在測試設(shè)備23都沒有空閑時,將第一自動化測用例分配置至等待時長最短的測試設(shè)備23,有利于平衡各個測試設(shè)備23執(zhí)行測試的時長,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
[0030]為了提高預(yù)估測試時長時的準(zhǔn)確性,測試設(shè)備23在執(zhí)行自動化測試用例時,會記錄自動精確測試時長,并且測試設(shè)備23在完成一自動化測試用時,會向分發(fā)服務(wù)器22返回測試結(jié)果。分發(fā)服務(wù)器22接收測試設(shè)備23在完成第二自動化測試用例的測試時返回的測試結(jié)果,其中,測試結(jié)果攜帶測試設(shè)備23執(zhí)行第二自動化測試用例時所耗費(fèi)時的精確測試時長。分發(fā)服務(wù)器22還將用例庫21中第二自動化測試用例對應(yīng)的預(yù)估測試時長更新為精確測試時長。下次再需要根據(jù)第二自動化測試用例進(jìn)行測試,則第二自動化測試用例的預(yù)估測試時長將會更準(zhǔn)確。另外,也可以根據(jù)通過第二自動化測試用例中預(yù)估測試時長與精確測試時長之間的變化,調(diào)整估算模型或者調(diào)整估算自動化測試用例的預(yù)估測試時長的方法,使得預(yù)估測試時長更準(zhǔn)確。
[0031 ]需要說明的是:空閑的測試終端是指測試終端當(dāng)前沒有分配有自動化測試用例,測試終端處于空閑狀態(tài);不空閑的測試終端或者工作的測試終端是指測試終端分配有自動化測試用例,測試終端正在根據(jù)自動化測試用例進(jìn)行測試,測試終端處于工作狀態(tài)。
[0032]當(dāng)所有測試終端均處于繁忙的工作狀態(tài)時,分發(fā)服務(wù)器22還可以暫停分配自動化測試用例,避免測試終端的負(fù)載過載,具體的,分發(fā)服務(wù)器22在向等待時長最短的測試設(shè)備23發(fā)送第一自動化測試用例之前,判斷最短的等待時長是否大于或者等于時長閾值。時長閾值的具體值可以根據(jù)實(shí)際情況設(shè)定,并且時長閾值是可調(diào)的。若最短的等待時長大于或者等于時長閾值,則分發(fā)服務(wù)器22返回獲取各個測試設(shè)備23當(dāng)前正在運(yùn)行的第二自動化測試用例的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例的預(yù)估測試時長的步驟。若最短的等待時長小于時長閾值,則分發(fā)服務(wù)器22直接進(jìn)入向等待時長最短的測試設(shè)備23發(fā)送第一自動化測試用例。
[0033]當(dāng)然,在所有測試終端均處于繁忙的工作狀態(tài)時,可以提醒測試人員增加測試設(shè)備23,以提高自動化測試的效率,則分發(fā)服務(wù)器22還用于在判斷到在最短的等待時長大于或者等于時長閾值,發(fā)出測試設(shè)備23負(fù)載過載告警。測試設(shè)備23負(fù)載過載告警可以聲音告警,也可以是圖形告警,測試人員發(fā)現(xiàn)測試設(shè)備23負(fù)載過載告警后,可以及時增加測試設(shè)備23,及時調(diào)整測試設(shè)備23的負(fù)載。
[0034]在本發(fā)明實(shí)施方式中,分發(fā)服務(wù)器22在向測試設(shè)備23分發(fā)第一自動化測試用例時,先查找是否存在空閑的測試設(shè)備23,若存在空閑的測試設(shè)備23,則優(yōu)先向空閑的測試設(shè)備23分配第一自動化測試用例,從而平衡測試設(shè)備23之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
[0035]本發(fā)明還提供分發(fā)服務(wù)器實(shí)施方式。請參閱圖2,分發(fā)服務(wù)器30還包括建立模塊301、提取模塊302、查找模塊303和第一分配模塊304。
[0036]建立模塊301,用于建立與各個測試設(shè)備之間的連接關(guān)系。分發(fā)服務(wù)器與測試設(shè)備之間可以是通過互聯(lián)網(wǎng)連接,則分發(fā)服務(wù)器與測試設(shè)備之間的連接可以TCP連接,也可以是UDP連接?;ヂ?lián)網(wǎng)連接方式可以減少對連接限制。提取模塊302,用于獲取測試任務(wù)的觸發(fā)指令,從用例庫21提取第一自動化測試用例。查找模塊303,用于查找是否存在空閑的測試設(shè)備。第一分配模塊304,用于在查找模塊303找到空閑的測試設(shè)備時,向空閑的測試設(shè)備分配第一自動化測試用例,以使空閑的測試設(shè)備根據(jù)第一自動化測試用例進(jìn)行測試。在分配第一自動測試用例時,優(yōu)先向空閑的測試終端分配,可以平衡各測試終端之間的負(fù)載,提高自動化測試的回歸時間。
[0037]分發(fā)服務(wù)器向測試設(shè)備分發(fā)自動化測試用例時,可以通過消息隊列進(jìn)行,空閑的測試設(shè)備監(jiān)聽消息隊列,當(dāng)消息隊列存在自動化測試用例時,空閑的測試設(shè)備從消息隊列提取自動化測試用例,并在測試完成后,向回收隊列返回完成自動化測試用例的完成消息,分發(fā)服務(wù)器可以根據(jù)分配至消息隊列的自動化測試用例的數(shù)量和回收隊列的完成消息的數(shù)量,判斷是否還存在空閑的測試設(shè)備,則向空閑的測試設(shè)備分配第一自動化測試用例的步驟包括:將第一自動化測試用例分配至消息隊列,以使空閑的測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息。查找模塊303具體用于計算測試設(shè)備的數(shù)量,并檢測分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量,若小于測試設(shè)備的數(shù)量,則存在空閑的測試設(shè)備。則所述查找模塊包括:分配子模塊(圖未示)、計算子模塊(圖未示)和確認(rèn)子模塊(圖未示)。分配子模塊,用于將所述第一自動化測試用例分配至消息隊列,以使所述空閑的所述測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息。計算子模塊,用于計算所述測試設(shè)備的數(shù)量。確認(rèn)子模塊,檢測所述分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量;若小于所述測試設(shè)備的數(shù)量,則存在空閑的所述測試設(shè)備。
[0038]當(dāng)不存在空閑的測試設(shè)備時,根據(jù)各測試設(shè)備上分配到的自動化測試用例的預(yù)估測試時長的總值進(jìn)行選擇測試設(shè)備,以平衡各個測試設(shè)備之的負(fù)載,具體的,用例庫21預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長。分發(fā)服務(wù)器還包括獲取模塊305、計算模塊306和第二分配模塊307。獲取模塊305,用于在查找模塊303沒有找到空閑的測試設(shè)備時,獲取各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例對應(yīng)的預(yù)估測試時長。計算模塊306,用于根據(jù)第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長。第二分配模塊307,用于向等待時長最短的測試設(shè)備分配第一自動化測試用例。
[0039]進(jìn)一步的,分發(fā)服務(wù)器還包括判斷模塊308和返回模塊309。判斷模塊308,用于判斷最短的等待時長是否大于或者等于時長閾值,在最短的等待時長小于時長閾值時,進(jìn)入第二分配模塊。返回模塊309,用于在判斷模塊308判斷到最短的等待時長大于或者等于時長閾值時,暫時暫停預(yù)定時長,返回獲取模塊305。
[0040]分發(fā)服務(wù)器還包括告警模塊310。告警模塊310,用于在判斷模塊308判斷到最短的等待時長小于時長閾值時,發(fā)出測試設(shè)備負(fù)載過載告警。通過測試設(shè)備負(fù)載過載告警提醒測試人員增加測試設(shè)備,以提高自動化測試的效率。
[0041 ]測試終端在完成一自動化測試用例的測試后,均會向分發(fā)服務(wù)器返回測試結(jié)果,分發(fā)服務(wù)器還可以根據(jù)測試結(jié)果進(jìn)行歸類、更新預(yù)估測試時長等等,具體的,分發(fā)服務(wù)器30還包括接收模塊311和更新模塊312。接收模塊311,用于接收測試設(shè)備在完成第二自動化測試用例的測試時返回的測試結(jié)果,其中,測試結(jié)果攜帶測試設(shè)備執(zhí)行第二自動化測試用例時所耗費(fèi)時的精確測試時長。更新模塊312,用于將用例庫21中第二自動化測試用例的預(yù)估測試時長更新為精確測試時長。通過將預(yù)估測試時長更新為精確測試時長,有利于下次在計算等待時長,等待時長的計算結(jié)果更準(zhǔn)確。
[0042]在本發(fā)明實(shí)施方式中,當(dāng)觸發(fā)測試任務(wù)時,提取模塊302從用例庫提取第一自動化測試用例,第一分配模塊304用于在查找模塊303找到空閑的測試設(shè)備時,向空閑的測試設(shè)備分配所述第一自動化測試用例,以使空閑的測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試,通過優(yōu)先向空閑的測試設(shè)備分配第一自動化測試用例,平衡測試設(shè)備之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
[0043]本發(fā)明又提供分發(fā)自動化測試用例的方法實(shí)施方式。請參閱圖3,分發(fā)自動化測試用例的方法包括:
[0044]步驟S401:建立與各個測試設(shè)備之間的連接關(guān)系;
[0045]當(dāng)測試設(shè)備接入分發(fā)服務(wù)器時,分發(fā)服務(wù)器與測試設(shè)備之間就建立連接關(guān)系,分發(fā)服務(wù)器可以通過與測試設(shè)備之間的連接獲取各個測試設(shè)備的情況,測試設(shè)備也可以通過與分發(fā)服務(wù)器之間的連接向分發(fā)服務(wù)器返饋信息。
[0046]步驟S402:獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例;
[0047]用例庫用于存儲自動化測試用例。測試任務(wù)的觸發(fā)的方式不作限定,可以在用例庫中設(shè)置觸發(fā)條件,當(dāng)用例庫滿足觸發(fā)條件時,自動觸發(fā)測試任務(wù),也可以是測試人員人工觸發(fā)的。
[0048]步驟S403:查找是否存在空閑的測試設(shè)備,若存在空閑的測試設(shè)備,則進(jìn)入步驟S404;
[0049]空閑的測試設(shè)備是指測試設(shè)備當(dāng)前沒有分配有自動化測試用例,測試設(shè)備處于空閑狀態(tài);不空閑的測試設(shè)備或者工作的測試設(shè)備是指測試終端分配有自動化測試用例,測試設(shè)備正在根據(jù)自動化測試用例進(jìn)行測試,測試終端處于工作狀態(tài)。步驟S404:向空閑的測試設(shè)備分配第一自動化測試用例,以使空閑的測試設(shè)備根據(jù)第一自動化測試用例進(jìn)行測試;
[0050]進(jìn)一步的,分發(fā)服務(wù)器向測試設(shè)備分發(fā)自動化測試用例時,可以通過消息隊列進(jìn)行,空閑的測試設(shè)備監(jiān)聽消息隊列,當(dāng)消息隊列存在自動化測試用例時,空閑的測試設(shè)備從消息隊列提取自動化測試用例,并在測試完成后,向回收隊列返回完成自動化測試用例的完成消息,分發(fā)服務(wù)器可以根據(jù)分配至消息隊列的自動化測試用例的數(shù)量和回收隊列的完成消息的數(shù)量,判斷是否還存在空閑的測試設(shè)備,則步驟S403向空閑的測試設(shè)備分配第一自動化測試用例的步驟包括:將第一自動化測試用例分配至消息隊列,以使空閑的測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息。請參閱圖4,步驟S402又包括:
[0051]步驟S4021:計算測試設(shè)備的數(shù)量;
[0052]計算測試設(shè)備的數(shù)量可以根據(jù)分發(fā)服務(wù)器與測試設(shè)備之間的連接進(jìn)行計算。
[0053]步驟S4022:檢測分配至消息隊列的自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量,若小于測試設(shè)備的數(shù)量,則存在空閑的測試設(shè)備。
[0054]在本發(fā)明實(shí)施方式中,在分配第一自動化測試用例時,優(yōu)先向空閑的測試設(shè)備分配第一自動化測試用例,從而平衡各測試終端之間的負(fù)載,提高自動化測試的回歸時間。
[0055]請參閱圖5,圖5是本發(fā)明分發(fā)自動化測試用例的方法第二實(shí)施方式,分發(fā)自動化測試用例的方法第二實(shí)施方式與分發(fā)自動化測試用例的方法第一實(shí)施方式的區(qū)別在于:
[0056]當(dāng)不存在空閑的測試設(shè)備時,根據(jù)測試設(shè)備上已分配得到的正在執(zhí)行以及尚未執(zhí)行的自動化測試用例的預(yù)估測試時長,進(jìn)行分配第一自動化測試用例,以保證各個測試設(shè)備之間的平衡,則用例庫預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長,方法還包括步驟S405、S406和S407,在步驟S403沒有查找空閑的測試設(shè)備時,進(jìn)入步驟S405。
[0057]步驟S405:獲取各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例對應(yīng)的預(yù)估測試時長;
[0058]值得說明的是:當(dāng)測試設(shè)備上不存在等待的第三自動化測試用例時,步驟S405也可以不包括第三自動化測試用例。
[0059]步驟S406:根據(jù)第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長;
[0060]等待時長是第二自動化測試用例對應(yīng)的預(yù)估測試時長和第三自動化測試用例對應(yīng)的預(yù)估測試時長之和,其中,第三自動化測試用例的數(shù)量可以為多個,則第三自動化測試用例對應(yīng)的預(yù)估測試時長也可以有多個。
[0061 ]步驟S407:向等待時長最短的測試設(shè)備分配第一自動化測試用例;
[0062]通過向等待時長最短的測試設(shè)備分配第一自動化測試用例,有利于平衡各個測試設(shè)備,提高自動化測試的回歸時間。
[0063]在分發(fā)第一自動化測試用例時,也可以判斷所有測試設(shè)備的負(fù)載,在所有測試設(shè)備的負(fù)載較高,暫時分配,避免測試設(shè)備超負(fù)載,則方法還包括:
[0064]步驟S408:判斷最短的等待時長是否大于或者等于時長閾值,若大于或者等于時長閾值,則進(jìn)入步驟S409,否則返回步驟S407,
[0065]時長閾值可以根據(jù)實(shí)際設(shè)定,本發(fā)明實(shí)施方式不作限定,當(dāng)然,時長閾值也可以設(shè)置成可調(diào)的。
[0066]步驟S409:返回步驟S405;
[0067]當(dāng)然,在分發(fā)第一自動化測試用例時,分發(fā)服務(wù)器檢測到所有測試設(shè)備的負(fù)載均較高時,可以提醒測試人員增加測試設(shè)備,以使新測試用例分配至新測試設(shè)備,避免測試設(shè)備超負(fù)載,則方法還包括:
[0068]步驟S500:若最短的等待時長大于或者等于時長閾值,發(fā)出測試設(shè)備負(fù)載過載告馨.1=I ,
[0069]測試人員發(fā)現(xiàn)測試設(shè)備負(fù)載過載告警后,可以及時增加測試設(shè)備,平衡測試設(shè)備的負(fù)載。
[0070]當(dāng)測試設(shè)備完成一自動化測試用例的測試后,會向分發(fā)服務(wù)器返回測試結(jié)果,分發(fā)服務(wù)器根據(jù)測試結(jié)果,進(jìn)行歸類或者更新預(yù)估測試長等操作,則方法還包括:接收測試設(shè)備在完成第二自動化測試用例的測試時返回的測試結(jié)果,并且將用例庫中第二自動化測試用例對應(yīng)的預(yù)估測試時長更新為精確測試時長。其中,測試結(jié)果攜帶測試設(shè)備執(zhí)行第二自動化測試用例時所耗費(fèi)時的精確測試時長。精確測試時長是測試設(shè)備對第二自動化測試用例進(jìn)行測試自行記錄,其反應(yīng)測試設(shè)備執(zhí)行第二自動化測試用例所耗費(fèi)的時長。通過將預(yù)估測試時長更新為精確測試時長后,下次使用第二自動化測試用例進(jìn)行測試的過程計算等待時長時,等待時長的計算結(jié)果更加準(zhǔn)確,實(shí)現(xiàn)分發(fā)自動化測試用例的系統(tǒng)的自我修改功會K。
[0071]在本發(fā)明實(shí)施方式中,在向測試設(shè)備分發(fā)第一自動化測試用例時,先查找是否存在空閑的測試設(shè)備,若存在空閑的測試設(shè)備,則優(yōu)先向空閑的測試設(shè)備分配第一自動化測試用例,從而平衡測試設(shè)備之間的負(fù)載,降低了自動化測試用例的執(zhí)行時間,提高自動化測試回歸的效率,增加了自動化測試用例的執(zhí)行效率。
[0072]以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種分發(fā)自動化測試用例的方法,其特征在于,包括: 建立與各個測試設(shè)備之間的連接關(guān)系; 獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例; 查找是否存在空閑的所述測試設(shè)備; 若存在空閑的所述測試設(shè)備,則向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查找是否存在空閑的所述測試設(shè)備的步驟包括: 將所述第一自動化測試用例分配至消息隊列,以使所述空閑的所述測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息; 計算所述測試設(shè)備的數(shù)量; 檢測所述分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量;若小于所述測試設(shè)備的數(shù)量,則存在空閑的所述測試設(shè)備。3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述用例庫預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長; 所述方法還包括: 若不存在空閑的所述測試設(shè)備; 獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例對應(yīng)的預(yù)估測試時長; 根據(jù)所述第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長; 向所述等待時長最短的測試設(shè)備分配所述第一自動化測試用例。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 接收所述測試設(shè)備在完成所述第二自動化測試用例的測試時返回的測試結(jié)果,其中,所述測試結(jié)果攜帶所述測試設(shè)備執(zhí)行所述第二自動化測試用例時所耗費(fèi)時的精確測試時長; 將所述用例庫中第二自動化測試用例對應(yīng)的預(yù)估測試時長更新為精確測試時長。5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 在所述向所述等待時長最短的測試設(shè)備發(fā)送所述第一自動化測試用例的步驟之前,所述方法還包括: 判斷最短的所述等待時長是否大于或者等于時長閾值; 若大于或者等于所述時長閾值,則返回所述獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例的預(yù)估測試時長和/或等待進(jìn)行測試的第三自動化測試用例的預(yù)估測試時長的步驟; 若小于所述時長閾值,則進(jìn)入向所述等待時長最短的測試設(shè)備發(fā)送所述第一自動化測試用例的步驟。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 若最短的所述等待時長大于或者等于所述時長閾值,發(fā)出所述測試設(shè)備負(fù)載過載告 目O7.一種分發(fā)服務(wù)器,其特征在于,包括: 建立模塊,用于建立與各個測試設(shè)備之間的連接關(guān)系; 提取模塊,用于獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例; 查找模塊,用于查找是否存在空閑的所述測試設(shè)備; 第一分配模塊,用于在所述查找模塊找到空閑的測試設(shè)備時,向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。8.根據(jù)權(quán)利要求7所述的分發(fā)服務(wù)器,其特征在于, 所述用例庫預(yù)先存儲有每一自動化測試用例對應(yīng)的預(yù)估測試時長; 所述分發(fā)服務(wù)器還包括獲取模塊、計算模塊和第二分配模塊; 所述獲取模塊,用于在所述查找模塊沒有找到空閑的測試設(shè)備時,獲取所述各個測試設(shè)備當(dāng)前正在運(yùn)行的第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或等待進(jìn)行測試對應(yīng)的第三自動化測試用例的預(yù)估測試時長 所述計算模塊,用于根據(jù)所述第二自動化測試用例對應(yīng)的預(yù)估測試時長和/或第三自動化測試用例對應(yīng)的預(yù)估測試時長計算等待時長; 所述第二分配模塊,用于向所述等待時長最短的測試設(shè)備分配所述第一自動化測試用例。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述查找模塊包括: 分配子模塊,用于將所述第一自動化測試用例分配至消息隊列,以使所述空閑的所述測試設(shè)備從消息隊列提取第一自動化測試用例進(jìn)行測試,并在測試完成后向回收隊列返回完成第一自動化測試用例的完成消息; 計算子模塊,用于計算所述測試設(shè)備的數(shù)量; 確認(rèn)子模塊,檢測所述分配至消息隊列的第一自動化測試用例的數(shù)量與完成消息的數(shù)量之間的差值是否小于測試設(shè)備的數(shù)量;若小于所述測試設(shè)備的數(shù)量,則存在空閑的所述測試設(shè)備。10.根據(jù)權(quán)利要求8所述的分發(fā)服務(wù)器,其特征在于,所述分發(fā)服務(wù)器還包括: 接收模塊,用于接收所述測試設(shè)備在完成所述第二自動化測試用例的測試時返回的測試結(jié)果,其中,所述測試結(jié)果攜帶所述測試設(shè)備執(zhí)行所述第二自動化測試用例時所耗費(fèi)時的精確測試時長; 更新模塊,用于將所述用例庫中第二自動化測試用例的預(yù)估測試時長更新為精確測試時長。11.根據(jù)權(quán)利要求10所述的分發(fā)服務(wù)器,其特征在于,所述分發(fā)服務(wù)器還包括: 判斷模塊,用于判斷最短的所述等待時長是否大于或者等于時長閾值,在所述最短的所述等待時長小于時長閾值時,進(jìn)入所述第二分配模塊; 返回模塊,用于在所述判斷模塊判斷到最短的所述等待時長大于或者等于時長閾值時,返回所述獲取模塊。12.—種分發(fā)自動化測試用例的系統(tǒng),其特征在于,包括分發(fā)服務(wù)器、測試設(shè)備和用例庫; 所述分發(fā)服務(wù)器用于建立與各個測試設(shè)備之間的連接關(guān)系,獲取測試任務(wù)的觸發(fā)指令,從用例庫提取第一自動化測試用例,查找是否存在空閑的所述測試設(shè)備,若存在空閑的所述測試設(shè)備,則向空閑的所述測試設(shè)備分配所述第一自動化測試用例,以使空閑的所述測試設(shè)備根據(jù)所述第一自動化測試用例進(jìn)行測試。
【文檔編號】G06F11/36GK105955880SQ201610256675
【公開日】2016年9月21日
【申請日】2016年4月22日
【發(fā)明人】石梓釗
【申請人】樂視控股(北京)有限公司, 樂視網(wǎng)信息技術(shù)(北京)股份有限公司