Unanswered question

How to resolve WAN Emulation "Not installed" issue when it is not supported by LG "localhost:7100:?

I am trying to integrate selenium automation script (JAR file) with Neoload project scenario. While I was running the scenario , I see a warning message like "Advanced WAN Emulation (latency, packet loss) not supported by Load Generator "localhost:7100" " and also I see a default zone as localhost:7100 under "Load Generator Zones" which is having a "crossed mobile" icon on it. Because of this, I am getting an "Illegal Argument Exception" . Here below is the error console: Can someone advise me on this to make my scenario running fine. Thanks in Advance . Bob

2019/09/27 15:33:16 INFO - neoload.LG_INFO: Starting LoadGenerator Version 6.9.0 ;build=20190307-5
2019/09/27 15:33:16 INFO - neoload.LG_INFO: OS Version: amd64 - Windows 10 - 10.0
2019/09/27 15:33:16 INFO - neoload.LG_INFO: JVM Version: Oracle Corporation - 1.8.0_112 - Java HotSpot(TM) 64-Bit Server VM - Xmx= 3782737920 bytes
2019/09/27 15:33:16 INFO - neoload.LG_INFO: Sockets Tuning information: MaxUserPort registry key not found;TcpTimedWaitDelay registry key not found;
2019/09/27 15:33:16 INFO - neoload.LG_INFO: ALPN boot status: present
2019/09/27 15:33:16 INFO - neoload.LG: Registered to Agent. Port 55526
2019/09/27 15:33:16 INFO - neoload.LG: Launching inbound connection listener on port:51138
2019/09/27 15:33:16 INFO - neoload.LG: Connection established with the Controller localhost:7100:51138
2019/09/27 15:33:17 INFO - neoload.LG_INFO: WAN Emulation: disabled
2019/09/27 15:33:17 INFO - neoload.LG: Connection established with the Controller localhost:7100:51138
2019/09/27 15:33:17 INFO - neoload.LG_INFO: Jetty ThreadPool configuration: MinThread=20; MaxThread=20000; IdleTimeoutMs=10000; QueueSize=6000
2019/09/27 15:33:17 ERROR - neoload.LG: PAC script error com.neotys.proxy.c: PAC script compilation failed
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.neotys.nl.proxy.a.compile(a.java:46)
at com.neotys.proxy.js.b.a(b.java:112)
at com.neotys.proxy.js.b.a(b.java:534)
at com.neotys.nl.lg.m.a(m.java:938)
at com.neotys.nl.lg.m.handleRequest(m.java:268)
at com.neotys.nl.common.net.AbstractConnection.handleRequest(AbstractConnection.java:86)
at com.neotys.nl.common.net.BidirectionalConnection$RequestHandlerThread.run(BidirectionalConnection.java:233)
Caused by: java.lang.IllegalArgumentException: protocol = http host = null
at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:176)
at sun.net.http://www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1132)
at sun.net.http://www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.http://www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.URL.openStream(URL.java:1045)
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:152)
... 11 more

2019/09/27 15:33:19 DEBUG - neoload.CustomAction: Java Test Script action execute:cmd /c jre\bin\java -jar C:\Users\yesuvara.kollipara\neo_selenium_integration-0.0.1-SNAPSHOT.jar
2019/09/27 15:33:19 DEBUG - neoload.CustomAction: Java Test Script action execution finished with status code:0

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

Answers

Not having wan emulation is not an issue unless you wanted to emulate line speed. Not having it won’t cause any issues. This error is something else. How are you calling your selenium test?

The logs shows a problem linked to the interpretation of the Proxy PAC file to find which Proxy to use for which Server.
Did you linked explicitely to a PAC file or did you use the automatic detection?

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

Hello, I have imported Selenium JAR file in "UserPaths --> Actions--> java_test_script(arg2) " and under "Proxy" I created "My App Proxy" for Application Proxy (see the screenshot) and the Neotys Team Server is configured like this (see the screenshot).

Can you Please advise on this now.

Thanks

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Christopher M

Hello, I am not sure what you asking exactly about PAC file but I set the type as "Automatic Configuration Script" under the new application proxy that I've created(please see screenshot) under "Proxy" I set "My App Proxy" for Application Proxy (see the screenshot) and the Neotys Team Server is configured like this (see the screenshot).

Can you Please advise on this now.

2 things here, when recording http traffic, Neoload acts as a proxy, so the browser is reconfigured to route traffic to Neoload, Neoload then has to route the traffic to it's intended destination. If your company uses a http proxy to get to websites, Neoload need to know this proxy. The error looks like Neoload cannot forward the traffic on because it doesn't know about the PAC script

Second, this is what a call to selenium looks like in my project, I created a runnable jar in my selenium IDE and pointed Neoload to it. Have you imported Neoload libraries into you selenium IDE script? so selenium can write to our API

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W and @ Christophe M.

Can you Please guide me on how to change the proxy settings for Chrome browser? Since I used chrome driver in my Selenium IDE and also NEOLOAD browser settings. Also, where does we get the localhost:7100 into picture? I see that under my LOAD GENETARORS tab in "Runtime" panel. (Screenshot Attached)

I've given the URL that am trying to access under the automatic config script proxy along with username and password while doing the Performance Testing which is what my Selenium JAR actually doing in Eclipse before. (screenshot attached)

I have pointed my Selenium JAR file that I got from my Eclipse IDE where I've configured NeoLoad libraries in its POM.XML (since mine is a Maven Project). And in NeoLoad under "Actions" I have pointed that Selenium JAR file with arg 1 and arg 2. (screenshot attached) . Can you please tell me what is arg 3 and arg4 that you configured in your screenshot.

Please advise and thanks much.

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Christophe M

This is my error log console after giving the URL proxy, it says " Can't access to proxy auto config URL"

2019/09/30 11:27:30 INFO - neoload.LG_INFO: Starting LoadGenerator Version 6.9.0 ;build=20190307-5
2019/09/30 11:27:30 INFO - neoload.LG_INFO: OS Version: amd64 - Windows 10 - 10.0
2019/09/30 11:27:30 INFO - neoload.LG_INFO: JVM Version: Oracle Corporation - 1.8.0_112 - Java HotSpot(TM) 64-Bit Server VM - Xmx= 3782737920 bytes
2019/09/30 11:27:30 INFO - neoload.LG_INFO: Sockets Tuning information: MaxUserPort registry key not found;TcpTimedWaitDelay registry key not found;
2019/09/30 11:27:30 INFO - neoload.LG_INFO: ALPN boot status: present
2019/09/30 11:27:30 INFO - neoload.LG: Registered to Agent. Port 60815
2019/09/30 11:27:30 INFO - neoload.LG: Launching inbound connection listener on port:61802
2019/09/30 11:27:30 INFO - neoload.LG: Connection established with the Controller localhost:7100:61802
2019/09/30 11:27:30 INFO - neoload.LG_INFO: WAN Emulation: disabled
2019/09/30 11:27:31 INFO - neoload.LG: Connection established with the Controller localhost:7100:61802
2019/09/30 11:27:31 INFO - neoload.LG_INFO: Jetty ThreadPool configuration: MinThread=20; MaxThread=20000; IdleTimeoutMs=10000; QueueSize=6000
2019/09/30 11:27:31 ERROR - neoload.LG: PAC script error com.neotys.proxy.c: Can't access to proxy auto config URL
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.neotys.nl.proxy.a.compile(a.java:46)
at com.neotys.proxy.js.b.a(b.java:112)
at com.neotys.proxy.js.b.a(b.java:534)
at com.neotys.nl.lg.m.a(m.java:938)
at com.neotys.nl.lg.m.handleRequest(m.java:268)
at com.neotys.nl.common.net.AbstractConnection.handleRequest(AbstractConnection.java:86)
at com.neotys.nl.common.net.BidirectionalConnection$RequestHandlerThread.run(BidirectionalConnection.java:233)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:203)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1590)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:220)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.http://www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.http://www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at sun.net.http://www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at java.net.URL.openStream(URL.java:1045)
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:152)
... 11 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1572)
... 25 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 31 more

Hi,
1. this line is confusing me "I've given the URL that am trying to access under the automatic config script proxy along with username and password". The PAC script is not the URL you are trying to test, the PAC scripts is used by a web browser to access the internet. It is nothing to to with Neoload. If your browser uses a PAC script or a proxy to access web pages, Neoload will need to know these details so that Neoload can access web pages. ie. browser >>> neoload >>> website. This is for recording only. The error suggests you have wrong settings here.
2. Chrome uses windows internet settings, if these are misconfigured, your selenium script wont reach its target website
3. Arg3 and Arg4 are for our API, when the selenium test runs, you can pass in the EndUserExperience mode flag, if your selenium test includes our library, selenium can write timing information back to Neoload, Arg4 is the URL of the Neolad GUI rest api

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

1) Do you mean that PAC script is my Selenium Automated Script? If so, yes the script should access the web pages from an URL which I have set in the proxy settings (as per the screenshot).

2) I now changed my browser here to IE and made the changes in it as per your previous screenshot.

3) Do I need to configure the same proxy settings with the URL which I'm trying to access my web pages under " Load generator zones" like how I did under "Proxy" (as per the screenshot) ?

I'm not sure why I'm getting the localhost errors as the run time when I running this recorded scenario.

Please advise.

1. No, PAC has nothing to do with any test tools, it's the network configuration of your web browser, you will find a full explanation on google.
2. My screenshots are illustrative only
3. No, you are using the localhost load generator, there is no proxy between you machine and itself.
I would suggest contacting you local account team and asking for a demo of this functionality. I'm not sure if there is a video in the academy but this might also be a useful resource
https://academy.neotys.com/
https://www.neotys.com/documents/doc/neoload/latest/en/ht...

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

I am able to resolve the previous errors and now I'm getting an error related to "PAC script compilation failed" > Attached is the screenshot. Can you Please advise me on this.

Thanks

2019/10/01 17:42:53 INFO - neoload.LG_INFO: Starting LoadGenerator Version 6.9.0 ;build=20190307-5
2019/10/01 17:42:53 INFO - neoload.LG_INFO: OS Version: amd64 - Windows 10 - 10.0
2019/10/01 17:42:53 INFO - neoload.LG_INFO: JVM Version: Oracle Corporation - 1.8.0_112 - Java HotSpot(TM) 64-Bit Server VM - Xmx= 3782737920 bytes
2019/10/01 17:42:53 INFO - neoload.LG_INFO: Sockets Tuning information: MaxUserPort registry key not found;TcpTimedWaitDelay registry key not found;
2019/10/01 17:42:53 INFO - neoload.LG_INFO: ALPN boot status: present
2019/10/01 17:42:54 INFO - neoload.LG: Registered to Agent. Port 62003
2019/10/01 17:42:54 INFO - neoload.LG: Launching inbound connection listener on port:55811
2019/10/01 17:42:54 INFO - neoload.LG: Connection established with the Controller localhost:7100:55811
2019/10/01 17:42:54 INFO - neoload.LG_INFO: WAN Emulation: disabled
2019/10/01 17:42:54 INFO - neoload.LG: Connection established with the Controller localhost:7100:55811
2019/10/01 17:42:54 INFO - neoload.LG_INFO: Jetty ThreadPool configuration: MinThread=20; MaxThread=20000; IdleTimeoutMs=10000; QueueSize=6000
2019/10/01 17:42:55 ERROR - neoload.LG: PAC script error com.neotys.proxy.c: PAC script compilation failed
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.neotys.nl.proxy.a.compile(a.java:46)
at com.neotys.proxy.js.b.a(b.java:112)
at com.neotys.proxy.js.b.a(b.java:534)
at com.neotys.nl.lg.m.a(m.java:938)
at com.neotys.nl.lg.m.handleRequest(m.java:268)
at com.neotys.nl.common.net.AbstractConnection.handleRequest(AbstractConnection.java:86)
at com.neotys.nl.common.net.BidirectionalConnection$RequestHandlerThread.run(BidirectionalConnection.java:233)
Caused by: org.mozilla.javascript.EvaluatorException: syntax error (PAC file#35)
at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109)
at org.mozilla.javascript.DefaultErrorReporter.error(DefaultErrorReporter.java:96)
at org.mozilla.javascript.Parser.addError(Parser.java:230)
at org.mozilla.javascript.Parser.addError(Parser.java:208)
at org.mozilla.javascript.Parser.reportError(Parser.java:265)
at org.mozilla.javascript.Parser.reportError(Parser.java:259)
at org.mozilla.javascript.Parser.mustMatchToken(Parser.java:416)
at org.mozilla.javascript.Parser.mustMatchToken(Parser.java:406)
at org.mozilla.javascript.Parser.xmlInitializer(Parser.java:2405)
at org.mozilla.javascript.Parser.unaryExpr(Parser.java:2363)
at org.mozilla.javascript.Parser.mulExpr(Parser.java:2291)
at org.mozilla.javascript.Parser.addExpr(Parser.java:2273)
at org.mozilla.javascript.Parser.shiftExpr(Parser.java:2252)
at org.mozilla.javascript.Parser.relExpr(Parser.java:2225)
at org.mozilla.javascript.Parser.eqExpr(Parser.java:2195)
at org.mozilla.javascript.Parser.bitAndExpr(Parser.java:2182)
at org.mozilla.javascript.Parser.bitXorExpr(Parser.java:2169)
at org.mozilla.javascript.Parser.bitOrExpr(Parser.java:2156)
at org.mozilla.javascript.Parser.andExpr(Parser.java:2143)
at org.mozilla.javascript.Parser.orExpr(Parser.java:2130)
at org.mozilla.javascript.Parser.condExpr(Parser.java:2106)
at org.mozilla.javascript.Parser.assignExpr(Parser.java:2075)
at org.mozilla.javascript.Parser.expr(Parser.java:2052)
at org.mozilla.javascript.Parser.statementHelper(Parser.java:1081)
at org.mozilla.javascript.Parser.statement(Parser.java:943)
at org.mozilla.javascript.Parser.parse(Parser.java:568)
at org.mozilla.javascript.Parser.parse(Parser.java:506)
at org.mozilla.javascript.Context.compileImpl(Context.java:2401)
at org.mozilla.javascript.Context.compileString(Context.java:1367)
at org.mozilla.javascript.Context.compileString(Context.java:1356)
at com.neotys.proxy.js.rhino.ProxyAPI.compile(ProxyAPI.java:164)
... 11 more

You must not change the PAC file!

Either you need one, and then you enter its URL in the proxy settings or you may specify which Proxy to use with the manual settings, but don't let the option 'Use configuration script' selected and empty.

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Christophe M

I did the changes as you said and here is the screenshot. But still its getting the same error : " ERROR - neoload.LG: PAC script error com.neotys.proxy.c: PAC script compilation failed"

Please advise me.

Thanks

In Neoload, under the Edit > Preferences screen, select proxy from the left hand side, have you duplicated the same settings you see in your internet options (as per my screenshot with the red arrows), this will allow Neoload to access the internet via your auto-configuration script like your web browser does. If you've left these settings blank but checked, that could explain the error.

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

1) Yes, I followed all your steps and I see the same settings both in "proxy" tab of NeoLoad and also in "Internet Options". (Attached are the screenshots, Please check).

2) Also, is the Cache Policy for proxy info for each URL is set to "Global Cache" , is this the proper way ?

3) Can you check and advise the LG settings that I did here in the screenshot. I'm referring "no proxy" both in "app proxy" and "LG proxy" . Not sure if this is right thing. (screenshot attached). But now the runtime error is not the PAC related, it is something like no page found.

Please kindly advise.

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

Yes, the username and password are correct to access that proxy URL.

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

While Integrating my selenium JAR with NeoLoad, since mine being a Maven Project, do I still need to export RUNNABLE JAR from IDE or a normal JAR after doing Maven build ?

I'm thinking JAR might be an issue for my page not found error since it is a not a runnable JAR that I'm using now.

Please confirm.

Thanks

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

When I use the runnable JAR it is giving me an error " No main Manifest attribute in my JAR file. I rolled back to my previous maven build JAR only.. :(

But to my surprise, why my test results showing as "PASSED" though the no.of requests are '0" and having some runtime errors?
Attached is the screenshot showing this issue.

Thanks

A runnable JAR will have a manifest, you can run it ourside of Neoload, it's just a JAR file. The requests are 0 because you didn't run a Neoload script, there were no requests made, Selenium just clicks buttons on the browser

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

In my selenium step definition script I've used something like this before " WebDriver driver = driverType.serveBrowser(GetPropertiesUtil.getInstance().getDriverPath()); "

But for Integration with NeoLoad, I now replaced it as : " NLWebDriver driver = driverType.serveBrowser(WebDriverProxy.newInstance(new ChromeDriver())); "

And this change is giving me an error while running the selenium script on my eclipse IDE as follows:

java.lang.ClassCastException: com.neotys.selenium.proxies.NLRemoteWebDriver_$$_javassist_0 incompatible with java.lang.String "

Not sure where the compatibility went wrong, though my web drivers are all well defined.

Can you advise?

And is the replacement mandatory with NLWebDriver instead of WebDriver which I used before?

Thanks

If you want Selenium to be able to write anything back to Neoload via its APIs, then you need to use NLWebDriver. I'm not familiar with driverType. I've always used driver = NLWebDriverFactory.newNLWebDriver(webDriver, "SeleniumUserPath", projectPath);

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil W

Your syntax worked well for webdriver but that doesn't clear my errors anyway. I'm still not sure why the requests are not made on to the web browser while running my selenium JAR in NeoLoad.

Either my runnable or maven build JAR doesn't contain the required Neotsys/selenium related dependency JARS in it... If that is the case, how can my integration works well ?

This is really never ending :(

Please advise.

Yes, community support isn't suitable for all issues, are you a Neoload customer with a valid support contract or are you evaluating the tool? if so I would suggest contacting your local account team. Where are you based?

Prasad K.
Prasad K.

Prasad K.

Level
1
168 / 750
points

@Neil and @christophe M.

When I'm integrating with selenium JAR, I have set the users as 10 and every time when the JAR is executed, the browser windows are getting opened 10 times to get it tested. Is it like how the NeoLoad is designed ?

What if we have 1000 users accessing the app and testing the load test, the browser opens for 1000 times while we test it?

I'm wondering this might even makes my system crash. Please let me know if there are any changes to be made to suppress the browser invoking while number of users are trying this access the JAR file at the time of integration.

Thanks

Neoload is a protocol based testing tool, it will be sending http/s type requests to a server. It's ability to kick off a functional test does not replace the protocol approach. A typical test would be 995 protocol users and 3-4 functional users. Running 1000vu where each vu is starting a browser would kill most machines, just like starting 1000 notepads or 1000 winwords. The majority of your users should be protocol users.