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