logins:
  - login:
    discriminator: DataGenSmallProject
    developer: 500
    qa: 500
    projectAdmin: 75
    devLead: 75
    qaLead: 75
    reviewer: 25
  - login:
    discriminator: DataGenBigProject
    developer: 500
    qa: 500
    projectAdmin: 75
    devLead: 75
    qaLead: 75
    reviewer: 25
  - login:
    discriminator: DataGenMassEditProject
    projectAdmin: 1

scenarios:
  - scenario: Developer is checking his / her task
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 500
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Developer
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 5m
        parameters:
          trackerType: TASK
          random: 10
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadDescriptionTooltip
        parameters:
          trackerType: USERSTORY
      - visit: trackerItemPage
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TASK
          random: 2
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TASK
          random: 2

  - scenario: QA is checking his / her task
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 500
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 5m
        parameters:
          trackerType: TASK
          random: 10
      - visit: kanbanBoardPage
        pause: 1m
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        pause: 1m
        parameters:
          trackerType: TASK
          tabs: WORKLOG,SCM,HISTORY,ALLHISTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: modifyTestCaseTestSteps
        pause: 5m
        parameters:
          random: 2
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: createTestRunOnDocumentView
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: createTrackerItemDocumentView
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2

  - scenario: Project admin manages given project - common pages
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Project Admin
      - visit: projectsPage
      - visit: projectPage
      - visit: baselinesPage
        pause: 5m
      - visit: projectDocumentPage
      - visit: projectDocumentPageDirectoryPage
      - visit: projectDocumentPageDirectoryPropertiesPage
      - visit: projectDocumentPageFilePropertiesPage
        parameters:
          random: 20
      - visit: projectMembersPage
        pause: 15m
        parameters:
          random: 20
      - visit: visitReportsPage
      - visit: visitReportFinderDialog
      - visit: openReport
      - visit: openReportForEdit

  - scenario: Dev Lead is checking progress of a given release and sprint
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Dev Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: USERSTORY
      - visit: openReferenceSelectorDialog
        parameters:
          trackerType: USERSTORY
          fieldName: Requirements
      - visit: trackerPage
        parameters:
          trackerType: EPIC
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: EPIC
          showAncestorItems: true
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: openTrackerItemTraceability
        parameters:
          trackerType: USERSTORY
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: EPIC
          traceabilityConfigType: DEV
      - visit: projectBacklog
        pause: 5m
      - visit: visitReleasePage
        pause: 1m
      - visit: visitReleaseStatsPage
        parameters:
          releaseStatusFilter: OPEN
          releaseTypeFilter: ALL_TRACKER_ITEMS
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: EPIC
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: EPIC
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: EPIC
      - visit: updateStoryPoint
        pause: 1m
        parameters:
          trackerType: EPIC
      - visit: updateDescription
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: updateSubject
        pause: 1m
        parameters:
          trackerType: USERSTORY
          associatedTrackerType: EPIC
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 5m
        parameters:
          trackerType: TASK

  - scenario: QA Lead is checking progress of a given release and sprint
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: TESTCASE
          showDescendantItems: true
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerDocumentEditView
        parameters:
          trackerType: TESTCASE
      - visit: trackerTraceabilityTableView
        pause: 5m
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: USERSTORY
          traceabilityConfigType: QA
      - visit: projectBacklog
        pause: 5m
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: BUG
      - visit: trackerItemPage
        parameters:
          trackerType: BUG
      - visit: addAssociation
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TESTCASE
      - visit: updateSubject
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TASK

  - scenario: Reviewer checking and manage reviews
    discriminator: DataGenSmallProject
    pause: 30s
    inject:
      from: 1
      to: 25
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Reviewer
      - visit: userHomePage
      - visit: reviewsPage
        pause: 1m
      - visit: reviewPage
        pause: 5m
      - visit: reviewStatisticsPage
        pause: 1m


  - scenario: Developer is checking his / her task in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 500
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Developer
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 5m
        parameters:
          trackerType: TASK
          random: 10
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadDescriptionTooltip
        parameters:
          trackerType: USERSTORY
      - visit: trackerItemPage
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TASK
          random: 2
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TASK
          random: 2

  - scenario: QA is checking his / her task in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 500
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 5m
        parameters:
          trackerType: TASK
          random: 10
      - visit: kanbanBoardPage
        pause: 1m
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        pause: 1m
        parameters:
          trackerType: TASK
          tabs: WORKLOG,SCM,HISTORY,ALLHISTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: modifyTestCaseTestSteps
        pause: 5m
        parameters:
          random: 2
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: createTestRunOnDocumentView
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2
      - visit: createTrackerItemDocumentView
        pause: 5m
        parameters:
          trackerType: TESTCASE
          random: 2

  - scenario: Project admin manages given project - in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Project Admin
      - visit: projectsPage
      - visit: projectPage
      - visit: baselinesPage
        pause: 5m
      - visit: projectDocumentPage
      - visit: projectDocumentPageDirectoryPage
      - visit: projectDocumentPageDirectoryPropertiesPage
      - visit: projectDocumentPageFilePropertiesPage
      - visit: projectMembersPage
        pause: 15m
        parameters:
          random: 20
      - visit: visitReportsPage
      - visit: visitReportFinderDialog
      - visit: openReport
      - visit: openReportForEdit

  - scenario: Dev Lead is checking progress of a given release and sprint - in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Dev Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: USERSTORY
      - visit: openReferenceSelectorDialog
        parameters:
          trackerType: USERSTORY
          fieldName: Requirements
      - visit: trackerPage
        parameters:
          trackerType: EPIC
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: EPIC
          showAncestorItems: true
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: openTrackerItemTraceability
        parameters:
          trackerType: USERSTORY
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: EPIC
          traceabilityConfigType: DEV
      - visit: projectBacklog
        pause: 5m
      - visit: visitReleasePage
        pause: 1m
      - visit: visitReleaseStatsPage
        parameters:
          releaseStatusFilter: OPEN
          releaseTypeFilter: ALL_TRACKER_ITEMS
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: EPIC
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: EPIC
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: EPIC
      - visit: updateStoryPoint
        pause: 1m
        parameters:
          trackerType: EPIC
      - visit: updateDescription
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: updateSubject
        pause: 1m
        parameters:
          trackerType: USERSTORY
          associatedTrackerType: EPIC
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 5m
        parameters:
          trackerType: TASK

  - scenario: QA Lead is checking progress of a given release and sprint - in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 75
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: TESTCASE
          showDescendantItems: true
      - visit: reportPage
        pause: 5m
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerDocumentEditView
        parameters:
          trackerType: TESTCASE
      - visit: trackerTraceabilityTableView
        pause: 5m
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: USERSTORY
          traceabilityConfigType: QA
      - visit: projectBacklog
        pause: 5m
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemOnPlannerView
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItem
        pause: 5m
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1m
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 5m
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: BUG
      - visit: trackerItemPage
        parameters:
          trackerType: BUG
      - visit: addAssociation
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TESTCASE
      - visit: updateSubject
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TASK

  - scenario: Reviewer checking and manage reviews - in Big project
    discriminator: DataGenBigProject
    pause: 30s
    inject:
      from: 1
      to: 25
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Reviewer
      - visit: userHomePage
      - visit: reviewsPage
        pause: 1m
      - visit: reviewPage
        pause: 5m
      - visit: reviewStatisticsPage
        pause: 1m



  - scenario: Testing mass edit test cases
    discriminator: DataGenMassEditProject
    pause: 30s
    inject:
      from: 1
      to: 1
      during: 15m
      hold: 1h
    steps:
      - visit: authenticate
        parameters:
          roleName: Project Admin
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: massEditTrackerItems
        pause: 5m
        parameters:
          trackerType: TESTCASE
          trackerItemsCount: 100