Different Browser Versions in the same Zalenium instance - zalenium

We are using Kubernetes zalenium.
Is there a way we can configure multiple browser versions in the same Zalenium instance?
So that i can run my tests in different versions of browsers

Not really, we never developed that feature.

Related

Parallel automation in Selenium

I am new to Selenium.
My doubt is,
After submitting credential form during automation (login), is it possible to create multiple driver instance, and have multiple browser windows and run events parallely in different threads, by injecting sessions/cookies to increase performance. I learned its not possible to work on different tabs parallely.
My main concern is regarding the time consumption. Would it cost have multiple driver instances?
Thanks in advance.
Happy coding :)
Yes its possible.
Try to use selenium grid documentation can be found here in order to parallelization
It allows to run tests in parallel on multiple machines
I recommend to use it with docker if you are going to work on a local environment
You can found more info here Selenium docker github
Regarding your question, its better to work on different browser instances than trying to work on different tabs.
The only cost will be the infrastructure cost, you can use testing frameworks in python like pytest to parallelize your test execution against selenium grid

Polymer CLI Build | Cache Busting Techniques

A little background:
My app is built on Polymer 2.x and is being hosted on a server that does not support HTTP/2 and does not have a certificate for HTTPS. We must support IE11, Chrome, Firefox, and Safari.
Problem:
I'm running into an issue with browser caching. I was hoping to use the service worker that the Polymer CLI generates to handle the cache busting. However, since our client's server doesn't have HTTPS enabled, we are unable to utilize it. Regardless, we have to support IE 11 on a single build, so service workers aren't an option.
I cannot figure out a way to bust the cache on new deployments. On the Polymer CLI github page, there is an open issue regarding this topic, but there hasn't been any traction since 2016. From watching the YouTube videos on Polymer, it looks like there is (or used to be) a way to intercept the build using Gulp, but I can't seem to figure it out.
Any help is greatly appreciated!
You can use the polymer-build library if you want to build a Polymer project using gulp. You can read about it here:
https://github.com/Polymer/polymer-build
Briefly mentioned in the docs here:
https://www.polymer-project.org/2.0/toolbox/build-for-production#use-polymer-build
Then you can cache bust using something like gulp-rev, but you have to make sure that you're not rewriting the custom element names, just the filenames and import paths. (I tried this once with gulp-rev-all, and by default it was replacing <app-header> with <app-header-a9fe00> or something like that.)
While creating the build run polymer build sw-precache-config.js
I've created gulp-polymer-build to help with this very issue. It borrows from polymer-cli build code, and supports your build configs in polymer.json. It allows you to modify your source stream before building, and then modify the forked streams for all builds you've configured in polymer.json. This makes it easy to use gulp-rev and gulp-rev-replace to do asset versioning.

Can ElasticSearch be packaged locally with Electron?

I'm exploring building an Electron desktop app that would be powered by ElasticSearch running on the client. Is this possible, and if so, how can it be done?
Depending on interpretation, there are two possible answers to your question:
If you want to implement an elasticsearch library that enables the use of elasticsearch from within electron, try elasticsearch.js.
If you want to implement local offline search within a client, try using either lunr.js, or its weird but loveable cousin, elasticlunr.

What is the best way to setup the API application using Protractor?

I'm setting up my front-end application to use continuous integration in CircleCI. Unit tests work fine, but end-to-end tests are not.
The problem is that it requires the backend (API) server to be running, and ours is in another completely different application. So, what is the best way to setup this backend server (thinking about CI)?
I thought about uploading it on heroku, but then I'd have to keep manually updating the code via git. Another option was to download the code to the CI VM and run the server directly there, but it is just too much work (install ruby, postgres, gems...), and it doesn't seem in no way the best option.
Have anyone passed through the same situation? How do you guys usually deal with this kind of situations?
I ended up doing everything inside the CI. I made some custom scripts that configure the backend project every time the test suite is ran. Also, I cached the folder with the backend code and the gems (which was taking ~2min to install).
The configuring part now adds ~20 seconds to the total time, so it wasn't a big deal. Although I still think that this is probably not the best way to do this, it has some advantages, such as not worrying about updating the backend code (it pulls from master automatically) or its database (it runs rake db:reset after updating the code).
Assuming the API server is running somewhere, configure the front-end application to point there while in the test/CI environment, at least to start out. If there are multiple API environments, choose the one the most closely matches the front-end environment (e.g. dev, staging, etc).
It gets more complicated if/when you need to run the e2e tests each time the API is built or match up specific build versions of the front-end and the API. In that case you will have to run the API server as part of the test.

What simple tools exist for locally intercepting web requests and serving up pages?

During web development certain resources that web requests are made to may not exist locally, but will in a production setting. What tools exist that allow you to specify such resources and the results they should respond with?
I am running on Mac OSX so I'm imaging there must be some type of *nix program that implements a simple web proxy server that allows you to do this.
Depending on your development platform, it may be possible to set up a dev environment flag (I'm thinking Rails here but it's applicable to anything) and a production environment flag. Then you define like so:
if prod_environment
HOSTNAME = get("169.254.169.254/latest/meta-data/public-hostname")
else
HOSTNAME=something_fake

Resources