【新夢想幹貨分享】Jmeter技能:Json資料中如何設定變數

新夢想IT發表於2019-12-13

我有兩個介面,A介面和B介面,B介面如下:

新夢想幹貨分享



問題如何把{"tag":{"name":"123456"}}中name後面的值設定為變數,該變數是從A介面中提取出來的。

如果使用正規表示式或是json提取器,如:


新夢想幹貨分享


提取出來的值直接在B介面中使用,比如:{"tag":{"name":"${tokens}"}},最終得到的返回值將是{"tag":{"id":149,"name":"${tokens}"}}

解決方法:json格式的資料中,可以存放兩種形式的變數(目前我自己知道的),一個是函式助手中的函式,例如:


新夢想幹貨分享

新夢想幹貨分享


另外一個就是從外界讀取外部檔案,再放入json格式的資料中,例如:


新夢想幹貨分享

新夢想幹貨分享

新夢想幹貨分享

新夢想幹貨分享


剩下來的就很簡單了,既然知道如何把資料放在json格式的資料中,那麼剩下的就是如何把第一個介面中的資料提取出來放在檔案裡,下面是示例:

首先,我們新增一個前置處理器BeanShell PreProcessor或者後置處理器BeanShell PostProcess,在裡面編寫指令碼,具體程式碼如下:

FileWriter fw = new FileWriter("E:\\tokens.csv",false);

BufferedWriter bw = new BufferedWriter(fw);

bw.write(vars.get("tokens")+"\n");

bw.close();

fw.close();

大概的意思就是:現在本地E:這個路徑下新建tokens.csv檔案,false代表下一次覆蓋上一次,如果寫true的話,代表在後面追加,新建檔案之後,new一個bufferedWriter物件,vars.get表示獲取第一個介面中用正規表示式提取出來的資料tokens,然後寫入檔案,然後關閉這兩個方法,一定要寫close。

總的一個流程就是,正規表示式提取資料,處理器把提取出來的資料儲存到指定檔案中,配置原件CSV資料檔案設定講檔案中的資料作為變數放入json格式的資料中。


新夢想幹貨分享


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2668547/,如需轉載,請註明出處,否則將追究法律責任。

相關文章