Ich habe einen Testplan mit der Mischung aus normalen HTTP-Sampler und JSR223-Sampler. JSR223 Ich benutze, um Anfragen über Protobuf-Protokoll und HTTP-Sampler für einfache GET/POST-Anfragen auszuführen.Holen HTTPClient von HTTPSampler, um es in Beanshell zu verwenden
Während eines Tests über das SSL-Protokoll haben wir eine große Last auf dem Nginx entdeckt, die eine große Menge an SSL-Handshakes von JSR223-Samplern verursacht. Das Problem war, dass ich ein neues Httpclient in jeder Anforderung erstellt:
CloseableHttpClient client = HttpClients.createDefault();
ich es fest mit nur Schaffung einer Instanz dieser Client auf Anfangsstadium und reusage davon in jedem JSR223-Sampler:
CloseableHttpClient client = vars.getObject("client");
So, jetzt haben wir die Situation, wenn jeder Thread zwei HTTPClients verwendet (eine verwendet von HTTPSampler, eine von JSR223). Und die Frage ist, gibt es eine Möglichkeit, den HTTPClient aus dem HTTPSampler, um es weiter in JSR223 zu verwenden, um doppelte Handshakes und so weiter zu vermeiden.
Sieht so aus, als ob HTTPSampler savedClient während eines Tests untereinander austauschen.