I would suggest to consider Selenium with desired binding, likely Python and running test in cloud services like SauceLab or BrowsersStack. It should be easy integrate with Jenkins etc. I am not current on PhantomJS-like and headless browser combination but previous experience was that this was very unstable . On Wed, May 16, 2018 at 7:42 AM, Alfredo Deza <adeza@xxxxxxxxxx> wrote: > On Tue, May 15, 2018 at 10:32 AM, Laura Paduano <lpaduano@xxxxxxxx> wrote: >> Hi, >> >> right, we would need either Google-Chrome (I'd prefer this one) or Chromium >> and would then run our tests in headless mode (AFAIK this can be configured >> within the >> test config files or as parameter when executing the tests). >> >> I think the easiest way would be to install Google-Chrome (or Chromium) on >> the node which executes the frontend unit tests already. > > If you would like to use Jenkins for this, then the right place would > be the ceph/ceph-build.git repo. Almost all the directories there are > Jenkins jobs, that configure requirements (like Chromium in this > case). > > The repo has examples in the documentation, and most jobs can be used > as a good reference. > > For ceph-volume for example, we don't need to run tests on every pull > request, so we request the tests ad-hoc, which might be desirable here > as well. > > That configuration, along with the "trigger phrase" is: > https://github.com/ceph/ceph-build/blob/master/ceph-volume-pr/config/definitions/ceph-volume-pr.yml > > The scripts and config are found in the upper level dir at: > https://github.com/ceph/ceph-build/tree/master/ceph-volume-pr > > Once your proposed jenkins job is merged to master it will appear in > the Jenkins UI. >> >> Laura >> >> >>>>> Lenz Grimmer <lgrimmer@xxxxxxxx> 05/15/18 1:48 PM >>> >> Hi Laura, >> >> thanks for bringing this up again. It'd be great if we could extend the >> dashboard test coverage by running frontend (E2E) tests. >> >> Can you please summarize what needs to be done in order to facilitate >> this? Is it enough to install Chromium on specific existing Jenkins >> nodes, or would this require deploying new instances? >> >> Lenz >> >> On 05/15/2018 01:11 PM, Laura Paduano wrote: >> >>> I just wanted to raise this topic again and wanted to ask for >>> feedback/ideas on how to >>> proceed. >>> >>> Any help is appreciated :) >>> >>>>>> Stephan Müller <smueller@xxxxxxxx> 04/20/18 5:22 PM >>> >>> Hi, >>> I just wanted to raise a discussion about testing the dashboard >>> frontend. >>> >>> First of all, I'm happy to say that we have gathered over 100 frontend >>> unit tests by now. >>> >>> Each of us makes sure, that all unit tests are passing (of course ;) ), >>> so we run 'npm start' which will run all tests on 'Chrome'. >>> >>> I'm telling you this, because you need to know that we make sure all >>> tests are passing in a modern browser that can be used with a UI or >>> with out it (headless). >>> >>> As time goes by we create a PR against ceph and Jenkins will try to run >>> our unit tests, but this time, PhantomJS has to be used (...) >>> >>> PhantomJS doesn't have a UI, doesn't support what modern browsers can >>> do, but we can install it through npm. >>> >>> We increasingly write unit tests and we develop on typescript that will >>> be compiled to Javascript that is understandable on any modern browser. >>> Modern browsers have implemented built in functionality to understand >>> modern ES6 concepts like 'Proxy', but PhantomJS isn't modern. >>> >>> See this table for more information >>> https://kangax.github.io/compat-table/es6/ >>> >>> The thing is, we will hit the limitations of PhantomJS pretty soon, as >>> a matter of fact, I already hit it with the use of 'Proxy'. >>> https://github.com/ceph/ceph/pull/20822 >>> >>> As you can see in my work, I have to ignore a lot of lines and I have >>> to mock out the usage from the code. This will of course increase over >>> time. >>> >>> I would love to see a change here, because we want to have the fronted >>> tested through end to end (E2E) tests as well. >>> >>> Both unit and E2E tests could be run with chrome headless, but >>> therefore chromium or google-chrome are needed to be installed on the >>> Jenkins instance. >>> >>> Can someone give me a hint how this installation could be achieved? >>> As mocking built ins because of a missing installation, wastes a lot of >>> resources. >>> >>> Any help is appreciated >>> -- >>> Stephan Müller >>> >>> SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, >>> HRB 21284 (AG Nürnberg) >>> >>> -- >>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in >>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >>> >>> >>> _______________________________________________ >>> Sepia mailing list >>> Sepia@xxxxxxxxxxxxxx >>> http://lists.ceph.com/listinfo.cgi/sepia-ceph.com >>> >> >> -- >> SUSE Linux GmbH - Maxfeldstr. 5 - 90409 Nuernberg (Germany) >> GF:Felix Imendörffer,Jane Smithard,Graham Norton,HRB 21284 (AG Nürnberg) >> >> >> _______________________________________________ >> Sepia mailing list >> Sepia@xxxxxxxxxxxxxx >> http://lists.ceph.com/listinfo.cgi/sepia-ceph.com >> > _______________________________________________ > Sepia mailing list > Sepia@xxxxxxxxxxxxxx > http://lists.ceph.com/listinfo.cgi/sepia-ceph.com -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html