Thanks for last PR update. We'll merge it once 5.0 is released; But before, could you describe the use case met that made you see this issue ? Is the a possibility to provide a JMX Test plan that could be used as integration test ? and if possible a JUnit test ?
Thanks On Sat, Sep 1, 2018 at 4:02 PM Philippe Mouawad <philippe.moua...@gmail.com> wrote: > Hello, > Thanks for latest updates of PR. > 1/ I would not use Object but AuthState instead. > > 2/ Shouldn't we use HTTPCLIENTS_CACHE_PER_THREAD_AND_HTTPCLIENTKEY and > store AuthState there (transforming Pair to Triple)? > > This would be the case for a Thread representing a Virtual User. > But it would not be correct if a thread is not a Virtual User > > > Regards > > On Wed, Aug 29, 2018 at 11:14 AM Artem Fedorov < > artem.fedo...@blazemeter.com> wrote: > >> Fixed. >> >> Regarding (HttpClientContext.PROXY_AUTH_STATE + this) I also have doubts: >> >> - minimal number of authstate, that we should store = Number of Requests >> in >> Test Plan. (each request can use own proxy). Does the AuthState is Thread >> Safe and we can share it between threads? I think no and it'll better to >> store Number of Requests in Plan * Number of Threads AuthStates. >> >> - Also in case if we use dynamic proxy we can not reuse saved AuthState: >> >> > if (!isDynamicProxy(getProxyHost(), getProxyPortInt())) { >> > localContext.setAttribute(HttpClientContext.PROXY_AUTH_STATE, proxy); >> > } >> >> Artem >> >> On Tue, Aug 28, 2018 at 11:46 PM, Philippe Mouawad < >> philippe.moua...@gmail.com> wrote: >> >> > Thank you Artem, >> > >> > I made a little comment on PR. >> > >> > Just to be sure I understand the PR: >> > >> > - You set HttpClientContext.PROXY_AUTH_STATE so that it is used if >> > updated >> > >> > But is it correct to store it as: >> > >> > - "http.auth.proxy-scope" + this >> > >> > Because we'll end per Thread with : >> > >> > - Number of Requests in Plan * Number of Threads AuthStates >> > >> > Regards >> > >> > >> > On Mon, Aug 27, 2018 at 3:43 PM Artem Fedorov < >> > artem.fedo...@blazemeter.com> >> > wrote: >> > >> > > Hi Philippe >> > > >> > > https://github.com/apache/jmeter/pull/397 >> > > >> > > Let's discuss the details in the PR >> > > >> > > Thanks, >> > > Artem >> > > >> > > On Sun, Aug 26, 2018 at 12:04 AM, Philippe Mouawad < >> > > philippe.moua...@gmail.com> wrote: >> > > >> > > > Hello Artem, >> > > > Go ahead and propose a patch or PR. >> > > > It will be a clearer base to discuss. >> > > > >> > > > Thank you >> > > > >> > > > On Wed, Aug 22, 2018 at 10:56 AM Artem Fedorov < >> > > > artem.fedo...@blazemeter.com> >> > > > wrote: >> > > > >> > > > > I work with the latest JMeter version from github >> > > > > (revision f27c31590cf07bc8427663b62fc22d6d650b95af) >> > > > > >> > > > > I create a Thread Group with 1 loop and 1 user. This Thread Group >> > > > contains >> > > > > View Results Tree (Listener) and HTTP Resuest (Sampler) >> > > > > >> > > > > Configuration of HTTP Sampler: >> > > > > >> > > > > <HTTPSamplerProxy guiclass="HttpTestSampleGui" >> > > > > > testclass="HTTPSamplerProxy" testname="HTTP Request" >> > enabled="true"> >> > > > > > <elementProp name="HTTPsampler.Arguments" >> > > > > > elementType="Arguments" guiclass="HTTPArgumentsPanel" >> > > > > testclass="Arguments" >> > > > > > testname="User Defined Variables" enabled="true"> >> > > > > > <collectionProp name="Arguments.arguments"/> >> > > > > > </elementProp> >> > > > > > <stringProp name="HTTPSampler.domain"></stringProp> >> > > > > > <stringProp name="HTTPSampler.port"></stringProp> >> > > > > > <stringProp name="HTTPSampler.protocol"></stringProp> >> > > > > > <stringProp >> > > name="HTTPSampler.contentEncoding"></stringProp> >> > > > > > <stringProp name="HTTPSampler.path"> >> http://blazedemo.com >> > > > > > </stringProp> >> > > > > > <stringProp name="HTTPSampler.method">GET</stringProp> >> > > > > > <boolProp name="HTTPSampler.follow_ >> > > > redirects">true</boolProp> >> > > > > > <boolProp >> > > name="HTTPSampler.auto_redirects">false</boolProp> >> > > > > > <boolProp name="HTTPSampler.use_ >> > keepalive">true</boolProp> >> > > > > > <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</ >> > > > boolProp> >> > > > > > <stringProp >> > > name="HTTPSampler.embedded_url_re"></stringProp> >> > > > > > <stringProp name="HTTPSampler.proxyHost"> >> > > > localhost</stringProp> >> > > > > > <stringProp name="HTTPSampler.proxyPort"> >> > 3321</stringProp> >> > > > > > <stringProp name="HTTPSampler.proxyUser"> >> > artem</stringProp> >> > > > > > <stringProp name="HTTPSampler.proxyPass"> >> > artem</stringProp> >> > > > > > <stringProp >> > > name="HTTPSampler.connect_timeout"></stringProp> >> > > > > > <stringProp name="HTTPSampler.response_ >> > > > timeout"></stringProp> >> > > > > > </HTTPSamplerProxy> >> > > > > >> > > > > >> > > > > When I run this Test Plan I see 1 sample in the View Results Tree, >> > but >> > > in >> > > > > the access.log of squid I see 2 request from JMeter. >> > > > > >> > > > > 1534844834.248 0 127.0.0.1 TCP_DENIED/407 4056 GET >> > > > > > http://blazedemo.com/ - HIER_NONE/- text/html >> > > > > > 1534844834.320 52 127.0.0.1 TCP_MISS/200 8077 GET >> > > > > > http://blazedemo.com/ artem HIER_DIRECT/54.93.131.97 text/html >> > > > > >> > > > > >> > > > > So, in real test each Sampler will send 2 requests: >> > > > > - 1st without authentication data (and will receive 407 http >> response >> > > > code) >> > > > > - TCP_DENIED/407 >> > > > > - 2nd with authentication data(username/password/type) - will be a >> > > > success >> > > > > - TCP_MISS/200 >> > > > > >> > > > > JMeter (httpclient) send 1st request for detect authentication >> type >> > > > > (Basic/Digest/NTLM/SPNEGO/Kerberos) which use proxy server. >> > > > > If we will have 2 loops the JMeter will send 4 requests, 3 loops >> = 6 >> > > > > requests etc. I would like to reduce number of request to the >> proxy >> > > > server >> > > > > and make request for detect authentication type once at the start >> of >> > > the >> > > > > loop >> > > > > >> > > > > Artem >> > > > > >> > > > > On Wed, Aug 22, 2018 at 12:26 AM, Philippe Mouawad < >> > > > > p.moua...@ubik-ingenierie.com> wrote: >> > > > > >> > > > > > Hello Artem, >> > > > > > I am not sure to understand. >> > > > > > >> > > > > > Can you clarify with an example or reformulating what you mean >> by >> > > HTTP >> > > > > > Request that use proxy with authentication. >> > > > > > >> > > > > > and also clarify what’s after that, it’s really not clear for >> me. >> > > > > > >> > > > > > Thank you >> > > > > > >> > > > > > On Tuesday, August 21, 2018, Artem Fedorov < >> > > > artem.fedo...@blazemeter.com >> > > > > > >> > > > > > wrote: >> > > > > > >> > > > > > > HI All >> > > > > > > >> > > > > > > I configure HTTP Request that use proxy with authentication >> > > > > > > >> > > > > > > In proxy log I can see, that JMeter *always send 2 >> requests*: (I >> > > > used >> > > > > > > `squid` in tests) >> > > > > > > >> > > > > > > 1534844834.248 0 127.0.0.1 TCP_DENIED/407 4056 GET >> > > > > > > > http://blazedemo.com/ - HIER_NONE/- text/html >> > > > > > > > 1534844834.320 52 127.0.0.1 TCP_MISS/200 8077 GET >> > > > > > > > http://blazedemo.com/ artem HIER_DIRECT/54.93.131.97 >> text/html >> > > > > > > >> > > > > > > >> > > > > > > The first request JMeter send without authentication options, >> > > because >> > > > > > this >> > > > > > > options are create after server got a response with 401/407 >> code. >> > > > > > > >> > > > > > > In performance test I'll see the following log: (50 % of all >> > > requests >> > > > > are >> > > > > > > send without authentication options) - IMO this is incorrect >> load >> > > of >> > > > > > proxy >> > > > > > > server or we lose a lot of time for create authentication >> scheme >> > > for >> > > > > each >> > > > > > > request >> > > > > > > >> > > > > > > - TCP_DENIED/407 (without proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > - TCP_DENIED/407 (without proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > - TCP_DENIED/407 (without proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > .... >> > > > > > > >> > > > > > > The first request (the response for this request) use by >> > httpclient >> > > > for >> > > > > > > detect Standard authentication type >> > > > > (Basic/Digest/NTLM/SPNEGO/Kerberos). >> > > > > > I >> > > > > > > think If we have not dynamic proxy we can *reuse* knowledges >> > about >> > > > > > > authentication type in the second and subsequent requests. >> > > > > > > After such changes we will see the following log: >> > > > > > > >> > > > > > > - TCP_DENIED/407 (without proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > - TCP_MISS/200 (with proxy authentication) >> > > > > > > .... >> > > > > > > >> > > > > > > What do you think about such changes? If all is OK I can >> > contribute >> > > > the >> > > > > > fix >> > > > > > > >> > > > > > > >> > > > > > > Thanks, >> > > > > > > Artem >> > > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > Cordialement. >> > > > > > Philippe Mouawad. >> > > > > > Ubik-Ingénierie >> > > > > > >> > > > > > UBIK LOAD PACK Web Site <http://www.ubikloadpack.com/> >> > > > > > >> > > > > > UBIK LOAD PACK on TWITTER <https://twitter.com/ubikloadpack> >> > > > > > >> > > > > >> > > > >> > > > >> > > > -- >> > > > Cordialement. >> > > > Philippe Mouawad. >> > > > >> > > >> > >> > >> > -- >> > Cordialement. >> > Philippe Mouawad. >> > >> > > > -- > Cordialement. > Philippe Mouawad. > > > -- Cordialement. Philippe Mouawad.