jmeter 單介面測試方案(介面無業務關聯)

YatHo發表於2016-11-14

前言

前面開了一篇講了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

配置基本完成,之後就是專案的目錄架構:

  1. ./Test_Play/目錄用來放Jmeter生成的Case檔案(編寫時注意,不要用絕對路徑,否則後續維護成本會提高)
  2. ./Test_suit/目錄用來放Jmeter測試需要的相關配置檔案
  3. ./資源/目錄用來存放專案相關的一些文件資訊
  4. build.xml檔案,Ant的配置檔案
  5. 閱讀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就可以了,至於怎麼用可以看我上一篇文章,報告預覽:

 

相關文章