[snip]
>> +#http.getbytes.type=default
>> +#http.getbytes.type=calculate_headers_size+default
>> +#http.getbytes.type=calculate_headers_size+content-length_value
>>     
> These values are a bit complicated; I'd prefer to see true/false
> values if possible.
>   
Ok I change this to 2 properties true/false.

>
>> +    /**
>> +     * Get Content-Length value from headers
>> +     * @param headers
>> +     * @return Content-Length value
>> +     */
>> +    public static int getHeaderContentLength(String headers) {
>> +        LinkedHashMap<String, String> lhm = 
>> JMeterUtils.parseHeaders(headers);
>> +        Set<Entry<String, String>> keySet = lhm.entrySet();
>> +        for (Entry<String, String> entry : keySet) {
>> +            if (entry.getKey().equals(HEADER_CONTENT_LENGTH)) {
>> +                return Integer.parseInt(entry.getValue());
>> +            }
>> +        }
>> +        return 0; // Content-Length not found
>>     
> This does not work for chunked input. It might be better to store the
> actual response size when receiving the response, rather than trying
> to calculate it later.
>   

Ok, store in sampleresult when receiving the response. If 0 (no value),
the response data size is used.


With my last submission (r1088748), I try to respond to your feedback.
Please say me if another thing to improve.

Milamber


>
>> +     * @see org.apache.jmeter.samplers.SampleResult#getBytes()
>> +     */
>> +    @Override
>> +    public int getBytes() {
>> +        if (GETBYTES_TYPE.equals(GETBYTES_TYPE_HEAD_CONTENTLENGTH)) {
>>     
> The string comparison should be done once and turned into a static variable.
> But ideally change the properties to use separate variables for:
> - include header size in total
> - use actual length rather than decompressed length
>
>   
>
>> +    /**
>> +     * Calculate response headers size
>> +     *
>> +     * @return the size response headers (in bytes)
>> +     */
>> +    private int calculateHeadersSize() {
>> +        int headersSize = 0;
>> +        headersSize += 9 // Http proto length + 1 space (i.e.: "HTTP/1.x ")
>> +                + String.valueOf(this.getResponseCode()).length()
>> +                + this.getResponseMessage().length();
>> +        headersSize += this.getResponseHeaders().length();
>> +        return headersSize;
>> +    }
>>     
> Again, maybe this can be done when the data is initially retrieved,
> and stored in the HttpSampleResult. 
>   
>> +
>>  }
>>
>> Modified: jakarta/jmeter/trunk/xdocs/changes.xml
>> URL: 
>> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1088435&r1=1088434&r2=1088435&view=diff
>> ==============================================================================
>> --- jakarta/jmeter/trunk/xdocs/changes.xml (original)
>> +++ jakarta/jmeter/trunk/xdocs/changes.xml Sun Apr  3 23:13:09 2011
>> @@ -150,6 +150,7 @@ Fixed RMI startup to provide location of
>>  <li>Allow HTTP implementation to be selected at run-time</li>
>>  <li>Bug 50684 - Optionally disable Content-Type and Transfer-Encoding in 
>> Multipart POST</li>
>>  <li>Bug 50943 - Allowing concurrent downloads of embedded resources in html 
>> page</li>
>> +<li>Bug 50170 - Bytes reported by http sampler is after GUnZip<br></br>Add 
>> an optional property to allow change the method to get response size</li>
>>  </ul>
>>
>>  <h3>Other samplers</h3>
>>
>> Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
>> URL: 
>> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1088435&r1=1088434&r2=1088435&view=diff
>> ==============================================================================
>> --- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
>> +++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Sun Apr  3 
>> 23:13:09 2011
>> @@ -333,6 +333,16 @@ The HttpClient version of the sampler su
>>  #httpclient.socket.http.cps=0
>>  #httpclient.socket.https.cps=0
>>  </pre>
>> +<p><b>Method to calculate Response size</b><br></br>
>> +An optional property to allow change the method to get response 
>> size:<br></br>
>> +<ul><li>Default behavior: Size in bytes is the response data length 
>> (without response headers)
>> +<pre>http.getbytes.type=default</pre></li>
>> +<li>Response headers length and default (response data length)
>> +<pre>http.getbytes.type=calculate_headers_size+default</pre></li>
>> +<li>Response headers length and value of "Content-length" header (generally 
>> provide by web server)<br></br>
>> +Useful when web server uses a deflate/gzip method to compress response data
>> +<pre>http.getbytes.type=calculate_headers_size+content-length_value</pre></li></ul>
>> +</p>
>>  <links>
>>         <link href="test_plan.html#assertions">Assertion</link>
>>         <link href="build-web-test-plan.html">Building a Web Test Plan</link>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: notifications-unsubscr...@jakarta.apache.org
>> For additional commands, e-mail: notifications-h...@jakarta.apache.org
>>
>>
>>     
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org
> For additional commands, e-mail: dev-h...@jakarta.apache.org
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: dev-h...@jakarta.apache.org

Reply via email to