一種基于自定義測(cè)試腳本的自動(dòng)化測(cè)試方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種基于自定義測(cè)試腳本的自動(dòng)化測(cè)試方法。
【背景技術(shù)】
[0002]隨著智慧城市的普及,智慧城市平臺(tái)的業(yè)務(wù)流程逐漸成熟,開(kāi)發(fā)復(fù)用已有產(chǎn)品框架的情況越來(lái)越多,增加了測(cè)試人員的重復(fù)性勞動(dòng),如果都需要手工測(cè)試,那么就加大了測(cè)試人員的工作量,大部分公司的測(cè)試人員與開(kāi)發(fā)人員的比重嚴(yán)重失調(diào),測(cè)試資源不能夠滿足項(xiàng)目現(xiàn)狀的需要。
[0003]傳統(tǒng)的自動(dòng)化測(cè)試是用于捕捉界面的,如果開(kāi)發(fā)人員修改任何一個(gè)代碼都需要重新制作測(cè)試腳本,腳本的維護(hù)工作量會(huì)很大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的就是為了解決上述問(wèn)題,提供一種基于自定義測(cè)試腳本的自動(dòng)化測(cè)試方法,它具有自定義執(zhí)行智慧城市平臺(tái)業(yè)務(wù)流程,減少測(cè)試人員的重復(fù)性勞動(dòng),解放一部分生產(chǎn)力優(yōu)點(diǎn)。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0006]—種基于自定義測(cè)試腳本的自動(dòng)化測(cè)試方法,包括如下步驟:
[0007]步驟(I):制作測(cè)試腳本:依據(jù)Http請(qǐng)求的參數(shù)類(lèi)型和傳遞方式生成測(cè)試類(lèi);編寫(xiě)測(cè)試主函數(shù);
[0008]步驟(2):根據(jù)測(cè)試類(lèi)之間的邏輯關(guān)系,設(shè)定測(cè)試腳本的執(zhí)行順序來(lái)執(zhí)行測(cè)試腳本;
[0009]步驟(3):判斷Http請(qǐng)求中是否存在錯(cuò)誤;若是就進(jìn)入步驟(4),若否就返回步驟
(2);
[0010]步驟(4):將錯(cuò)誤日志記錄到Bug管理系統(tǒng)中;
[0011]步驟(5):主函數(shù)判斷是否需要停止,若是就停止執(zhí)行,若否就返回步驟(2)。
[0012]所述步驟(I)的步驟為:
[0013]步驟(101):測(cè)試類(lèi)的生成:通過(guò)Http協(xié)議截取智慧城市平臺(tái)每個(gè)業(yè)務(wù)流程底層交互的Http請(qǐng)求,分析Http請(qǐng)求中的參數(shù)類(lèi)型和傳遞方式,并根據(jù)參數(shù)類(lèi)型和傳遞方式編寫(xiě)若干個(gè)測(cè)試類(lèi);
[0014]步驟(102):編寫(xiě)測(cè)試主函數(shù),主函數(shù)即main函數(shù);
[0015]步驟(103):在main函數(shù)中,讀取測(cè)試數(shù)據(jù);
[0016]步驟(104):在main函數(shù)中,調(diào)用若干個(gè)測(cè)試類(lèi),并根據(jù)若干個(gè)測(cè)試類(lèi)之間的邏輯關(guān)系,設(shè)定測(cè)試類(lèi)的執(zhí)行順序;
[0017]步驟(105):在main函數(shù)中,設(shè)定執(zhí)行順序之間的間隔時(shí)間;
[0018]步驟(106):在main函數(shù)中,設(shè)定各個(gè)測(cè)試類(lèi)結(jié)束執(zhí)行的參數(shù)Flag。
[0019]所述步驟(2)的步驟為:
[0020]步驟(201):執(zhí)行main函數(shù);
[0021]步驟(202):將main函數(shù)的調(diào)用指令發(fā)送到各個(gè)測(cè)試類(lèi);
[0022]步驟(203):每個(gè)測(cè)試類(lèi)接收調(diào)用指令,根據(jù)main函數(shù)中設(shè)定的測(cè)試類(lèi)之間的邏輯關(guān)系,初始化Http請(qǐng)求中的參數(shù)和參數(shù)Flag ;
[0023]步驟(204):讀取測(cè)試數(shù)據(jù),將測(cè)試數(shù)據(jù)的參數(shù)類(lèi)型轉(zhuǎn)化成測(cè)試類(lèi)需要的參數(shù)類(lèi)型,通過(guò)參數(shù)類(lèi)型,將參數(shù)傳遞給各個(gè)測(cè)試類(lèi);
[0024]步驟(205):測(cè)試類(lèi)接收參數(shù),測(cè)試類(lèi)把參數(shù)通過(guò)HttpRequest傳到Http協(xié)議中,并通過(guò)HttpResonse接受Http請(qǐng)求的返回值,返回值直接傳遞到main函數(shù)的Result類(lèi)中。
[0025]所述步驟(4)的步驟包括:
[0026]步驟(401):當(dāng)Result類(lèi)中含有Http錯(cuò)誤代碼的信息時(shí),Result類(lèi)自動(dòng)發(fā)出請(qǐng)求,請(qǐng)求測(cè)試類(lèi)返回瀏覽器錯(cuò)誤快照;
[0027]步驟(402):測(cè)試類(lèi)將捕捉到的瀏覽器錯(cuò)誤快照發(fā)送給Result類(lèi),Result類(lèi)將瀏覽器錯(cuò)誤快照和與瀏覽器錯(cuò)誤快照相應(yīng)的Http請(qǐng)求保存到錯(cuò)誤日志類(lèi),并將Flag值發(fā)送給主函數(shù);
[0028]步驟(403):錯(cuò)誤日志類(lèi)收到錯(cuò)誤日志后,將錯(cuò)誤日志發(fā)送到Bug管理系統(tǒng)。
[0029]所述步驟(101)的參數(shù)類(lèi)型包括:int型、string型或float型;
[0030]所述步驟(101)的傳遞方式包括:HttpRequest或HttpResonse ο
[0031]所述步驟(104)若干個(gè)測(cè)試類(lèi)之間的邏輯關(guān)系包括:開(kāi)始-開(kāi)始,開(kāi)始-結(jié)束,結(jié)束-結(jié)束,結(jié)束-開(kāi)始。
[0032]所述步驟(105)的間隔時(shí)間格式為hh: mm: s s。
[0033]所述步驟(106)當(dāng)執(zhí)行某一測(cè)試類(lèi),出現(xiàn)問(wèn)題的時(shí)候,判斷主函數(shù)是否要繼續(xù)執(zhí)行,若執(zhí)行類(lèi)設(shè)定的Flag為true時(shí),則繼續(xù)執(zhí)行下一個(gè)測(cè)試類(lèi),如果測(cè)試類(lèi)類(lèi)設(shè)定的Flag是fa I s e,則測(cè)試停止。
[0034]所述步驟(401)的!11^口錯(cuò)誤代碼包括!11^口500或!11^口400。
[0035]所述步驟(403)的錯(cuò)誤日志包括:瀏覽器錯(cuò)誤快照和與瀏覽器錯(cuò)誤快照相應(yīng)的Http請(qǐng)求。
[0036]本發(fā)明的有益效果:針對(duì)智慧城市平臺(tái)業(yè)務(wù)流程的項(xiàng)目,可以減少測(cè)試人員重復(fù)性勞動(dòng),解放一部分生產(chǎn)力,降低了人力資源成本,本發(fā)明的測(cè)試方法能夠縮短測(cè)試時(shí)間,提高工作效率。本發(fā)明主要是通過(guò)截取HTTP協(xié)議中參數(shù)類(lèi)型和傳遞方式,受界面元素和代碼的影響比較小,維護(hù)的工作量比較小。
【附圖說(shuō)明】
[0037]圖1為本發(fā)明的方法流程圖;
[0038]圖2為圖1的步驟(I)的流程圖;
[0039]圖3為圖1的步驟(2)的流程圖;
[0040]圖4為圖1的步驟(4)的流程圖。
【具體實(shí)施方式】
[0041]下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0042]如圖1所示,一種基于自定義測(cè)試腳本的自動(dòng)化測(cè)試方法,包括如下步驟:
[0043]步驟(I):制作測(cè)試腳本:依據(jù)Http請(qǐng)求的參數(shù)類(lèi)型和傳遞方式生成測(cè)試類(lèi);編寫(xiě)測(cè)試主函數(shù);
[0044]步驟(2):根據(jù)測(cè)試類(lèi)之間的邏輯關(guān)系,設(shè)定測(cè)試腳本的執(zhí)行順序來(lái)執(zhí)行測(cè)試腳本;
[0045]步驟(3):判斷Http請(qǐng)求中是否存在錯(cuò)誤;若是就進(jìn)入步驟(4),若否就返回步驟
(2);
[0046]步驟(4):將錯(cuò)誤日志記錄到Bug管理系統(tǒng)中;
[0047]步驟(5):主函數(shù)判斷是否需要停止,若是就停止執(zhí)行,若否就返回步驟(2)。
[0048]如圖2所示,所述步驟(I)的步驟為:
[0049]步驟(101):測(cè)試類(lèi)的生成:通過(guò)Http協(xié)議截取智慧城市平臺(tái)每個(gè)業(yè)務(wù)流程底層交互的Http請(qǐng)求,分析Http請(qǐng)求中的參數(shù)類(lèi)型和傳遞方式,并根據(jù)參數(shù)類(lèi)型和傳遞方式編寫(xiě)若干個(gè)測(cè)試類(lèi);參數(shù)類(lèi)型例如:int型、str ing型、float型等;傳遞方式包括例如:HttpRequest和HttpResonse等。
[0050]步驟(102):編寫(xiě)測(cè)試主函數(shù),即main函數(shù);
[0051]步驟(103):在main函數(shù)中,讀取數(shù)據(jù)庫(kù)中的初始化測(cè)試數(shù)據(jù);
[0052]步驟(104):在main函數(shù)中,調(diào)用若干個(gè)測(cè)試類(lèi),并根據(jù)若干個(gè)測(cè)試類(lèi)之間的邏輯關(guān)系,設(shè)定測(cè)試類(lèi)的執(zhí)行順序;所述若干個(gè)測(cè)試類(lèi)之間的邏輯關(guān)系包括:開(kāi)始-開(kāi)始,開(kāi)始_結(jié)束,結(jié)束-結(jié)束,結(jié)束-開(kāi)始等;例如:測(cè)試類(lèi)A開(kāi)始,測(cè)試類(lèi)B開(kāi)始;測(cè)試類(lèi)A結(jié)束,測(cè)試類(lèi)B結(jié)束;測(cè)試類(lèi)A結(jié)束,測(cè)試類(lèi)B