前言
前面開了一篇講了Jenkins+jmeter+ant的使用,但沒有說到具體怎麼投入到專案使用,主要介紹了介面測試定義,流程和環境部署,所以我今天要說的就是我是怎麼將這個方案投入到實際中使用的。這套方案主要用於相互介面之間無業務關聯的測試。
結構設計與資料準備
介面測試的流程
1、 專案啟動後,測試人員要儘早找到開發人員拿到介面測試文件
2、 獲取介面測試文件後,就可以進行介面用例的編寫和除錯
3、 介面用例編寫除錯完成後,部署到持續整合的測試環境中,
4、 設定指令碼執行頻率,告警方式等基本引數,進行介面的日常監控
5、 每日進行介面指令碼的維護更新,介面異常的處理
jmeter測試過程
jmeter+jmeter+ANT 整體結構設計
測試資料
我的測試資料是用CSV管理的,包含域名、url、方法(get還是post)、 引數 、預期結果(可以是多個),使用excel建立然後轉化程csv格式,這樣一來我們只需要在excel中維護我們的用例就好了
從資料格式可以看出,做了用例的執行標識,選中為YES時才執行,NO時不執行,這是一個用例選擇執行的簡單設計,還有請求的方法也是可以選擇的,目前專案中的主要用POST和GET,除此之外之後要獲取的還有用例名,呼叫的介面和具體的測試請求資料,這就是使用excel管理測試用例的模組
注意:包含中文字元jmeter取值可能會報錯,修改${jmeterhome}/bin/jmeter.profile
# The encoding to be used if none is provided (default ISO-8859-1) #sampleresult.default.encoding=ISO-8859-1 sampleresult.default.encoding=UTF-8
配置基本完成,之後就是專案的目錄架構:
- ./Test_Play/目錄用來放Jmeter生成的Case檔案(編寫時注意,不要用絕對路徑,否則後續維護成本會提高)
- ./Test_suit/目錄用來放Jmeter測試需要的相關配置檔案
- ./資源/目錄用來存放專案相關的一些文件資訊
- build.xml檔案,Ant的配置檔案
- 閱讀build.xml檔案,會發先還有一個自動生成的目錄./report,該目錄下有兩個目錄jtl以及html,用來放置不同格式的測試報告。
指令碼設計
新增一個CSV Data Set Config,把我們的文字路徑填進去
新增BeanShell PreProcessor和BeanShell PostProcessor,主要 目的是為了處理中文亂碼
新增if控制器,根據case_satus判斷該條用例是否執行,根據Ament判斷是HTTP請求還是JAVA請求,根據method,來判斷執行get還是post的請求
設定斷言,判斷我們的結果是否正確
根據用例數,設定迴圈次數
- 可使用java直接取值判斷有多少條用例進行執行
-
String filename=vars.get("JF_API_data"); String [] datalist=new String[20]; String content; InputStream openfile = new FileInputStream(filename); Workbook wb = Workbook.getWorkbook(openfile); Sheet FirstSheet = wb.getSheet(0); int totalRows=FirstSheet.getRows(); int rows=totalRows-1; //減1是因為我標題行不取,為了後面從第二行開始取 String data=rows.toString(); vars.put("row",data); //用例行數 wb.close();
執行除錯,檢視結果
接入jenkins
指令碼設計完以後,接入jenkins用ant去執行jmx就可以了,至於怎麼用可以看我上一篇文章,報告預覽: