Re: [sepia] [QA/dashboard] Frontend tests on Jenkins

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux