亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于selenium的測(cè)試中間件、測(cè)試系統(tǒng)及方法與流程

文檔序號(hào):11230363閱讀:1253來源:國知局
基于selenium的測(cè)試中間件、測(cè)試系統(tǒng)及方法與流程

本發(fā)明屬于瀏覽器測(cè)試領(lǐng)域,尤其涉及一種基于selenium的測(cè)試中間件、測(cè)試系統(tǒng)及方法。



背景技術(shù):

現(xiàn)有基于selenium(瀏覽器自動(dòng)化測(cè)試框架)的ui(用戶界面)測(cè)試工具為單用戶單任務(wù)形式,且selenium的測(cè)試需要專業(yè)測(cè)試開發(fā)人員進(jìn)行源代碼的編寫,非一般手工測(cè)試人員能夠具備的能力,測(cè)試難度高,腳本維護(hù)工作量大,對(duì)人力資源的要求度很高。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中selenium測(cè)試方法只能解決單用戶單任務(wù)的問題,且腳本維護(hù)工作量大、性能測(cè)試工作難度高的缺陷,提供了一種基于selenium的測(cè)試中間件、測(cè)試系統(tǒng)及方法。

本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題:

一種基于selenium的測(cè)試中間件,包括:交互api(應(yīng)用程序編程接口)模塊、任務(wù)隊(duì)列模塊、selenium控制模塊和瀏覽器資源池;

所述交互api模塊包含多個(gè)api接口,所述api接口用于接收多個(gè)測(cè)試任務(wù)并發(fā)送至所述任務(wù)隊(duì)列模塊;

所述任務(wù)隊(duì)列模塊用于將接收到的所述多個(gè)測(cè)試任務(wù)存入任務(wù)隊(duì)列中,并按照所述任務(wù)隊(duì)列的順序依次將所述多個(gè)測(cè)試任務(wù)發(fā)送至所述selenium控制模塊;

所述selenium控制模塊用于依次根據(jù)每個(gè)測(cè)試任務(wù)從所述瀏覽器資源池中調(diào)取瀏覽器資源并調(diào)用selenium,將所述測(cè)試任務(wù)和所述瀏覽器資源發(fā)送至所述selenium的node節(jié)點(diǎn)完成任務(wù)的測(cè)試,并將測(cè)試結(jié)果發(fā)送出去;

所述瀏覽器資源池用于存放多個(gè)瀏覽器資源。

本方案中,將測(cè)試任務(wù)發(fā)送到測(cè)試中間件的交互api模塊,所述測(cè)試任務(wù)為頁面連接、元素標(biāo)識(shí)、對(duì)元素進(jìn)行的操作和該操作需要的參數(shù)中至少一項(xiàng),比如具體的一個(gè)網(wǎng)站的ip(網(wǎng)絡(luò)協(xié)議)地址、操作人員的id(設(shè)別號(hào))號(hào)或sendkey(一個(gè)編程語句,它可將一個(gè)或多個(gè)按鍵消息發(fā)送到活動(dòng)窗口,就如同用鍵盤進(jìn)行輸入一樣)操作等,測(cè)試中間件即可以完成任務(wù)的測(cè)試,克服了現(xiàn)有技術(shù)中selenium測(cè)試需要專業(yè)測(cè)試開發(fā)人員進(jìn)行源代碼編寫的缺陷。

較佳地,所述多個(gè)測(cè)試任務(wù)為同一時(shí)刻多個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)或單個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)。

本方案中,測(cè)試任務(wù)為單用戶發(fā)送的多個(gè)測(cè)試任務(wù)或者多用戶發(fā)送的多個(gè)測(cè)試任務(wù),交互api模塊將所述多個(gè)測(cè)試任務(wù)發(fā)送至任務(wù)隊(duì)列模塊,所述任務(wù)隊(duì)列模塊按照先進(jìn)先出的順序依次將所述測(cè)試任務(wù)發(fā)送到selenium控制模塊完成任務(wù)的測(cè)試,克服了現(xiàn)有技術(shù)selenium只能解決單用戶單任務(wù)的缺陷。

較佳地,所述測(cè)試任務(wù)還包括一執(zhí)行請(qǐng)求,所述執(zhí)行請(qǐng)求包括執(zhí)行所述測(cè)試任務(wù)所需的node節(jié)點(diǎn)類型和瀏覽器類型;

所述selenium控制模塊根據(jù)所述瀏覽器類型從所述瀏覽器資源池中調(diào)取具有所述瀏覽器類型的瀏覽器資源;

所述selenium控制模塊根據(jù)所述node節(jié)點(diǎn)類型將所述瀏覽器資源和所述測(cè)試任務(wù)發(fā)送至具有所述node節(jié)點(diǎn)類型的node節(jié)點(diǎn)。

本方案中,所述瀏覽器資源池用于存放大量的瀏覽器資源以及瀏覽器資源與node節(jié)點(diǎn)類型的對(duì)應(yīng)關(guān)系,根據(jù)執(zhí)行請(qǐng)求里包含的node節(jié)點(diǎn)類型和瀏覽器類型,selenium控制模塊調(diào)取對(duì)應(yīng)的瀏覽器資源并發(fā)送到對(duì)應(yīng)的node節(jié)點(diǎn)來進(jìn)行任務(wù)的測(cè)試。

較佳地,所述selenium控制模塊還用于檢測(cè)正在執(zhí)行一目標(biāo)測(cè)試任務(wù)的目標(biāo)瀏覽器資源的數(shù)量是否超過設(shè)定的閾值,若是,則停止從所述瀏覽器資源池中調(diào)取所述目標(biāo)瀏覽器資源。

本方案中,selenium控制模塊還實(shí)時(shí)監(jiān)控執(zhí)行中的測(cè)試任務(wù)所用到的某一類型瀏覽器資源的量是否超過設(shè)定的閾值,超過數(shù)量的同一種瀏覽器資源同時(shí)執(zhí)行測(cè)試任務(wù),可能會(huì)造成服務(wù)器耗盡,影響整體的任務(wù)的執(zhí)行速度。

較佳地,所述測(cè)試中間件還包括日志整理模塊,所述日志整理模塊用于接收所述selenium控制模塊發(fā)送過來的所述測(cè)試結(jié)果,并根據(jù)所述測(cè)試結(jié)果生成日志數(shù)據(jù),再調(diào)用所述api接口將所述日志數(shù)據(jù)發(fā)送出去。

一種基于selenium的測(cè)試系統(tǒng),包括管理平臺(tái)和如上述各優(yōu)選項(xiàng)任意組合的測(cè)試中間件,所述管理平臺(tái)用于調(diào)用所述api接口發(fā)送所述多個(gè)測(cè)試任務(wù)并接收所述測(cè)試結(jié)果。

一種基于selenium的測(cè)試方法,利用如上述的測(cè)試中間件來實(shí)現(xiàn),所述測(cè)試方法包括以下步驟:

s1、所述api接口接收多個(gè)測(cè)試任務(wù)并發(fā)送至所述任務(wù)隊(duì)列模塊;

s2、所述任務(wù)隊(duì)列模塊將接收到的所述多個(gè)測(cè)試任務(wù)存入任務(wù)隊(duì)列中,并按照所述任務(wù)隊(duì)列的順序依次將所述多個(gè)測(cè)試任務(wù)發(fā)送至所述selenium控制模塊;

s3、所述selenium控制模塊依次根據(jù)每個(gè)測(cè)試任務(wù)從所述瀏覽器資源池中調(diào)取瀏覽器資源并調(diào)用selenium,將所述測(cè)試任務(wù)和瀏覽器資源發(fā)送至所述selenium的node節(jié)點(diǎn)完成任務(wù)的測(cè)試,并將測(cè)試結(jié)果發(fā)送出去。

較佳地,步驟s1中所述的測(cè)試任務(wù)為同一時(shí)刻多個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)或單個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)。

較佳地,所述測(cè)試任務(wù)還包括執(zhí)行請(qǐng)求,所述執(zhí)行請(qǐng)求包括執(zhí)行所述測(cè)試任務(wù)所需的node節(jié)點(diǎn)類型和瀏覽器類型,步驟s3中:

所述selenium控制模塊根據(jù)所述瀏覽器類型從所述瀏覽器資源池中調(diào)取具有所述瀏覽器類型的所述瀏覽器資源;

所述selenium控制模塊根據(jù)所述node節(jié)點(diǎn)類型將所述瀏覽器資源和所述測(cè)試任務(wù)發(fā)送至具有所述node節(jié)點(diǎn)類型的node節(jié)點(diǎn)。

較佳地,步驟s3還包括:所述selenium控制模塊檢測(cè)正在執(zhí)行一目標(biāo)測(cè)試任務(wù)的目標(biāo)瀏覽器資源的數(shù)量是否超過設(shè)定的閾值,若是,則停止從所述瀏覽器資源池中調(diào)取所述目標(biāo)瀏覽器資源。

較佳地,所述測(cè)試中間件還包括日志整理模塊,所述測(cè)試方法還包括步驟s4:

所述日志整理模塊接收所述selenium控制模塊發(fā)送過來的所述測(cè)試結(jié)果,并根據(jù)所述測(cè)試結(jié)果生成所述日志數(shù)據(jù),再調(diào)用所述api接口將所述日志數(shù)據(jù)發(fā)送出去。

較佳地,所述測(cè)試方法還利用管理平臺(tái)來實(shí)現(xiàn),步驟s1之前還包括:所述管理平臺(tái)調(diào)用所述api接口發(fā)送測(cè)試任務(wù);步驟s4之后還包括:所述日志整理模塊調(diào)用所述api接口將所述測(cè)試結(jié)果發(fā)送至所述管理平臺(tái)。

本發(fā)明的積極進(jìn)步效果在于:本發(fā)明通過增加測(cè)試中間件,只要簡單的添加交互api接口的訪問信息就可以通過測(cè)試中間件來完成任務(wù)的測(cè)試,從而實(shí)現(xiàn)類似于管理平臺(tái)的一套多任務(wù)多用戶系統(tǒng),更能減少腳本的維護(hù)工作,同時(shí)還降低了性能測(cè)試工作的難度。

附圖說明

圖1為本發(fā)明實(shí)施例1的基于selenium的測(cè)試中間件的結(jié)構(gòu)框圖。

圖2為本發(fā)明實(shí)施例1的基于selenium的測(cè)試系統(tǒng)的結(jié)構(gòu)框圖。

圖3為本發(fā)明實(shí)施例2的基于selenium的測(cè)試方法的流程圖。

具體實(shí)施方式

下面通過實(shí)施例的方式進(jìn)一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實(shí)施例范圍之中。

實(shí)施例1

一種基于selenium的測(cè)試中間件,如圖1所示,包括:交互api模塊1、任務(wù)隊(duì)列模塊2、selenium控制模塊3、瀏覽器資源池4和日志整理模塊5;

所述交互api模塊1包含多個(gè)api接口,所述api接口用于接收多個(gè)測(cè)試任務(wù)并發(fā)送至所述任務(wù)隊(duì)列模塊2;所述多個(gè)測(cè)試任務(wù)為同一時(shí)刻多個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)或單個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù);

所述任務(wù)隊(duì)列模塊2用于將接收到的所述多個(gè)測(cè)試任務(wù)存入任務(wù)隊(duì)列中,并按照所述任務(wù)隊(duì)列的順序依次將所述多個(gè)測(cè)試任務(wù)發(fā)送至所述selenium控制模塊3;

每個(gè)測(cè)試任務(wù)還包括一執(zhí)行請(qǐng)求,所述執(zhí)行請(qǐng)求包括執(zhí)行所述測(cè)試任務(wù)所需的node節(jié)點(diǎn)類型和瀏覽器類型;所述selenium控制模塊3根據(jù)所述瀏覽器類型從所述瀏覽器資源池4中調(diào)取具有所述瀏覽器類型的瀏覽器資源;再調(diào)用selenium,根據(jù)所述node節(jié)點(diǎn)類型將所述測(cè)試任務(wù)和所述瀏覽器資源發(fā)送至具有所述node節(jié)點(diǎn)類型的node節(jié)點(diǎn)完成任務(wù)的測(cè)試,并將測(cè)試結(jié)果發(fā)送至日志整理模塊;

所述瀏覽器資源池4用于存放多個(gè)瀏覽器資源;

所述日志整理模塊5用于接收所述測(cè)試結(jié)果,并根據(jù)所述測(cè)試結(jié)果生成日志數(shù)據(jù),再調(diào)用所述api接口將所述日志數(shù)據(jù)發(fā)送出去。

所述測(cè)試任務(wù)在測(cè)試過程中實(shí)時(shí)生成測(cè)試狀態(tài)并發(fā)送至所述交互api模塊1,所述測(cè)試狀態(tài)為等待、執(zhí)行、成功和失敗中任意一種。具體的,當(dāng)測(cè)試腳本存入所述任務(wù)隊(duì)列的同時(shí)生成等待的測(cè)試狀態(tài)并將所述測(cè)試狀態(tài)返回至所述交互api模塊1;當(dāng)測(cè)試腳本由所述任務(wù)隊(duì)列模塊2發(fā)送至所述selenium控制模塊3執(zhí)行測(cè)試任務(wù)的同時(shí)生成執(zhí)行的測(cè)試狀態(tài)并將所述測(cè)試狀態(tài)返回至所述交互api模塊1;當(dāng)測(cè)試腳本在所述selenium控制模塊3中完成測(cè)試任務(wù)生成測(cè)試結(jié)果的同時(shí),根據(jù)任務(wù)的測(cè)試結(jié)果生成成功或失敗的測(cè)試狀態(tài)并將所述測(cè)試狀態(tài)返回至所述交互api模塊1。

本實(shí)施例還提供一種基于selenium的測(cè)試系統(tǒng),如圖2所示,包括管理平臺(tái)6和如上所述的測(cè)試中間件,所述管理平臺(tái)6用于將所述多個(gè)測(cè)試任務(wù)發(fā)送至所述交互api模塊1,還用于接收所述日志整理模塊5發(fā)送過來的所述日志數(shù)據(jù)。

本實(shí)施例中,通過增加測(cè)試中間件,管理平臺(tái)只要簡單添加交互api接口的測(cè)試任務(wù),就可以通過測(cè)試中間件來完成任務(wù)的測(cè)試,再將測(cè)試結(jié)果回傳至管理平臺(tái),從而實(shí)現(xiàn)一套類似管理平臺(tái)的測(cè)試系統(tǒng),更能減少腳本的維護(hù)工作,同時(shí)還降低了性能測(cè)試工作的難度。

實(shí)施例2

一種基于selenium的測(cè)試方法,利用如實(shí)施例1所述的測(cè)試中間件來實(shí)現(xiàn),如圖3所示,所述測(cè)試方法包括以下步驟:

步驟101、api接口接收多個(gè)測(cè)試任務(wù)并發(fā)送至任務(wù)隊(duì)列模塊。所述測(cè)試任務(wù)為同一時(shí)刻多個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)或單個(gè)用戶發(fā)送過來的多個(gè)測(cè)試任務(wù)。

步驟102、任務(wù)隊(duì)列模塊將接收到的多個(gè)測(cè)試任務(wù)存入任務(wù)隊(duì)列中,并按照所述任務(wù)隊(duì)列的順序依次將所述多個(gè)測(cè)試任務(wù)發(fā)送至所述selenium控制模塊。

步驟103、selenium控制模塊根據(jù)所述瀏覽器類型從所述瀏覽器資源池中調(diào)取具有所述瀏覽器類型的所述瀏覽器資源;再調(diào)用selenium,根據(jù)所述node節(jié)點(diǎn)類型將所述瀏覽器資源和所述測(cè)試任務(wù)發(fā)送至具有所述node節(jié)點(diǎn)類型的node節(jié)點(diǎn)完成任務(wù)的測(cè)試,并將測(cè)試結(jié)果發(fā)送至日志整理模塊。

步驟104、日志整理模塊接收測(cè)試結(jié)果,并根據(jù)測(cè)試結(jié)果生成日志數(shù)據(jù),并調(diào)用api接口將日志數(shù)據(jù)發(fā)送出去。

本實(shí)施例中的測(cè)試方法還利用管理平臺(tái)來實(shí)現(xiàn),步驟101之前還包括:所述管理平臺(tái)調(diào)用所述api接口發(fā)送測(cè)試任務(wù);步驟104之后還包括:所述日志整理模塊調(diào)用所述api接口將所述測(cè)試結(jié)果發(fā)送至所述管理平臺(tái)。

雖然以上描述了本發(fā)明的具體實(shí)施方式,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對(duì)這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1