[MGNLTEST-58] POC for „Page objects“ - 1st step for the new UI tests framework Created: 26/Jul/19  Updated: 07/Jul/20  Resolved: 11/Sep/19

Status: Closed
Project: Magnolia Test Framework
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Neutral
Reporter: Christoph Meier Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: ui-tests, ui-tests-framework
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
dependency
depends upon MGNLTEST-53 Start productizing page object initia... Closed
relation
is related to MGNLTEST-60 Reinstate page object extraction init... Closed
Template:
Acceptance criteria:
Empty
Task DoR:
Empty
Epic Link: core-TF-features-bugs-improvements

 Description   

Context 

Main aim: We need a better „UI tests framework“ in order to make it „easier / simpler“ to write and maintain UI tests quicker.

After some discussion the „Group of Interest for QA/Testing“ has decided  to proceed with selenium driver based tests. 

In order to reach the main aim, we want to create an API following the Page Objects pattern. This allows to write the UI tests by utilizing the page objects API (instead of using the selenium API) leading to tests with less code, which are easier to read, understand and maintain.

 Preliminary studies

Back in the days, Michi Mühlebach started with the creation of Page objects. Rico did a first follow-up with DEV-1199. (See Page object extraction initiative too).


Acceptance criteria & Scope

  • Define minimal API which is sufficient for the given functional test
  • Implement the API.
  • Provide tests to test the implemented API.
  • Write a new UI test for the given scenario by utilizing the new API

It is sufficient, if the (new) Page Objects API enables UI tests for Magnolia 6.1 and higher only. No need to support tests required for m-5.7.x branch.

Do not change / alter existing classes, but create new classes / interfaces. Create a new package somewhere (most likely within ce/magnolia-integration-tests/tests for the time being).

Ideally, the public API is completely free of selenium types. (me thinks) (???).


Scenario to test

Given paige opens the Contacts app:
When she creates the contact Goethe.
Then Goethe contact exists.

paige: Is editing (and creating) content; has the role editor.



 Comments   
Comment by Christoph Meier [ 26/Jul/19 ]

Bootstrapping the user paige can be considered as part of the exemplary test scenario. This could be done with either

  1. adding a file to the subreactor info.magnolia.integrationtests.rules.Fixture or
  2. by using the info.magnolia.integrationtests.rules.Fixture annotation.

I actually like option (2). The question is, whether the POC also must have its own ... .rules.Fixture apart from the already existing info.magnolia.integrationtests.rules

Comment by Christoph Meier [ 11/Sep/19 ]

This was actually tackled by MGNLCE-164 and others. Hence I close this one.

Generated at Mon Feb 12 07:45:09 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.