Actions

Difference between revisions of "Testing Area/Behat Testing/Automated functional testing"

From Mahara Wiki

< Testing Area‎ | Behat Testing
(Created page with "Information on Automated Functional Testing")
 
Line 1: Line 1:
 
Information on Automated Functional Testing
 
Information on Automated Functional Testing
 +
 +
===Behat Testing (Steps)===
 +
 +
Use the steps below to aid you in writing Behat tests. Anywhere you see "@Given", you can substitute it for "And", "Then" and also "When"
 +
 +
====Opening/Loading/Closing Pages====
 +
 +
 +
Opens Mahara homepage.
 +
  @Given I am on homepage
 +
 +
 +
Reloads the current page.
 +
  @Given I reload the page
 +
 +
Waits until the page is completely loaded. This step is auto-executed after every step.
 +
  @Given I wait until the page is ready
 +
   
 +
 +
====Switching Frames/Windows====
 +
 +
 +
 +
 +
Switches to the specified iframe.
 +
  @Given I switch to "$iframename" iframe
 +
 +
 +
Switches to the main Mahara frame.
 +
  @Given I switch to the main frame
 +
 +
 +
Switches to the specified window. Useful when interacting with popup windows.
 +
  @Given I switch to “windowname” windows
 +
 +
 +
Switches to the main Mahara window. Useful when you finish interacting with popup windows.
 +
@Given I switch to the main window
 +
 +
 +
====Actions Requiring Waiting====
 +
 +
 +
 +
 +
Waits X seconds. Required after an action that requires data from an AJAX request.
 +
  @Then I wait "$numberofseconds" seconds
 +
 +
 +
 +
Waits until the provided element selector exists in the DOM
 +
  @Given I wait until "$element" "$selector" exists
 +
 +
 +
====Click Actions====
 +
 +
 +
 +
 +
Generic mouse over action. Mouse over a element of the specified type.
 +
  @When I hover "$element" "$selector"
 +
   
 +
 +
 +
Click on the element of the specified type which is located inside the second element.
 +
  @When I click on "$element" "$selector"
 +
 +
 +
 +
Click on the specified element inside a table row containing the specified text.
 +
  @Given I click on "$element" "$selector" in the table row
 +
   
 +
 +
Clicks link with specified id|title|alt|text.
 +
  @When I follow "id|title|alt|text"
 +
 +
 +
====Checking For Specfic Visible Elements====
 +
 +
 +
 +
 +
Checks, that the specified element is visible. Only available in tests using Javascript.
 +
  @Then "$elements" "$selector" should be visible
 +
   
 +
  @Then "$element" "$selector" should not be visible
 +
 +
 +
Checks, that the specified element is visible inside the specified container. Only available in tests using Javascript.
 +
  @Then "$element" "$selector" in the "$elementcontainer" "$selector" should be visible   
 +
 +
 +
 +
Checks, that the specified element is not visible inside the specified container. Only available in tests using Javascript.
 +
  @Then "$element" "$selector" in the "$elementcontainer" "$textselector" should not be visible
 +
         
 +
 +
Checks, that page contains specified text. It also checks if the text is visible when running Javascript tests.
 +
  @Then I should see "$text"
 +
   
 +
 +
Checks, that page doesn't contain specified text. When running Javascript tests it also considers that texts may be hidden.
 +
  @Then I should not see "$text"
 +
 +
 +
Checks, that the specified element contains the specified text. When running Javascript tests it also considers that texts may be hidden.
 +
  @Then I should see "$text" in the "$element" “$sector”
 +
 +
 +
Checks, that the specified element does not contain the specified text. When running Javascript tests it also considers that texts may be hidden.
 +
  @Then I should not see "$text" in the “$element" "$selector”
 +
 +
 +
 +
Checks, that the first specified element appears before the second one.
 +
  @Given "$element" "$selector" should appear before "$element)" "$selector"
 +
   
 +
 +
Checks, that the first specified element appears after the second one.
 +
  @Given "$element" "selector" should appear after $"element"  $"selector"
 +
 +
 +
Checks, that element of specified type is disabled.
 +
  @Then the "$element" "$selector" should be disabled
 +
   
 +
 +
Checks, that element of specified type is enabled.
 +
  @Then the "$element" "$selector" should be enabled
 +
   
 +
 +
Checks the provided element and selector type are readonly on the current page.
 +
  @Then the "$element" "$selector" should be readonly
 +
 +
 +
Checks the provided element and selector type exists in the current page.
 +
-This step is for advanced users, use it if you don't find anything else suitable for what you need.
 +
  @Then "$element" "$selector" should exists
 +
 +
 +
Checks that the provided element and selector type not exists in the current page.
 +
-This step is for advanced users, use it if you don't find anything else suitable for what you need.
 +
  @Then "$element" "$selector" should not exists
 +
 +
 +
Checks that an element and selector type exists in another element and selector type on the current page.
 +
-This step is for advanced users, use it if you don't find anything else suitable for what you need.
 +
  @Then "$element" "$selector" should exist in the "$element" "$selector"
 +
 +
====Ungrouped Steps====
 +
 +
 +
 +
 +
Follows the page redirection. Use this step after any action that shows a message and waits for a redirection
 +
  @Given I wait to be redirected
 +
   
 +
 +
Accepts the currently displayed alert dialog. This step does not work in all the browsers, consider it experimental.
 +
  @Given I accept the currently displayed dialog
 +
 +
 +
Drags and drops the specified element to the specified container. This step does not work in all the browsers, consider it experimental.
 +
  @Given I drag "$element" "$selector" and I drop it in "$containerelement" ”$selector"
 +
   
 +
 +
This step triggers cron like a user would do going to admin/cron.php.
 +
  @Given I trigger cron

Revision as of 09:06, 6 October 2014

Information on Automated Functional Testing

Behat Testing (Steps)

Use the steps below to aid you in writing Behat tests. Anywhere you see "@Given", you can substitute it for "And", "Then" and also "When"

Opening/Loading/Closing Pages

Opens Mahara homepage.

 @Given I am on homepage


Reloads the current page.

 @Given I reload the page

Waits until the page is completely loaded. This step is auto-executed after every step.

 @Given I wait until the page is ready
    

Switching Frames/Windows

Switches to the specified iframe.

 @Given I switch to "$iframename" iframe


Switches to the main Mahara frame.

 @Given I switch to the main frame


Switches to the specified window. Useful when interacting with popup windows.

 @Given I switch to “windowname” windows


Switches to the main Mahara window. Useful when you finish interacting with popup windows.

@Given I switch to the main window

Actions Requiring Waiting

Waits X seconds. Required after an action that requires data from an AJAX request.

 @Then I wait "$numberofseconds" seconds


Waits until the provided element selector exists in the DOM

 @Given I wait until "$element" "$selector" exists


Click Actions

Generic mouse over action. Mouse over a element of the specified type.

 @When I hover "$element" "$selector"
    


Click on the element of the specified type which is located inside the second element.

 @When I click on "$element" "$selector"


Click on the specified element inside a table row containing the specified text.

 @Given I click on "$element" "$selector" in the table row
    

Clicks link with specified id|title|alt|text.

 @When I follow "id|title|alt|text"


Checking For Specfic Visible Elements

Checks, that the specified element is visible. Only available in tests using Javascript.

 @Then "$elements" "$selector" should be visible
    
 @Then "$element" "$selector" should not be visible


Checks, that the specified element is visible inside the specified container. Only available in tests using Javascript.

 @Then "$element" "$selector" in the "$elementcontainer" "$selector" should be visible     


Checks, that the specified element is not visible inside the specified container. Only available in tests using Javascript.

 @Then "$element" "$selector" in the "$elementcontainer" "$textselector" should not be visible
         

Checks, that page contains specified text. It also checks if the text is visible when running Javascript tests.

 @Then I should see "$text"
    

Checks, that page doesn't contain specified text. When running Javascript tests it also considers that texts may be hidden.

 @Then I should not see "$text"


Checks, that the specified element contains the specified text. When running Javascript tests it also considers that texts may be hidden.

 @Then I should see "$text" in the "$element" “$sector”

Checks, that the specified element does not contain the specified text. When running Javascript tests it also considers that texts may be hidden.

 @Then I should not see "$text" in the “$element" "$selector”


Checks, that the first specified element appears before the second one.

 @Given "$element" "$selector" should appear before "$element)" "$selector"
    

Checks, that the first specified element appears after the second one.

 @Given "$element" "selector" should appear after $"element"  $"selector"


Checks, that element of specified type is disabled.

 @Then the "$element" "$selector" should be disabled
    

Checks, that element of specified type is enabled.

 @Then the "$element" "$selector" should be enabled
    

Checks the provided element and selector type are readonly on the current page.

 @Then the "$element" "$selector" should be readonly

Checks the provided element and selector type exists in the current page. -This step is for advanced users, use it if you don't find anything else suitable for what you need.

 @Then "$element" "$selector" should exists

Checks that the provided element and selector type not exists in the current page. -This step is for advanced users, use it if you don't find anything else suitable for what you need.

 @Then "$element" "$selector" should not exists


Checks that an element and selector type exists in another element and selector type on the current page. -This step is for advanced users, use it if you don't find anything else suitable for what you need.

 @Then "$element" "$selector" should exist in the "$element" "$selector"

Ungrouped Steps

Follows the page redirection. Use this step after any action that shows a message and waits for a redirection

 @Given I wait to be redirected
    

Accepts the currently displayed alert dialog. This step does not work in all the browsers, consider it experimental.

 @Given I accept the currently displayed dialog


Drags and drops the specified element to the specified container. This step does not work in all the browsers, consider it experimental.

 @Given I drag "$element" "$selector" and I drop it in "$containerelement" ”$selector"
    

This step triggers cron like a user would do going to admin/cron.php.

 @Given I trigger cron