Web測試方法與測試機(jī)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及自動化測試技術(shù),尤其涉及一種Web測試方法與測試機(jī)。
【背景技術(shù)】
[0002]Web應(yīng)用自動化測試是基于用戶界面(User Interface,UI)的自動化測試,其通過圖形腳本語言Sikuli或Selenium等UI自動化測試框架,實現(xiàn)模擬用戶行為的自動化測試。
[0003]具體的,Web應(yīng)用自動化測試過程中,首先,測試機(jī)執(zhí)行測試用例,獲取測試用例對應(yīng)的運行結(jié)果;接著,測試機(jī)根據(jù)各個測試用例對應(yīng)的運行結(jié)果,計算預(yù)定批次的運行成功率。
[0004]上述Web測試方法中,測試機(jī)借助自動化測試平臺提供的信息,能夠獲取測試用例執(zhí)行失敗時的代碼段、錯誤類型等錯誤信息。然而,該自動化測試過程中,有時會產(chǎn)生較多的錯誤信息。此時,測試機(jī)無法確定各個錯誤信息對應(yīng)的錯誤的出現(xiàn)次數(shù),無法確定錯誤的優(yōu)先級,需要花費大量的精力與時間來進(jìn)行優(yōu)先級劃分,從而影響問題處理速度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種Web測試方法與測試機(jī),測試用例運行錯誤后,對程序日志進(jìn)行分析和處理以獲取錯誤信息,根據(jù)錯誤信息確定出同一錯誤出現(xiàn)的次數(shù),從而提高對錯誤的處理速度。
[0006]第一個方面,本發(fā)明實施例提供一種Web測試方法,包括:
[0007]確定當(dāng)前Web測試任務(wù)的測試用例及運行所述測試用例的至少一個服務(wù)器的地址;
[0008]根據(jù)所述服務(wù)器的地址向?qū)?yīng)的每個服務(wù)器發(fā)送Web請求,以在所述Web服務(wù)器上運行所述測試用例;
[0009]若接收到任意目標(biāo)測試用例在服務(wù)器上運行錯誤的消息,則生成錯誤信息;
[0010]根據(jù)所述錯誤信息,確定所述錯誤出現(xiàn)的次數(shù)。
[0011]可選的,在本發(fā)明一實施例中,所述錯誤信息包括:程序日志目錄信息,時間戳,出現(xiàn)錯誤的服務(wù)器的地址,所述若接收到任意目標(biāo)測試用例在服務(wù)器上運行錯誤的消息,則生成錯誤信息之后,還包括:
[0012]根據(jù)所述程序日志目錄信息,確定記錄所述錯誤的程序日志;
[0013]根據(jù)所述時間戳與所述出現(xiàn)錯誤的服務(wù)器的地址,匹配所述程序日志,從而獲得發(fā)生所述錯誤時的詳細(xì)信息,所述詳細(xì)信息包括:錯誤類型、目標(biāo)測試用例的名稱、拋出異常的代碼段;
[0014]根據(jù)所述目標(biāo)測試用例的名稱、所述錯誤類型以及所述拋出異常的代碼段,生成目標(biāo)錯誤標(biāo)識碼;
[0015]所述根據(jù)所述錯誤信息,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0016]根據(jù)所述目標(biāo)錯誤標(biāo)識碼以及歷史Web測試任務(wù)對應(yīng)的錯誤標(biāo)識碼,確定所述錯誤出現(xiàn)的次數(shù)。
[0017]可選的,在本發(fā)明一實施例中,所述根據(jù)所述目標(biāo)錯誤標(biāo)識碼以及歷史Web測試任務(wù)的錯誤標(biāo)識碼,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0018]若所述歷史Web測試任務(wù)的錯誤標(biāo)識碼中不存在所述目標(biāo)錯誤標(biāo)識碼,則確定所述錯誤出現(xiàn)的次數(shù)為I。
[0019]可選的,在本發(fā)明一實施例中,所述詳細(xì)信息還包括:程序異常拋出時間tl,所述根據(jù)所述目標(biāo)錯誤標(biāo)識碼以及歷史Web測試任務(wù)的錯誤標(biāo)識碼,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0020]若所述歷史web測試任務(wù)的錯誤標(biāo)識碼中存在所述目標(biāo)錯誤標(biāo)識碼,則確定所述錯誤的上次出現(xiàn)時間to;
[0021]根據(jù)所述程序異常拋出時間tl與所述上次出現(xiàn)時間t0,確定出現(xiàn)述所述錯誤的時間間隔;
[0022]根據(jù)所述時間間隔,確定所述錯誤出現(xiàn)的次數(shù)。
[0023]可選的,在本發(fā)明一實施例中,所述根據(jù)所述時間間隔,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0024]若所述時間間隔大于時間間隔閾值,則將所述錯誤出現(xiàn)的次數(shù)重置為I,并將所述上次出現(xiàn)時間to更新為當(dāng)前的程序異常拋出時間tl。
[0025]可選的,在本發(fā)明一實施例中,所述根據(jù)所述時間間隔,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0026]當(dāng)所述時間間隔小于等于時間間隔閾值時,若當(dāng)前統(tǒng)計的次數(shù)小于所述錯誤發(fā)生次數(shù)閾值,則將所述錯誤出現(xiàn)的次數(shù)加I,并將所述上次出現(xiàn)時間to更新為當(dāng)前的程序異常拋出時間tl。
[0027]可選的,在本發(fā)明一實施例中,所述根據(jù)所述時間間隔,確定所述錯誤出現(xiàn)的次數(shù),包括:
[0028]當(dāng)所述時間間隔小于等于時間間隔閾值時,若當(dāng)前統(tǒng)計的次數(shù)大于等于所述錯誤發(fā)生次數(shù)閾值,則將所述錯誤出現(xiàn)的次數(shù)初始化為0,并將所述上次出現(xiàn)時間to初始化為O。
[0029]可選的,在本發(fā)明一實施例中,所述根據(jù)所述錯誤信息,確定所述錯誤出現(xiàn)的次數(shù)之后,還包括:
[0030]根據(jù)所述錯誤類型與告警類型,確定是否發(fā)出告警信息。
[0031]可選的,在本發(fā)明一實施例中,所述根據(jù)所述錯誤類型與告警類型,確定是否發(fā)出告警信息,包括:
[0032]若所述錯誤類型屬于所述告警類型,則發(fā)出所述告警信息;否則,
[0033]若所述錯誤類型不屬于所述告警類型,則確定重試次數(shù),并將所述重試次數(shù)加I,得到當(dāng)前重試次數(shù),進(jìn)一步確定所述當(dāng)前重試次數(shù)是否小于重試次數(shù)閾值,若小于,則重新對所述出現(xiàn)錯誤的服務(wù)器運行所述目標(biāo)測試用例;否則,結(jié)束所述當(dāng)前Web測試任務(wù)。
[0034]第二個方面,本發(fā)明提供一種測試機(jī),包括:
[0035]處理模塊,用于確定當(dāng)前Web測試任務(wù)的測試用例及運行所述測試用例的至少一個服務(wù)器的地址;
[0036]發(fā)送模塊,用于根據(jù)所述處理器模塊確定的所述服務(wù)器的地址向?qū)?yīng)的每個服務(wù)器發(fā)送Web請求,以在所述Web服務(wù)器上運行所述測試用例;
[0037]錯誤信息生成模塊,用于若接收到任意目標(biāo)測試用例在所述發(fā)送模塊發(fā)送Web請求的服務(wù)器上運行錯誤的消息,則生成錯誤信息;
[0038]確定模塊,用于根據(jù)所述錯誤信息生成模塊生成的所述錯誤信息,確定所述錯誤出現(xiàn)的次數(shù)。
[0039]可選的,在本發(fā)明一實施例中,所述錯誤信息包括:程序日志目錄信息,時間戳,出現(xiàn)錯誤的服務(wù)器的地址,所述測試機(jī)還包括:
[0040]目標(biāo)錯誤標(biāo)識碼生成模塊,用于在所述錯誤信息生成模塊生成所述錯誤信息后,根據(jù)所述程序日志目錄信息,確定記錄所述錯誤的程序日志,根據(jù)所述時間戳與所述出現(xiàn)錯誤的服務(wù)器的地址,匹配所述程序日志,從而獲得發(fā)生所述錯誤時的詳細(xì)信息,所述詳細(xì)信息包括:錯誤類型、目標(biāo)測試用例的名稱、拋出異常的代碼段,根據(jù)所述目標(biāo)測試用例的名稱、所述錯誤類型以及所述拋出異常的代碼段,生成目標(biāo)錯誤標(biāo)識碼;
[0041 ]所述確定模塊,用于根據(jù)所述目標(biāo)錯誤標(biāo)識碼生成模塊生成的所述目標(biāo)錯誤標(biāo)識碼以及歷史Web測試任務(wù)對應(yīng)的錯誤標(biāo)識碼,確定所述錯誤出現(xiàn)的次數(shù)。
[0042]可選的,在本發(fā)明一實施例中,所述確定模塊,具體用于若所述歷史Web測試任務(wù)的錯誤標(biāo)識碼中不存在所述目標(biāo)錯誤標(biāo)識碼,則確定所述錯誤出現(xiàn)的次數(shù)為I。
[0043]可選的,在本發(fā)明一實施例中,所述詳細(xì)信息還包括:程序異常拋出時間tl,所述確定模塊,具體用于若所述歷史web測試任務(wù)的錯誤標(biāo)識碼中存在所述目標(biāo)錯誤標(biāo)識碼,則確定所述錯誤的上次出現(xiàn)時間tO;根據(jù)所述程序異常拋出時間tl與所述上次出現(xiàn)時間to,確定出現(xiàn)述所述錯誤的時間間隔;根據(jù)所述時間間隔,確定所述錯誤出現(xiàn)的次數(shù)。
[0044]可選的,在本發(fā)明一實施例中,所述確定模塊,具體用于若所述時間間隔大于時間間隔閾值,則將所述錯誤出現(xiàn)的次數(shù)重置為I,并將所述上次出現(xiàn)時間to更新為當(dāng)前的程序異常拋出時間tl。
[0045]可選的,在本發(fā)明一實施例中,所述確定模塊,具體用于當(dāng)所述時間間隔小于等于時間間隔閾值時,若當(dāng)前統(tǒng)計的次數(shù)小于所述錯誤發(fā)生次數(shù)閾值,則將所述錯誤出現(xiàn)的次數(shù)加I,并將所述上次出現(xiàn)時間to更新為當(dāng)前的程序異常拋出時間tl。
[0046]可選的,在本發(fā)明一實施例中,所述確定模塊,具體用于當(dāng)所述時間間隔小于等于時間間隔閾值時,若當(dāng)前統(tǒng)計的次數(shù)大于等于所述錯誤發(fā)生次數(shù)閾值,則將所述錯誤出現(xiàn)的次數(shù)初始化為O,并將所述上次出現(xiàn)時間to初始化為O。
[0047]可選的,在本發(fā)明一實施例中,該測試機(jī)還包括:
[0048]告警模塊,用于在所述確定模塊根據(jù)所述錯誤信息,確定所述錯誤出現(xiàn)的次數(shù)之后,根據(jù)所述錯誤類型與告警類型,確定是否發(fā)出告警信息。
[0049]可選的,在本發(fā)明一實施例中,所述告警模塊,具體用于若所述錯誤類型屬于所述告警類型,則發(fā)出所述告警信息;否則,若所述錯誤類型不屬于所述告警類型,則確定重試次數(shù),并將所述重試次數(shù)加I,得到當(dāng)前重試次數(shù),