如何在tsung中使用動態參數(一)

    這兩天給公司一個新項目做上線前的壓力測試,這個項目主要的接口有兩個,獲取訂單號(getOrderId)和確認訂單(confirm),需要重點壓測。開始,我們選擇用python寫測試例,python的好處是開發迅速,但是併發能力不夠;我就想試試用tsung,tsung是用erlang寫的,併發肯定沒問題,但我以前只用來測試過靜態網站,沒有測試過動態API,查了查文檔,發現tsung是支持用erlang腳本生成動態參數的,於是我決定用tsung。

    tsung的安裝略過,看一下getorderId的配置:

  <request subst="true"> 
<dyn_variable name="order_id" jsonpath="data.order_id"/>
      <http url="/v5/order/getOrderId/" method="POST" version="1.1" contents="token=%%anysdk:get_token%%json_data=and"/> 
    </request>

說明:

   subst = "true" 表示啓用動態參數,兩個%%中間的內容即是參數所調用的erlang腳本,格式爲module:fun,module爲模塊名,fun爲函數名。

對應的erlang代碼:

-module(anysdk).
-export([get_token/1]).

get_token({Pid, DynData}) ->
		{ MegaSec, Second, MicroSec } = erlang:now(),
		TimeStamp = MegaSec * 1000000 + Second + MicroSec/1000000,
		T2 = trunc(TimeStamp),		
		StrTime = integer_to_list(T2),
		base64:encode_to_string(StrTime).

說明:

    Pid爲當前用戶的進程號,貌似沒啥用處,DynData是動態參數列表,用來從tsung傳遞參數,get_token不需要參數,所以也沒用。

<dyn_variable name="order_id" jsonpath="data.order_id"/>
這句話是用來捕獲服務端返回值的,getOrderId返回一個json串,這個指令通過jsonpath捕獲到相應的對象並存到動態變量order_id中,供後續操作使用。


發佈了72 篇原創文章 · 獲贊 7 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章