2016-06-10 87 views

回答

0

我用下面的代碼在我的http請求中添加了一個Beanshell PostProcessor。

import org.apache.jmeter.config.Argument; 
import org.apache.jmeter.config.Arguments; 

Arguments argz = ctx.getCurrentSampler().getArguments(); 
for (int i = 0; i < argz.getArgumentCount(); i++) { 
    Argument arg = argz.getArgument(i); 
    String a = arg.getValue(); 
    vars.put("EMAIL",a); 
}  

說明:我得到我的請求作爲JSON並將其放入EMAIL中。現在我可以在我的其他請求中使用EMAIL作爲變量。

然後,我添加了一個jp @ gc Json路徑提取器,並將其應用於Jmeter Varaible。 現在,電子郵件將被用作變量,其中包含我的json請求,我可以使用jsonPath提取器進行提取。

+0

https://kishorsharma69.wordpress.com/2016/10/03/absolute-directory-path-for-jmx-file-jmeter/瞭解更多詳情。 –

1

不知道你爲什麼需要它給你送「東西」,你應該已經有一個「東西」,因此您無需將其解壓,但是在這裏你去:

爲了節省1參數值(如果使用「Body Data」模式,則爲整個發佈數據):

  1. Beanshell PostProcessor添加爲HTTP請求的子項。
  2. 將下面的代碼到後處理的「腳本」區域:

    String request = ctx.getCurrentSampler().getArguments().getArgument(0).getValue(); 
    vars.put("request", request); 
    

你將能夠在需要訪問提取的值作爲${request}

澄清:

有關使用JMeter的和Java How to Use BeanShell: JMeter's Favorite Built-in Component指南瞭解更多信息來自JMeter測試中Beanshell測試元素的API。

0

一個簡單的方法是使用JSON路徑提取器。

只是有 對於例如你給 { "data" : { "name" : "john_doe", } }

「變量名:YourNewVar」 「JSON路徑:$ .data.name」 應該工作,但是你可能需要做一些試驗。

您可能需要添加一個「調試採樣器」(它的一個標準採樣器)並放入它的標題$ YourNewVar中,以便看到正在提取的內容。

Beanshell和「Regular Expression Extractor」當然會起作用,但如果您不熟悉它們,可能會稍微難一些。