How to setup multiple test env using cypress to test chat app? - phantomjs

Is it possible to setup multiple cypress test runner to test chat apps? If yes, how? I have found on some links there is idea to test it using CasperJS and PhantomJS, but not really sure how to setup.

I think we need some more information to answer this question:
1. Why do you want multiple test runners?
2. The title suggests there are multiple chat apps as well, is that correct?
What I can tell you from my own experience:
We have multiple web applications in place which all have their own test runner. Those are all executed via a Docker by Jenkins. But I can execute all tests locally on my laptop as wel (not at the same time).
One of the web applications has 4 different test runners which all use the same test environment. But once again, run via Jenkins in a Docker.

Related

Can I create a test server for testing team with Selenium?

I made a Selenium code by Java to test a certain web-application that our company developed.
Now, developers fix the application quite often and every time they update or fix, testers should test this new version of webapp to assert all functions working fine before application release.
Let's suppose that there are 100 testers who do not know how to run Selenium code or install Java.
I decide to create a testing server so that testers can access this server and run test. They also can see all test histories and details so far as well.
Is it possible and realistic to develop a system that runs like server and client? If yes, Can Jenkins do that? Other solutions are welcome!
Thank you in advance and happy new year!
Jenkins is one of the tools, you able to use for this, since it provides a simple way to delegate some tasks to already configured envs, nodes share them for multiple users and hide technical complexity. Also this would be aligned to your CI process, e.g. first - deploy the new code to test env, next - run test automation.
But the same also might be said for some other CI tools, so I suggest to pick some CI tool which your development already uses.
The architecture could be:
1 CI task for run tests -->
2 CI Node or docker image with java, selenium,
maven(gradle), it may be some headless Linux -->
3 Selenium cluster which able to launch multiple
selenium sessions (to cover your testers needs). It could
be some selenium cloud service, or configured
onpremise env. -->
4 Selenium grid hub (may be headless)-->
5 Selenium grid nodes... The final nodes env
should match your test requirements. It could
be Docker with linux (headless or not) or
Windows/MacOs.
Pick some tools and look for quick start guides/tutorials.
Start from simple implementation and improve it continuously.
I may say that for many cases Docker + Ubuntu + Headless Chrome is fine, lightweight and rapid.
Some references (examples the tools I've used):
Jenkins + Selenium + Maven https://www.lambdatest.com/blog/selenium-maven-jenkins-integration/
Selenoid (selenium grid implementation based on docker containers) https://github.com/aerokube/selenoid
Report Portal (just reporting tool) - something more than the default testng report provides. https://reportportal.io/
This is very shortly. The same might be done with a lot of other tools.

Should be Cypress testing framework be installed separate from the testee project?

I have a big web project with a separate backend and a front-end (webpack). I'm going to use Cypress to create end-to-end tests.
What is not clear is where I should add the Cypress tests and Cypress itself. The documentation says to add it right to the testee project and it shows how to run the tests on the production website (which URL is different from the local, dev project). This means that I'm not able to run the tests on the development project because Cypress testing IDE and the testee project can't be run simultaneously because they share the same terminal.
If so, the best solution is probably to organize one more project, only for testing purposes, and having only Cypress installed and tests themselves? Is it a good practice and if so, which project should it be?
We have the same setup at work. We include the Cypress folder in the front-end repo. I'd agree with keeping it right next to the project because you have access to that code easily i.e. accessing utility functions, selectors, etc. As far as the terminal issue, you should be able to run your project locally in one terminal tab and the cypress test runner in another.

What is the procedure to test cypress-cucumber tests to run on multiple browsers

I am new to Cypress, I have tests ready running on cypress gui, but now want to automate these tests running on multiple browsers. Can I get help running my tests in multiple browsers.
I have my tests written in feature files and step definitions
Have you checked docs? You can prepare cli commands with desired browsers and run them all. Or as separate processes.
https://docs.cypress.io/guides/guides/launching-browsers.html#Browsers

Is it possible to write automation tests for nwjs app?

I am currently working on node-webkit based desktop app. I was searching for a way to do automation testing for this . But most of the automation tools required a server to start up but in my case i have on but it runs in the chromium that comes by default. Is there a way to automate UI acceptance test for nwjs apps.
Take a look at the NW.js Wiki under How to run node webkit's test cases
You will need to setup the chrome driver in order to use selenium for example
Once you have those, check out Yaniv kessler's blog post on how to Automate NW.js UI testing using mocha.

Best Practice for running e2e tests of single page app using protractor/Selenium Remotely

I'm trying to understand what is the best practice for running remote e2e tests written in Selenium - for running different suites on different environments. the testing code is attached to git and basically we use TeamCity, but it doesn't have ti be used.
any suggestions would be great
thanks!
You can have a look at my protractor example project on GitHub. I'm not sure my examples would be considered "best practices" but it's how I currently do things :)
The examples cover:
page objects
Running on TravisCI
Running tests on Sauce Labs and Browserstack
Running multiple browsers at once