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