saucelabs / speedo

Simple performance testing tool using SauceLabs
https://saucelabs.com/products/sauce-performance
Apache License 2.0
19 stars 8 forks source link

How can I analyze performance results with Speedo with sauce connect tunnel? #50

Closed jmpresso closed 5 years ago

jmpresso commented 5 years ago

I want to integrate this into our build pipeline. Our environment is within a proxy. We use SauceConnect to connect to SauceLabs to run our tests. My understanding is I would need to update our SL config to set extendedDebugging and capturePerformance, and then use speedo to analyze the results of the test. My normal test will run successfully, but when I try to analyze with Speedo, it's failing since it's behind a proxy server.

Error: getaddrinfo ENOTFOUND us-west-1.saucelabs.com

Is it possible for this to work?

christian-bromann commented 5 years ago

Is it possible for this to work?

Yes, can you provide your stdout? Where does the error happen exactly?

jmpresso commented 5 years ago

Hm, I'm trying to recall how I had it set up before. I thought I was getting an error somewhere else as well, but here is a simple one using the CLI.

set SAUCE_USERNAME=<user>
set SAUCE_ACCESS_KEY=<key>
speedo run <mywebsite>

× Couldn't fetch job: Error: getaddrinfo ENOTFOUND saucelabs.com saucelabs.com:443 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)

christian-bromann commented 5 years ago

@jmpresso are you behind a firewall or anything? Also can you provide the whole stacktrace please?

jmpresso commented 5 years ago

Yes, I am behind a firewall / proxy. It's trying to make this request directly to SauceLabs, and it doesn't know about my proxy, so it fails. My question was if there was a way to get around it needing to go through my proxy, and have the request communicate to saucelabs through sauceconnect instead.

That's using the speedo CLI. That's all of the error I get.

christian-bromann commented 5 years ago

@jmpresso did you try to use Sauce Connect? After you start a tunnel you can route your tests through it:

$ speedo run http://localhost:8080 --tunnelIdentifier myTunnel
jmpresso commented 5 years ago

Yeah, still seems to try to directly hit the internet and not go thru the proxy. When we use SauceLabs for our Karma tests, we don't have that problem. We configure it like this:

var webdriveConfig = { hostname: 'xx.myserver.com', port: 1111, user: 'xxuser', pwd: 'pwd' }; var customLaunchers = { WIN10_EDGE_14: { version: '14', browserName: 'MicrosoftEdge', platform: 'Windows 10', base: 'WebDriver', config: webdriverConfig, pseudoActivityInterval: 60000, parentTunnel: 'xxRoot', name: 'xxname' } };

christian-bromann commented 5 years ago

@jmpresso for all API calls speedo uses the saucelabs NPM package which uses request for it. Therefor you can use HTTP_PROXY or HTTPS_PROXY as described in here to route these request over the proxy. Let me know if this works out for you.