本發(fā)明涉及軟件測(cè)試領(lǐng)域,尤其涉及到一種python自動(dòng)化測(cè)試框架系統(tǒng)及測(cè)試方法。
背景技術(shù):
隨著近年來(lái)軟件自動(dòng)化測(cè)試技術(shù)的發(fā)展,特征是高效的自動(dòng)化測(cè)試框架技術(shù)與優(yōu)秀的自動(dòng)化測(cè)試工具的出現(xiàn),已經(jīng)很大程度提高了自動(dòng)化測(cè)試腳本的開發(fā)效率,同時(shí)也對(duì)軟件的自動(dòng)化測(cè)試的要求越來(lái)越高。
相關(guān)技術(shù)的軟件自動(dòng)化測(cè)試中,同一測(cè)試用例集的測(cè)試腳本分別要搭建幾種不同的測(cè)試環(huán)境,在自動(dòng)化腳本連續(xù)執(zhí)行時(shí),會(huì)因?yàn)闇y(cè)試環(huán)境差異導(dǎo)致測(cè)試失敗、測(cè)試環(huán)境被破壞以及測(cè)試執(zhí)行阻塞,從而使自動(dòng)化測(cè)試繁瑣,自動(dòng)化測(cè)試效率大打折扣。
因此,有必要提供一種新的python自動(dòng)化測(cè)試框架系統(tǒng)及測(cè)試方法解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明需要解決的技術(shù)問(wèn)題是提供自動(dòng)忽略與測(cè)試環(huán)境不匹配的測(cè)試腳本并執(zhí)行與測(cè)試環(huán)境相匹配的測(cè)試腳本的python自動(dòng)化測(cè)試框架系統(tǒng)及測(cè)試方法。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種python自動(dòng)化測(cè)試框架系統(tǒng),包括:
測(cè)試腳本功能接口模塊,用于編寫測(cè)試腳本,并設(shè)置每個(gè)所述測(cè)試腳本對(duì)應(yīng)測(cè)試用例的環(huán)境屬性,多個(gè)所述測(cè)試用例形成用例集;
測(cè)試用例加載模塊,用于加載選定的所述用例集,并選定所述用例集中需要執(zhí)行的所述測(cè)試用例;
測(cè)試控制模塊,用于設(shè)置當(dāng)前測(cè)試環(huán)境屬性,并自動(dòng)掃描所述測(cè)試用例集中每個(gè)所述測(cè)試用例的環(huán)境屬性,然后將所述測(cè)試用例的環(huán)境屬性與所述測(cè)試環(huán)境屬性進(jìn)行比較,當(dāng)所述環(huán)境屬性與所述測(cè)試環(huán)境屬性相匹配則通知測(cè)試執(zhí)行模塊執(zhí)行所述測(cè)試用例的所述測(cè)試腳本,不匹配則忽略所述測(cè)試腳本;
測(cè)試執(zhí)行模塊,用于執(zhí)行所述測(cè)試控制模塊指定的所述測(cè)試腳本,并將測(cè)試結(jié)果返回至所述測(cè)試控制模塊。
提供一種python自動(dòng)化測(cè)試框架系統(tǒng)的測(cè)試方法,包括以下步驟:
編寫測(cè)試腳本,通過(guò)測(cè)試腳本功能接口模塊編寫測(cè)試腳本,并設(shè)置每個(gè)所述測(cè)試腳本對(duì)應(yīng)測(cè)試用例的環(huán)境屬性,多個(gè)所述測(cè)試用例形成用例集;
加載用例集并選定需執(zhí)行測(cè)試用例,通過(guò)測(cè)試用例加載模塊加載指定的所述用例集,并選定需要執(zhí)行的多個(gè)所述測(cè)試用例;
判斷測(cè)試用例的環(huán)境屬性與測(cè)試環(huán)境屬性是否匹配,通過(guò)測(cè)試控制模塊設(shè)置所述測(cè)試控制模塊的當(dāng)前測(cè)試環(huán)境屬性,所述測(cè)試控制模塊自動(dòng)掃描所述測(cè)試用例的環(huán)境屬性,并將掃描的所述測(cè)試用例的環(huán)境屬性與所述當(dāng)前測(cè)試環(huán)境屬性對(duì)比,當(dāng)所述環(huán)境屬性與所述測(cè)試環(huán)境屬性相匹配則通知測(cè)試執(zhí)行模塊執(zhí)行所述測(cè)試用例的所述測(cè)試腳本,不匹配則忽略所述測(cè)試腳本;
測(cè)試腳本自動(dòng)執(zhí)行,通過(guò)所述測(cè)試執(zhí)行模塊執(zhí)行與所述測(cè)試環(huán)境屬性相匹配的所述測(cè)試用例,并將測(cè)試結(jié)果返回通知至所述測(cè)試控制模塊。
優(yōu)選的,所述測(cè)試腳本自動(dòng)執(zhí)行步驟中,所述測(cè)試控制模塊實(shí)時(shí)顯示測(cè)試進(jìn)度和測(cè)試結(jié)果。
優(yōu)選的,所述加載用例集并選定需執(zhí)行測(cè)試用例步驟中,所述測(cè)試用例加載模塊單次加載一個(gè)所述測(cè)試用例集,選定一個(gè)或多個(gè)所述測(cè)試用例。
優(yōu)選的,所述測(cè)試腳本自動(dòng)執(zhí)行步驟中,所述測(cè)試執(zhí)行模塊單次執(zhí)行一個(gè)所述測(cè)試用例。
優(yōu)選的,所述編寫測(cè)試腳本步驟中,所述測(cè)試腳本通過(guò)日志分割器及測(cè)試環(huán)境描述器修飾。
與相關(guān)技術(shù)相比,本發(fā)明提供的python自動(dòng)化測(cè)試框架系統(tǒng)的測(cè)試方法包括加載測(cè)試用例并識(shí)別測(cè)試用例環(huán)境屬性和執(zhí)行測(cè)試用例的測(cè)試腳本兩個(gè)步驟,有效避免了python自動(dòng)化腳本連續(xù)執(zhí)行時(shí)的因測(cè)試環(huán)境差異導(dǎo)致測(cè)試失敗、測(cè)試環(huán)境被破壞以及測(cè)試執(zhí)行阻塞,自動(dòng)挑選符合測(cè)試環(huán)境的測(cè)試用例并執(zhí)行,無(wú)需其它繁瑣操作,自動(dòng)化程度高。
附圖說(shuō)明
圖1為本發(fā)明python自動(dòng)化測(cè)試框架系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明python自動(dòng)化測(cè)試框架系統(tǒng)測(cè)試方法的流程圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
請(qǐng)參照?qǐng)D1,為本發(fā)明python自動(dòng)化測(cè)試框架系統(tǒng)的結(jié)構(gòu)框圖。所述python自動(dòng)化測(cè)試框架系統(tǒng)100包括測(cè)試腳本功能接口模塊1、測(cè)試用例加載模塊2、測(cè)試控制模塊3以及測(cè)試執(zhí)行模塊4。
所述測(cè)試腳本功能接口模塊1用于編寫測(cè)試腳本,并設(shè)置每個(gè)所述測(cè)試腳本對(duì)應(yīng)測(cè)試用例的環(huán)境屬性,多個(gè)所述測(cè)試用例形成用例集。
測(cè)試人員根據(jù)基礎(chǔ)API(Advanced Programmers Interface)編寫所述測(cè)試腳本,并設(shè)置每個(gè)所述測(cè)試腳本對(duì)應(yīng)測(cè)試用例的環(huán)境屬性,其中,環(huán)境屬性的種類和取值可以根據(jù)實(shí)際情況自定義。所述用例集由多個(gè)所述測(cè)試用例構(gòu)成,所述測(cè)試腳本通過(guò)日志分割器和測(cè)試環(huán)境描述器進(jìn)行修飾,每個(gè)所述測(cè)試腳本執(zhí)行前通過(guò)Setup函數(shù)修飾、每個(gè)所述測(cè)試腳本執(zhí)行成功或失敗后通過(guò)Teardown測(cè)試環(huán)境清理函數(shù)進(jìn)行清理。
所述測(cè)試用例加載模塊2用于加載指定的所述用例集和選定所述用例集中需要執(zhí)行的所述測(cè)試用例。
所述測(cè)試控制模塊3用于設(shè)置當(dāng)前測(cè)試環(huán)境屬性,并自動(dòng)掃描每個(gè)所述測(cè)試用例的所述環(huán)境屬性,然后將所述測(cè)試用例的環(huán)境屬性與所述測(cè)試環(huán)境屬性進(jìn)行比較,當(dāng)所述環(huán)境屬性與所述測(cè)試環(huán)境屬性相匹配則通知測(cè)試執(zhí)行模塊4執(zhí)行所述測(cè)試用例的所述測(cè)試腳本,不匹配則忽略所述測(cè)試腳本。
所述測(cè)試執(zhí)行模塊4用于執(zhí)行所述測(cè)試控制模塊3指定的所述測(cè)試用例,并將測(cè)試結(jié)果返回至所述測(cè)試控制模塊3。
通過(guò)對(duì)每個(gè)所述測(cè)試用例配置相應(yīng)的測(cè)試環(huán)境屬性,然后所述測(cè)試控制模塊3自動(dòng)掃描所述測(cè)試用例的環(huán)境屬性是否匹配當(dāng)前測(cè)試環(huán)境屬性,當(dāng)所述測(cè)試用例的環(huán)境屬性與所述當(dāng)前測(cè)試環(huán)境相匹配則通知執(zhí)行所述測(cè)試用例的所述測(cè)試腳本,不匹配則忽略所述測(cè)試用例的所述測(cè)試腳本,從而可有效區(qū)分不同所述測(cè)試用例的測(cè)試環(huán)境,使在自動(dòng)化無(wú)人值守測(cè)試中,測(cè)試人員只需要設(shè)置當(dāng)前的測(cè)試環(huán)境屬性,將所述用例集的所述測(cè)試腳本全部執(zhí)行即可,所述python自動(dòng)化測(cè)試框架系統(tǒng)100會(huì)自動(dòng)挑選符合所述測(cè)試環(huán)境的所述測(cè)試用例執(zhí)行,無(wú)需其它繁瑣操作。
請(qǐng)結(jié)合參照?qǐng)D2,為本發(fā)明python自動(dòng)化測(cè)試框架系統(tǒng)測(cè)試方法的流程圖。提供一種所述python自動(dòng)化測(cè)試框架系統(tǒng)100的測(cè)試方法,包括以下步驟:
步驟S1,編寫測(cè)試腳本,通過(guò)測(cè)試腳本功能接口模塊1編寫測(cè)試腳本,并設(shè)置每個(gè)所述測(cè)試腳本對(duì)應(yīng)測(cè)試用例的環(huán)境屬性,多個(gè)所述測(cè)試用例形成用例集;
本步驟中,所述測(cè)試腳本通過(guò)日志分割器和測(cè)試環(huán)境描述器進(jìn)行修飾。
步驟S2,加載用例集并選定需執(zhí)行測(cè)試用例,通過(guò)測(cè)試用例加載模塊2加載指定的所述用例集,并選定需要執(zhí)行的多個(gè)所述測(cè)試用例;
本步驟中,所述測(cè)試用例加載模塊2單次加載一個(gè)所述測(cè)試用例集,選定一個(gè)或多個(gè)所述測(cè)試用例。
步驟S3,判斷測(cè)試用例的環(huán)境屬性與測(cè)試環(huán)境屬性是否匹配,通過(guò)測(cè)試控制模塊3設(shè)置所述測(cè)試控制模塊3的當(dāng)前測(cè)試環(huán)境屬性,所述測(cè)試控制模塊3自動(dòng)掃描所述測(cè)試用例的環(huán)境屬性,并將掃描的所述測(cè)試用例的環(huán)境屬性與所述當(dāng)前測(cè)試環(huán)境屬性對(duì)比,當(dāng)所述環(huán)境屬性與所述測(cè)試環(huán)境屬性相匹配則通知測(cè)試執(zhí)行模塊4執(zhí)行所述測(cè)試用例的所述測(cè)試腳本,不匹配則忽略所述測(cè)試腳本;
步驟S4,測(cè)試腳本自動(dòng)執(zhí)行,通過(guò)所述測(cè)試執(zhí)行模塊4執(zhí)行與所述測(cè)試環(huán)境屬性相匹配的所述測(cè)試用例,并將測(cè)試結(jié)果返回通知至所述測(cè)試控制模塊3。
本步驟中,所述測(cè)試執(zhí)行模塊4單次加載一個(gè)所述測(cè)試用例。所述測(cè)試控制模塊3實(shí)時(shí)顯示測(cè)試進(jìn)度和測(cè)試結(jié)果,供測(cè)試人員實(shí)時(shí)了解測(cè)試進(jìn)度和測(cè)試結(jié)果。
與相關(guān)技術(shù)相比,本發(fā)明的python自動(dòng)化測(cè)試框架系統(tǒng)的測(cè)試方法包括加載測(cè)試用例并識(shí)別測(cè)試用例環(huán)境和執(zhí)行測(cè)試用例的測(cè)試腳本兩步驟,有效避免了python自動(dòng)化腳本連續(xù)執(zhí)行時(shí)的因測(cè)試環(huán)境差異導(dǎo)致測(cè)試失敗、測(cè)試環(huán)境被破壞以及測(cè)試執(zhí)行阻塞,自動(dòng)挑選符合測(cè)試環(huán)境的測(cè)試用例并執(zhí)行,無(wú)需其它繁瑣操作,自動(dòng)化程度高。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。