Closed Mrle1992 closed 1 year ago
Yes, you will have to explain quite a bit more before anyone can help I fear.
It just started behaving strangely and slower. What do you mean by strangely?
Did anything happen since the last 'normal' run (OS update, Java update, virus scanner update, ...)?
What are you looking at that is much slower? Running a single test page, a whole suite, each page in a suite?
Are you running your suite from a browser, via jUnit, from the command line, or ...? Are you running on your local machine (which OS, Java) or on a server?
Do you see the same slow performance when running the tests in the acceptance suite of FitNesse itself.
Can you reproduce the 'slow run' in a 'clean' environment. I mean if you create a fresh installation of FitNesse, without your fixtures and tests do you see the same? If you then add your fixtures and tests do you also see it?
Can you create an sample where other people can also see the problem?
When fitness testing is started automatically, it runs slower than before. I use this IntelliJ IDEA Community Edition program to run the project
This is the code
`!*> Variables !3 Variables for running the whole test !define formatCurrentPointOfTime {!today (yyyyMMddHHmm)} !define formatCurrentPointOfTimeEmail {!today (yyyy/MM/dd)} !define nameClient {Sjaaks testbedrijf ${formatCurrentPointOfTime}} !define nameAssessee {Assessee Sjaak ${formatCurrentPointOfTime}} !define nameProject {Sjaaks project ${formatCurrentPointOfTime}} !define lastNameProjectLead {Project lead} !define lastNameProjectMember {Project member} !define lastNameAssessor {Assessor ${formatCurrentPointOfTime}} !define lastNameQualityReviewer {Quality reviewer ${formatCurrentPointOfTime}} !define lastNameFinancialSpecialist {Financial specialist ${formatCurrentPointOfTime}} !define dealNumber {!today (yyyyMMddHH)} !define eMailClient {janmk+client${formatCurrentPointOfTime}@gmail.com} !define eMailProjectLead {janmk+projectlead${formatCurrentPointOfTime}@gmail.com} !define eMailProjectMember {janmk+projectmember${formatCurrentPointOfTime}@gmail.com} !define eMailAssessor {janmk+assessor${formatCurrentPointOfTime}@gmail.com} !define eMailAssessee {janmk+assessee${formatCurrentPointOfTime}@gmail.com} !define eMailQualityReviewer {janmk+qualityreviewer${formatCurrentPointOfTime}@gmail.com} !define eMailFinancialSpecialist {janmk+financialspecialist${formatCurrentPointOfTime}@gmail.com} !define standardStartDate {!today (dd/MM/yyyy) +1} !define standardEndDate {!today (dd/MM/yyyy) +365} !define projectStartDate {!today (dd-MM-yyyy) +1} !define projectEndDate {!today (dd-MM-yyyy) +365} !define plannedAssessmentDate {!today (dd-MM-yyyy) +1} !define calendar {css=.fa.fa-calendar} !define calendar1 {css=.ng-empty .fa}
!3 Variables for starting te run from creating assessments
! !> Scenario's !> Fill in !> Log in |scenario|Log in with _|username, password| |enter |@username |as |Username | |enter |@password |as |Password | |click |Login | ! !> Set password |scenario|Set password|password | |enter |@password |as|Password | |enter |@password |as|Confirm Password| |click |Set Password | ! !> Search |scenario|Search for |searchTerm | |enter |!-@searchTerm-!|as|id=searchString| |press |enter |
|scenario |Search for assessor or financial specialist _|role, name | |enter |@name |as|xpath=((////[text()="Assign @role"])/following::input)[1]| |Click and wait|xpath=//span[text()="Assign @role"]/../../../following-sibling::button | ! !> Attributes |scenario|Fill in |value|for |attribute | |enter |!-@value-!|as |xpath=(////[text()="@attribute"])/following::input|
|scenario|Fill in |value|for textarea |attribute | |enter |!-@value-!|as |xpath=(////[text()="@attribute"])/following::textarea[1]|
|scenario|Fill in |value|in input number |inputNumber |for |attribute | |enter |!-@value-!|as |xpath=//td[contains(., '@attribute')]/following-sibling::*[@inputNumber]//input|
|scenario|Select |value |for |attribute | |click |xpath=(////[text()="@attribute"])/following::/[contains(@class, 'chosen-container')]//*| |click |xpath=//li[text()='@value'] |
|scenario|Click on radio button |radioButton |for |attribute | |click |xpath=(////[text()="@attribute"])/following::*[text()=' @radioButton']|
|scenario|Check checkbox |checkbox |on | |click |xpath=((////[text()="@checkbox"])/following::/)[1]|
|scenario|Fill in the attributes of the new client or assessee _|fullName, abbreviation, website, email, phone, description| |Fill in |@fullName |for |Full name | |Fill in |@abbreviation |for |Abbreviation | |Fill in |@website |for |Website | |Fill in |@email |for |Email | |Fill in |@phone |for |Phone | |Fill in |@description |for textarea |Description |
|scenario|Fill in the standard attributes of the new user _|firstName, lastName, organization, city, country, email, uiLanguage| |Fill in |@firstName |for |First name | |Fill in |@lastName |for |Last name | |Select |@organization |for |Organization | |Fill in |@city |for |City | |Select |@country |for |Country | |Fill in |@email |for |Email | |Select |@uiLanguage |for |UI Language |
|scenario |Fill in the attributes of the new app user _|skill, tool1, tool2, tool3, tool4, tool5, tool6, language, expirationDate, availableToAllClients| |Select |SCOPE App |for |Applications | |Select |@skill |for |Skills | |Select |@tool1 |for |Tools | |Select |@tool2 |for |Tools | |Select |@tool3 |for |Tools | |Select |@tool4 |for |Tools | |Select |@tool5 |for |Tools | |Select |@tool6 |for |Tools | |Select |@language |for |Languages spoken | |enter |@expirationDate |as |css=[name^=expiration_date] | |Click on radio button|@availableToAllClients |for |Available to all Clients |
|scenario|Fill in the attributes of the new dashboard user _|dashboardRole | |Select |SCOPE Dashboard |for|Applications | |Select |@dashboardRole |for|Dashboard role|
|scenario|Fill in the attributes of the new project _|projectName, dealNumber, projectOwner, projectLead, projectMember, plannedStartDate, plannedEndDate, qualityReviewer, financialQualityReviewer| |Fill in |@projectName |for |Project name | |Fill in |@dealNumber |for |Deal number | |Select |@projectOwner |for |Project owner | |note |At this point the test will wait for 3 seconds, because the correct project lead has to be selected. Unfortunately, the scenario 'Check pending requests' doesn't work! | |wait |3 |seconds | |Select |@projectLead |for |Project lead | |Select |@projectMember |for |Sjaak Project members | |Fill in |@plannedStartDate |for |(Planned) start date | |check pending requests | |Fill in |@plannedEndDate |for |(Planned) end date | | |Check |Client performs QC | |Select |@qualityReviewer |for |Sjaak ${lastNameQualityReviewer} | |check pending requests | |Select |@financialQualityReviewer |for |Financial Quality Reviewer | |check pending requests |
|scenario|Fill in the attributes of the new assessment on the first page of the dialog _|tool, reportLanguage, plannedAssessmentDate, country, emailAssessee| |Select |@tool |for |Tool | |Select |@reportLanguage |for |Report Language | |Fill in |@plannedAssessmentDate |for |(Planned) Assessment Date | |Select |@country |for |Country | |Fill in |${nameAssessee} |for |Assessee | |press |Enter | |click |Search | |click |xpath=//*[text()='@emailAssessee']/following-sibling::td[2]/button |
|scenario|Fill in the mandatory attributes on tab Assessment| |click |xpath=//input[@name='checkbox'] | |click |xpath=(//input[@name='checkbox'])[2] | |click |xpath=(//input[@name='checkbox'])[3] | |click |xpath=(//input[@name='checkbox'])[4] | |click |xpath=(//input[@name='checkbox'])[5] | |click |xpath=(//input[@name='checkbox'])[6] | |click |xpath=(//input[@name='checkbox'])[7] | |click |xpath=(//input[@name='checkbox'])[8] | |enter |test |as |xpath=//textarea[@name='input'] |
|scenario|Fill in the observations on asesment proces | |click |xpath=//span[contains(.,'Observations')] | |enter |Test1 |as|xpath=//textarea[@name='input'] | |enter |Test2 |as|xpath=(//textarea[@name='input'])[2] | |enter |Test3 |as|xpath=(//textarea[@name='input'])[3] | |enter |Test4 |as|xpath=(//textarea[@name='input'])[4] | |enter |Test5 |as|xpath=(//textarea[@name='input'])[5] | |enter |Test6 |as|xpath=(//textarea[@name='input'])[6] | |enter |Test7 |as|xpath=(//textarea[@name='input'])[7] | |enter |Test8 |as|xpath=(//textarea[@name='input'])[8] | |enter |Test9 |as|xpath=(//textarea[@name='input'])[9] | |enter |Test10 |as|xpath=(//textarea[@name='input'])[10]| |enter |Test11 |as|xpath=(//textarea[@name='input'])[11]| |enter |Test12 |as|xpath=(//textarea[@name='input'])[12]| |enter |Test13 |as|xpath=(//textarea[@name='input'])[13]| |enter |Test14 |as|xpath=(//textarea[@name='input'])[14]| |enter |Test15 |as|xpath=(//textarea[@name='input'])[15]| |enter |Test16 |as|xpath=(//textarea[@name='input'])[16]| |enter |Test in progres|as|xpath=(//textarea[@name='input'])[17]|
|scenario|Fill in the mandatory attributes on tab Basic and Contact Details| |enter |Amsterdam |as |xpath=(//input[@name='input'])[5] | |click |xpath=//span[contains(.,'Noord-Holland')] | |click |xpath=//li[contains(.,'Noord-Holland')] | |click |xpath=//input[@name='checkbox'] | |click |xpath=(//input[@name='checkbox'])[2] | |click |xpath=(//input[@name='checkbox'])[3] | |click |xpath=(//input[@name='checkbox'])[4] | |click |xpath=(//input[@name='checkbox'])[5] | |click |xpath=(//input[@name='checkbox'])[6] | |click |xpath=(//input[@name='checkbox'])[7] | |click |xpath=(//input[@name='checkbox'])[7] | |click |xpath=(//input[@name='checkbox'])[8] | |click |xpath=(//input[@name='checkbox'])[9] | |click |xpath=(//input[@name='checkbox'])[10] | |click |xpath=(//input[@name='checkbox'])[11] | |click |xpath=(//input[@name='checkbox'])[12] | |click |xpath=(//input[@name='checkbox'])[13] | |click |xpath=(//input[@name='checkbox'])[14] | |click |xpath=(//input[@name='checkbox'])[15] | |click |xpath=(//input[@name='checkbox'])[16] | |click |xpath=(//input[@name='checkbox'])[17] | |click |xpath=(//input[@name='checkbox'])[18] | |click |xpath=(//input[@name='checkbox'])[19] | |click |xpath=(//input[@name='checkbox'])[20] | |click |xpath=(//input[@name='checkbox'])[21] | |click |xpath=(//input[@name='checkbox'])[22] | |click |xpath=(//input[@name='checkbox'])[23] | |enter |qwerty |as |xpath=//textarea[@name='other'] | |enter |Test |as |xpath=//textarea[@name='input'] | |enter |Test |as |xpath=(//textarea[@name='input'])[2] |
|scenario|Fill in the mandatory attributes on tab Incorporation| |click |xpath=//span[contains(.,'Apex organization')] | |click |xpath=//li[contains(.,'Apex organization')] | |click |xpath=//span[contains(.,'2020')] | |click |xpath=//li[contains(.,'2020')] | |enter |Test123 |as |xpath=(//textarea[@name='input'])[3] | |enter |Test321 |as |xpath=(//textarea[@name='input'])[4] | |enter |Test432 |as |xpath=(//textarea[@name='input'])[5] | |enter |Test324 |as |xpath=(//textarea[@name='input'])[6] | |enter |Test456 |as |xpath=(//textarea[@name='input'])[7] | |enter |Test654 |as |xpath=(//textarea[@name='input'])[8] | |enter |Test256 |as |xpath=(//textarea[@name='input'])[9] | |enter |Test564 |as |xpath=(//textarea[@name='input'])[10] | |enter |Test234 |as |xpath=(//textarea[@name='input'])[11] | |enter |0 |as |xpath=(//input[@name='input'])[16] | |enter |1 |as |xpath=(//input[@name='input'])[17] | |enter |3 |as |xpath=(//input[@name='input'])[19] | |enter |2 |as |xpath=(//input[@name='input'])[20] | |enter |4 |as |xpath=(//input[@name='input'])[22] | |enter |5 |as |xpath=(//input[@name='input'])[23] | |enter |7 |as |xpath=(//input[@name='input'])[25] | |enter |6 |as |xpath=(//input[@name='input'])[26] | |enter |17 |as |xpath=(//input[@name='input'])[28] | |enter |0 |as |xpath=(//input[@name='input'])[29] | |enter |12 |as |xpath=(//input[@name='input'])[31] | |enter |10 |as |xpath=(//input[@name='input'])[32] | |enter |12 |as |xpath=(//input[@name='input'])[34] | |enter |14 |as |xpath=(//input[@name='input'])[35] | |enter |15 |as |xpath=(//input[@name='input'])[37] | |enter |18 |as |xpath=(//input[@name='input'])[38] | |enter |18 |as |xpath=(//input[@name='input'])[40] | |enter |19 |as |xpath=(//input[@name='input'])[41] | |enter |4 |as |xpath=(//input[@name='input'])[18] | |enter |5 |as |xpath=(//input[@name='input'])[21] | |enter |6 |as |xpath=(//input[@name='input'])[24] | |enter |7 |as |xpath=(//input[@name='input'])[27] | |enter |8 |as |xpath=(//input[@name='input'])[30] | |enter |9 |as |xpath=(//input[@name='input'])[33] | |enter |3 |as |xpath=(//input[@name='input'])[36] | |enter |2 |as |xpath=(//input[@name='input'])[39] | |enter |1 |as |xpath=(//input[@name='input'])[42] | |enter |15 |as |xpath=(//input[@name='input'])[43] | |enter |20 |as |xpath=(//input[@name='input'])[44] | |enter |qwerty1 |as |xpath=(//textarea[@name='input'])[12] | |enter |qwerty2 |as |xpath=(//textarea[@name='input'])[13] |
|scenario|Fill in the mandatory attributes Governance Structure | |click |xpath=//input[@name='bool_Annual_general_meeting'] | |click |xpath=(//input[@name='bool_Management_team'])[2] | |click |xpath=//input[@name='bool_Supervisory_board'] | |click |xpath=(//input[@name='input'])[45] | |enter |4 |as|xpath=(//input[@name='input'])[45] | |click |xpath=(//input[@name='input'])[46] | |enter |7 |as|xpath=(//input[@name='input'])[46] | |click |xpath=(//input[@name='input'])[47] | |enter |5 |as|xpath=(//input[@name='input'])[47] | |enter |qwerty3|as|xpath=//fieldset/table/tbody/tr/td[3]/form-textarea/div/div/textarea | |enter |qwerty4|as|xpath=//fieldset/table/tbody/tr[2]/td[3]/form-textarea/div/div/textarea| |enter |qwerty5|as|xpath=//tr[3]/td[3]/form-textarea/div/div/textarea | |click |xpath=//button[contains(.,'Complete')] |
|scenario|Fill in the mandatory attributes Add new Contacts| |click |xpath=(//button[@type='button'])[4] | |click |xpath=//input[@name='first_name'] | |enter |Marko |as |xpath=//input[@name='first_name'] | |click |xpath=//input[@name='last_name'] | |enter |Popovic |as |xpath=//input[@name='last_name'] | |click |xpath=//input[@value='Save'] |
|scenario|Fill in the representatives present and positions| |click |xpath=//li[3]/a/translate/span | |click |xpath=//button/span/span | |enter |Marko |as |xpath=//input[@name='first_name'] | |enter |Popovic |as |xpath=//input[@name='last_name'] | |click |Save | |enter |test |as |xpath=(//textarea[@name='input'])[2]|
|scenario|Fill in the mandatory attributes from Infrastructure information| |click |xpath=//a[contains(.,'Select an option')] | |click |xpath=//li[contains(.,'All-weather road')] | |click |xpath=//span[contains(.,'Select an option')] | |click |xpath=//li[contains(.,'100-200km')] | |click |xpath=//a[contains(.,'Select an option')] | |click |xpath=//li[contains(.,'Available in vicinity')] | |click |xpath=//span[contains(.,'Select an Option')] | |click |xpath=//li[contains(.,'Stable with generator backup')] | |click |xpath=//span[contains(.,'Select an Option')] | |click |xpath=//li[contains(.,'Mobile only')] | |click |xpath=//span[contains(.,'Select an Option')] | |click |xpath=//li[contains(.,'Broad coverage')] | |click |xpath=//span[contains(.,'Select an Option')] | |click |xpath=//li[contains(.,'Running water')] | |enter |qwerty3 |as |xpath=//div[6]/div/form-textarea/div/div/textarea | |click |xpath=//button[contains(.,' Send to Quality Control')] | ! ! !> Check !> Items and buttons |scenario|Check if user|user |is logged in| |check |value of |css=.nav .fa-user+span|@user |
|scenario |Check if |item|is not visible on page| |seconds before timeout |3 | |seconds before page load timeout|3 | |reject |is visible on page|@item | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout} |
|scenario|Check if button Save is not clickable | |ensure |is visible on page|xpath=//*[@type='submit' and @disabled='disabled']|
|scenario|Check if button Add of Service providers and Supporting organizations is not clickable| |reject |is enabled |css=.well .btn-primary |
|scenario|Check if button Add Assessment is displayed at the right side | |ensure |is visible on page|xpath=//a[@class='btn btn-primary pull-right']//*[text()='Add Assessment']|
|scenario|Check if button of assessee or assessor with e-mail|email |is blue with a check mark behind | |ensure |is visible on page |xpath=//[text()='@email']/following-sibling::td[2]/[@class='btn btn-success']|
|scenario|Check if page header is not visible anymore | |reject |is visible on page|xpath=//*[contains(@class, 'si-page__header')]|
|scenario|Check if dialog Add Assessment is visible on page| |ensure |is visible on page |css=.add-assessment-modal |
|scenario|Check if dialog Add Assessor is visible on page| |ensure |is visible on page |css=.add-assessor-modal |
|scenario|Check if dialog Confirm is visible on page| |ensure |is visible on page |css=.confirm-modal |
|scenario|Check if dialog Confirm has message|message | |check |value of |css=.confirm-modal .modal-body span|@message|
|scenario|Check if dialog Add Assessment is not visible on page| |Check if|css=.add-assessment-modal |is not visible on page |
|scenario|Check if dialog Add Assessor is not visible on page| |Check if|css=.add-assessor-modal |is not visible on page |
|scenario|Check if dialog Confirm is not visible on page| |Check if|css=.confirm-modal |is not visible on page |
|scenario|Check icons of tabs _ |assessment, organizational, valueChain, finance, productionAndSales, observations, questionnaire, documentation, termsAndConditions | |ensure |is visible on page |xpath=//[contains(@class,'nav-tabs')]//[text()='Assessment']/ancestor::a//i[contains(@class,'text-@assessment')] | |ensure |is not visible on page|xpath=//[contains(@class,'nav-tabs')]//[text()='Organizational']/ancestor::a//i[contains(@class,'text-@organizational')] | |ensure |is visible on page |xpath=//[contains(@class,'nav-tabs')]//[text()='Value Chain']/ancestor::a//i[contains(@class,'text-@valueChain')] | |ensure |is not visible on page|xpath=//[contains(@class,'nav-tabs')]//[text()='Finance']/ancestor::a//i[contains(@class,'text-@finance')] | |ensure |is visible on page |xpath=//[contains(@class,'nav-tabs')]//[text()='Production & Sales']/ancestor::a//i[contains(@class,'text-@productionAndSales')] | |ensure |is not visible on page|xpath=//[contains(@class,'nav-tabs')]//[text()='Observations']/ancestor::a//i[contains(@class,'text-@observations')] | |ensure |is visible on page |xpath=//[contains(@class,'nav-tabs')]//[text()='Questionnaire']/ancestor::a//i[contains(@class,'text-@questionnaire')] | |ensure |is visible on page |xpath=//[contains(@class,'nav-tabs')]//[text()='Documentation']/ancestor::a//i[contains(@class,'text-@documentation')] | |ensure |is not visible on page|xpath=//[contains(@class,'nav-tabs')]//[text()='Terms and Conditions']/ancestor::a//i[contains(@class,'text-@termsAndConditions')]|
|scenario|Check if the red cover frames on tab Assessment are visible | |ensure |is visible on page |xpath=//[text()='Purpose of Assessment']/ancestor::[contains(@class, 'form-elements--error')] | |ensure |is not visible on page|xpath=//[text()='Assessee Background']/ancestor::[contains(@class, 'form-elements--error')] | |ensure |is not visible on page|xpath=//[text()='Observations on assessment process']/ancestor::[contains(@class, 'form-elements--error')] | |ensure |is not visible on page|xpath=//[text()='Representatives Present and Positions']/ancestor::[contains(@class, 'form-elements--error')]|
|scenario|Check if the red cover frames on tab Assessment are not visible | |reject |is visible on page|xpath=//[text()='Purpose of Assessment']/ancestor::[contains(@class, 'form-elements--error')] | |reject |is visible on page|xpath=//[text()='Assessee Background']/ancestor::[contains(@class, 'form-elements--error')] | |reject |is visible on page|xpath=//[text()='Observations on assessment process']/ancestor::[contains(@class, 'form-elements--error')] | |reject |is visible on page|xpath=//[text()='Representatives Present and Positions']/ancestor::[contains(@class, 'form-elements--error')]|
|scenario|Check if there is a blue check icon behind header|header | |ensure |is visible on page |xpath=//h3[contains(.,'@header')]//i[contains(@class, 'text-succes')]| ! !> Rows and columns |scenario|Check if value|value |is displayed in column|columnNumber| |check |value of |css=td:nth-child(@columnNumber)|@value |
|scenario|Check in row|rowNumber |if value|value|is displayed in column|columnNumber| |check |value of |css=tr:nth-child(@rowNumber) td:nth-child(@columnNumber)|@value |
|scenario |Check if value|value |is not displayed in column|columnNumber| |seconds before timeout |3 | |seconds before page load timeout|3 | |check not |value of |css=td:nth-child(@columnNumber)|@value | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout} |
|scenario |Check in row|rowNumber |if value|value|is not displayed in column|columnNumber| |seconds before timeout |3 | |seconds before page load timeout|3 | |check not |value of |css=tr:nth-child(@rowNumber) td:nth-child(@columnNumber)|@value | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout} |
|scenario|Check if assessor or financial specialist is displayed _|role, name | |check |value of |xpath=//[text()="Assign @role"]/ancestor::/following-sibling::article//tbody/tr[1]/td[1]|@name| ! !> Attributes |scenario|Check value|value |of input field|inputField| |check |value of |xpath=((////[text()="@inputField"])/following::input)[1]|@value |
|scenario|Check value|value |of textarea|textarea| |check |value of |xpath=((////[text()="@textarea"])/following::textarea)[1]|@value |
|scenario|Check value|value |of selection field|selectionField| |check |value of |xpath=((////[text()="@selectionField"])/following::span)[1]|@value |
|scenario|Check value of header project|projectName | |check |value of |css=.project-detail-dashboardheaderactions h2|@projectName|
|scenario|Check value|value |of attribute|attribute| |check |value of |xpath=((//[contains (text(),"@attribute")])/following::)[1]|@value |
|scenario|Check for organization to have value|value | |ensure |is visible on page |xpath=//div[@id='organization_chosen']//span[text()='@value']|
|scenario |Check the attributes of the new client or assessee _|fullName, abbreviation, website, email, phone, description| |Check value|@fullName |of input field |Full name | |Check value|@abbreviation |of input field |Abbreviation | |Check value|@website |of input field |Website | |Check value|@email |of input field |Email | |Check value|@phone |of input field |Phone | |Check value|@description |of textarea |Description |
|scenario |Check the standard attributes of the new user _|activeAccount, firstName, lastName, organization, city, country, email, uiLanguage| |check |value of |name=is_active |@activeAccount | |Check value |@firstName |of input field |First name | |Check value |@lastName |of input field |Last name | |Check for organization to have value|@organization | |Check value |@city |of input field |City | |Check value |@country |of selection field |Country | |Check value |@email |of input field |Email | |Check value |@uiLanguage |of selection field |UI Language |
|scenario|Check the attributes of the new app user _|skill, tool1, tool2, tool3, tool4, tool5, tool6, taal, vervaldatum, availableToAllClients| |check |value of |xpath=//[@name='applications']/following-sibling::div//li/span |SCOPE App | |check |value of |xpath=//[@name='skill']/following-sibling::div//li/span |@skill | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[1]/span |@tool1 | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[2]/span |@tool2 | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[3]/span |@tool3 | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[4]/span |@tool4 | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[5]/span |@tool5 | |check |value of |xpath=//[@name='tools']/following-sibling::div//li[6]/span |@tool6 | |check |value of |xpath=//*[@name='languages']/following-sibling::div//li/span |@taal | |check |value of |css=[name^=expiration_date] | | |check |value of |name=available_to_all_organizations |@availableToAllClients |
|scenario |Check the attributes of the new dashboard user _|rol | |check |value of |xpath=//*[@name='applications']/following-sibling::div//li/span|SCOPE Dashboard| |Check value|@rol |of selection field |Dashboard role |
|scenario |Check the attributes of the new project _|projectName, projectOwner, dealNumber, projectLead, projectMember, plannedStartDate, plannedEndDate, qualityReviewer, financialQualityReviewer| |Check value of header project|@projectName | |Check value |@projectOwner |of attribute |Project Owner | |Check value |@dealNumber |of attribute |Deal Number | |Check value |@projectLead |of attribute |Project Lead | |Check value |@projectMember |of attribute |Project Members | |Check value |@plannedStartDate |of attribute |(Planned) Start Date | |Check value |@plannedEndDate |of attribute |(Planned) End Date | |Check value |@qualityReviewer |of attribute |Quality Reviewer | |Check value |@financialQualityReviewer |of attribute |Financial Quality Reviewer |
|scenario |Check the attributes of the new assessment _|row, assessee, tool, assessor, qualityReviewer, plannedAssessmentDate, status, reportLanguage| |Check in row|@row |if value |@assessee |is displayed in column |3 | |Check in row|@row |if value |@tool |is displayed in column |2 | |Check in row|@row |if value |@assessor |is displayed in column |5 | |Check in row|@row |if value |@qualityReviewer |is displayed in column |6 | |Check in row|@row |if value |@plannedAssessmentDate |is displayed in column |7 | |Check in row|@row |if value |@status |is displayed in column |8 | |Check in row|@row |if value |@reportLanguage |is displayed in column |9 |
|scenario|Check if there are|amount |alerts | |check |value of |xpath=//a[@uib-tooltip='Unread alerts']//span|@amount|
|scenario|Check if the first invitation is no longer in the list| |ensure |is not visible on page |$FIRSTINVITATION |
|scenario|Check if there are no accepted invitations | |ensure |is not visible on page|xpath=//span[text()='Your Upcoming Assessments']/following::tr[0]|
|scenario|Check first pending invitation with tool|tool |is present | |ensure |is visible on page |xpath=//span[text()='Pending Invitations']/following::tr[2]//td[3][text()='@tool']|
|scenario|Check first assessment with tool|tool | |ensure |is visible on page |xpath=//span[text()='Your Upcoming Assessments']/following::tr[2]//td[3][text()='@tool']|
|scenario|Check GPS Code _|latitude, longitude | |check |value of |id=latitude |@latitude | |check |value of |id=longitude|@longitude|
|scenario|Check totals _|boardMember, managerKeyStaff, fullTimeEmployee, partTimeEmployee, seasonalEmployee, individualSuppliers| |check |value of |xpath=//td[contains(., 'Board member')]/following-sibling::[3] |@boardMember | |check |value of |xpath=//td[contains(., 'Manager / key staff')]/following-sibling::[3] |@managerKeyStaff | |check |value of |xpath=//td[contains(., 'Full-time employee')]/following-sibling::[3] |@fullTimeEmployee | |check |value of |xpath=//td[contains(., 'Part-time employee')]/following-sibling::[3] |@partTimeEmployee | |check |value of |xpath=//td[contains(., 'Seasonal employee')]/following-sibling::[3] |@seasonalEmployee | ! ! !> Other |scenario |Open url |url | |seconds before timeout |360 | |seconds before page load timeout|360 | |open |@url | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout}|
|scenario |Open url|url|in a new browser tab| |seconds before timeout |65 | |seconds before page load timeout|65 | |open in new tab |@url | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout} |
|scenario |Wait until page header is |pageHeader | |wait for visible|xpath=//*[contains(@class, 'si-page__header')]//span[text()='@pageHeader']| |check pending requests |
|scenario |Wait until changes are saved | |seconds before timeout |65 | |seconds before page load timeout|65 | |wait for visible |Changes saved successfully... | |seconds before timeout |${secondsBeforTimeout} | |seconds before page load timeout|${secondsBeforePageLoadTimeout}|
|scenario |Wait until tab |tab |is selected | |wait for visible|xpath=//[contains(@class,'nav-tabs')]//[contains(@class,'active')]//*[text()='@tab']| |check pending requests |
|scenario|Open tab on dashboard |tab | |click |xpath=//*[contains(@class,'nav-link') and text()='@tab']|
|scenario|Open tab on app |tab | |click |xpath=//[contains(@class,'nav-tabs')]//[text()='@tab']|
|scenario |Open dialog GPS and wait until it's visible | |Click and wait |css=.fa-question-circle-o | |wait for visible|xpath=//[@class='modal-dialog ']//[@class='modal-title']/*[text()='GPS']|
|scenario |Open dialog of Clients and wait until it's visible | |Click and wait |Add | |wait for visible|xpath=//[@class='modal-dialog ']//[contains(@class, 'modal-header')]//*[text()='Add New Entry']| |click |xpath=//span[contains(.,'Select a client')] | |click |xpath=//li[contains(.,'OTHER')] | |enter |${nameClient} |as |xpath=//input[@id='other'] | |click |xpath=//span[contains(.,'Select customer type')] | |click |xpath=//li[contains(.,'Company')] | |click |xpath=//span[contains(.,'Select relation type')] | |click |xpath=//li[contains(.,'Retailer')] | |click |xpath=//input[@id='number_of_years_in_relation'] | |enter |15 |as |xpath=//input[@id='number_of_years_in_relation'] | |click |xpath=//label[2]/input | |click |xpath=//textarea[@id='description_of_agreement'] | |enter |qwerty1 |as |xpath=//textarea[@id='description_of_agreement'] | |click |xpath=//input[@value='Save'] | |click |xpath=//button[2]/translate/span |
|scenario |Open dialog of Service providers and Supporting organizations and wait until it's visible | |Click and wait |Add | |wait for visible|xpath=//div[@id='content-view']/si-page/section/div/div/main/div[3]/div/div/form/div/div/fieldset/table-comp[2]/article/span/div/button/span/span| |click |xpath=//table-comp[2]/article/span/div/button | |click |xpath=//span[contains(.,'Select a client')] | |click |xpath=//li[contains(.,'OTHER')] | |click |xpath=//input[@id='other'] | |enter |${nameClient} |as |xpath=//input[@id='other'] | |click |xpath=//span[contains(.,'Select customer type')] | |click |xpath=//li[contains(.,'Company')] | |click |xpath=//span[contains(.,'Select relation type')] | |click |xpath=//li[contains(.,'IT service provider')] | |click |xpath=//input[@id='number_of_years_in_relation'] | |enter |21 |as |xpath=//input[@id='number_of_years_in_relation'] | |click |xpath=//label[3]/input | |click |xpath=//textarea[@id='description_of_agreement'] | |enter |qwerty2 |as |xpath=//textarea[@id='description_of_agreement'] | |click |xpath=//input[@value='Save'] | |click |xpath=//table-comp[2]/article/span/div[2]/ul/button[2]/translate/span |
|scenario|Assessor notes on value chain | |enter |qwerty3 |as |xpath=//textarea[@name='input'] | |click |xpath=//span[2]/translate/span | |click |xpath=//div[@id='content-view']/si-page/section/div/div/main/div[2]/div/div[3]/button/span[2]/translate/span|
|scenario|Click and wait|item| |click |@item | |check pending requests |
|scenario|Click on the logout button| |click |css=.fa-sign-out |
|scenario|Click on button Actions| |click |id=dropdownMenu1 |
|scenario|Click decline at the first invitation| |click |xpath=(//span[text()='Decline'])[1] |
|scenario|Click accept at the first invitation| |click |xpath=(//span[text()='Accept'])[1] |
|scenario |Click decline in dialog | |Click and wait|xpath=//input[@value='Decline']|
|scenario |Click cancel in dialog | |Click and wait|xpath=//button[text()='Cancel']|
|scenario |Click yes in dialog | |Click and wait|xpath=//button[text()='Yes']|
|scenario|Click on first assessment with tool |tool | |click |xpath=//span[text()='Your Upcoming Assessments']/following::tr[2]//td[3][text()='@tool']|
|scenario|Select assessor or financial specialist by e-mail |email | |click |xpath=//*[text()='@email']/following-sibling::td[2]/button|
|scenario |Get URL to set password _ |environment, email, role | |push fixture | |start |gmail oauth fixture |email-fixture | |set filter query |after:${formatCurrentPointOfTimeEmail} subject:(You have been registered to use the SCOPE @environment [original-to: @email)| |set repeat interval to |500 |milliseconds | |repeat at most |200 |times | |poll until message arrives | |$tmp= |latest message body | |start |string fixture | |$set_passwordlink@role=|replace all |.?(https?[\w:\/.#-?=]).* |in |$tmp |with |$1 | |pop fixture |
|scenario |Store the tool of first invitation| |$FIRSTINVITATION=|value of|xpath=(//table)[1]//td[3]| ! !
[['''Link to dashboard environment'''][${URL_DESKTOP}]] [['''Link to app environment'''][${URL_APP}]]
[['''Link to testscript'''][https://docs.google.com/spreadsheets/d/1q5Ihgs5iZvRvj2agi59sVyAbPnRe9FxG2bL4NDkUtMQ/edit#gid=493535326]] [['''Link to Jira'''][https://scopeinsight.atlassian.net/secure/RapidBoard.jspa?rapidView=10&projectKey=SSP]]
!1 Open app
!3 TC 02.01.01 Open the app environment and check if it's loaded. |script | |Open url|${URL_APP} | |check |page title|!-SCOPE App-!|
!3 TC 02.01.02 Log in and check if the homepage is loaded. '''Extra:''' check if Sjaak ${ALG_NAME} is logged in. |script | |Log in with; |${ALG_USERNAME}|${ALG_PASSWORD}| |Wait until page header is|Home | |Check if user |${ALG_NAME} |is logged in |
!1 Decline invitation
!3 TC 02.01.03 Check for alerts. There is even a check on how many. |script | |Check if there are|4|alerts|
!3 TC 02.01.04 Decline the first invitation and check if it's removed from the list. |script | |Store the tool of first invitation | |Click decline at the first invitation | |Click decline in dialog | |Check if the first invitation is no longer in the list|
!1 Accept invitation
!3 TC 02.02.01 Click on Accept and check if dialog Confirm has become visible with message: 'Are you sure you want to accept the invite for the following assessment?'. |script | |Store the tool of first invitation | |Check if dialog Confirm is not visible on page | |Click accept at the first invitation | |Check if dialog Confirm is visible on page | |Check if dialog Confirm has message|Are you sure you want to accept the invite for the following assessment?|
!3 TC 02.02.02 Click on Cancel, check if dialog Confirm is disappeard, check if the invitation is not accepted and not disappeard. |script | |Click cancel in dialog | |Check if dialog Confirm is not visible on page | |Check if there are no accepted invitations | |Check first pending invitation with tool|$FIRSTINVITATION|is present|
!3 TC 02.02.03 Click on Accept and check if dialog Confirm has become visible with message: 'Are you sure you want to accept the invite for the following assessment?'. |script | |Click accept at the first invitation | |Check if dialog Confirm is visible on page | |Check if dialog Confirm has message|Are you sure you want to accept the invite for the following assessment?|
!3 TC 02.02.04 Click on Yes and check if the assessment is displayed below Your Upcoming Assessments. |script | |Click yes in dialog | |Check first assessment with tool|$FIRSTINVITATION|
!1 Fill in form - Assessment
!3 TC 02.03.01 Click on 'Send to Quality Control' and check if dialog Confirm has become visible with message: 'The assessment is not yet complete. Please ensure all mandatory attributes are completed - these are now marked in red.'. Further there will be checked if every tab has mandatory attributes to be filled in (except QC Log). |script | |click |Send to Quality Control | |Check if dialog Confirm is visible on page | |Check if dialog Confirm has message|The assessment is not yet complete. Please ensure all mandatory fields are completed - these are now marked in red.| |Click and wait |OK | |Check icons of tabs; |danger |success |danger |success |danger |danger |danger |danger |success |
!3 TC 02.03.02 Fill in the mandatory attributes on tab Assessment and check the red cover frames are not visible anymore. |script | |Check if the red cover frames on tab Assessment are visible | |Fill in the mandatory attributes on tab Assessment | |Fill in the observations on asesment proces | |Fill in the representatives present and positions | |Check if the red cover frames on tab Assessment are not visible|
!1 Fill in form - Organizational
!3 TC 02.04.01 Open tab 'Organizational' and check if the tab is selected. |script | |Open tab on app|Organization | |Wait until tab |Organization|is selected|
!3 TC 02.04.02 Fields for the organizational details until the stage of incorporation |script | |Fill in the mandatory attributes on tab Basic and Contact Details| |Fill in the mandatory attributes Add new Contacts | |Fill in the mandatory attributes on tab Incorporation |
!3 TC 02.04.03 Fill in the other attributes and check if the mandatory attributes on tab Assessment are filled in. |script | |Check totals; |1 |5 |9 |13 |17 |22 |26 |33 |37 | |Check icons of tabs;|success|success|danger|danger|danger|danger|danger|danger|danger| |Fill in the mandatory attributes Governance Structure |
!1 Fill in form - Value Chain
!3 TC 02.05.01 Open tab 'Value Chain' and check if the tab is selected. |script | |Open tab on app|Value Chain | |Wait until tab |Value Chain|is selected|
!3 TC 02.05.02 Open the dialog of 'Clients', fill in the mandatory attributes, save the new client and check if 'Clients' is completed. |script | |Open dialog of Clients and wait until it's visible|
!3 TC 02.05.03 Open the dialog of 'Service providers and Supporting organizations', fill in the mandatory attributes, save the new Service providers and Supporting organizations and check if 'Service providers and Supporting organizations' is completed. |script | |Open dialog of Service providers and Supporting organizations and wait until it's visible| |Assessor notes on value chain |
'''Attention!''' To keep the environment a bit 'clean', the data which has been created during the run will be removed again. Therefore, ${ALG_NAME} has to log in again. Unfortunately, assessees cannot currently be removed.
!3 Open the dashboard environment and log in |script | |Open url |${URL_DESKTOP} | |check |page title |!-SCOPE Dashboard-!| |Log in with; |${ALG_USERNAME}|${ALG_PASSWORD} | |Wait until page header is|Overall Dashboard | |Check if user |${ALG_NAME} |is logged in |
!3 Delete assessments |script | |click |Projects | |click |All Projects | |Wait until page header is|Projects List | |Search for |${nameProject} | |Check if value |${nameProject} |is displayed in column |1 | |double click |${nameProject} | |Wait until page header is|Project Detail | |Click and wait |xpath=//span[text()='Tool'] | |Click on button Actions | |click |xpath=//a[contains(@class,'btn-danger')] | |Check checkbox |Sjaak ${lastNameAssessor} |on | |Click and wait |Send Cancellation | |Click on button Actions | |click |Delete | |Click and wait |Yes, delete assessment | |Wait until changes are saved | |Check in row |1 |if value |SCOPE Basic SME|is not displayed in column|4| |Click on button Actions | |click |xpath=//a[contains(@class,'btn-danger')] | | |Check checkbox |Sjaak ${lastNameAssessor}|on | |Check checkbox |Sjaak ${lastNameFinancialSpecialist}|on | |Click and wait |Send Cancellation | |Click on button Actions | |click |Delete | |Click and wait |Yes, delete assessment | |Wait until changes are saved | |Check in row |1 |if value |SCOPE Pro |is not displayed in column|4|
!3 Delete project |script | |click |Delete project | |Click and wait |Yes, delete project | |Wait until page header is|Projects List | |Search for |${nameProject} | |Check if value |${nameProject}|is not displayed in column|1|
!3 Delete project lead |script | |click |Users | |click |All Users | |Wait until page header is|Users | |Search for |${eMailProjectLead} | |Click on button Actions | |click |Delete | |Click and wait |Yes | |Check if value |${eMailProjectLead}|is not displayed in column|5|
!3 Delete project member |script | |Wait until page header is|Users | |Search for |${eMailProjectMember} | |Click on button Actions | |click |Delete | |Click and wait |Yes | |Check if value |${eMailProjectMember}|is not displayed in column|5|
!3 Delete assessor |script | |Wait until page header is|Users | |Search for |${eMailAssessor} | |Click on button Actions | |click |Delete | |Click and wait |Yes | |Check if value |${eMailAssessor}|is not displayed in column|5|
!3 Delete quality reviewer |script | |Wait until page header is|Users | |Search for |${eMailQualityReviewer} | |Click on button Actions | |click |Delete | |Click and wait |Yes | |Check if value |${eMailQualityReviewer}|is not displayed in column|5|
!3 Delete financial specialist |script | |Wait until page header is|Users | |Search for |${eMailFinancialSpecialist} | |Click on button Actions | |click |Delete | |Click and wait |Yes | |Check if value |${eMailFinancialSpecialist}|is not displayed in column|5|
!3 Delete client |script | |click |Clients | |click |All Clients | |Wait until page header is|Clients | |Search for |${nameClient} | |click |Delete | |Click and wait |Yes | |Check if value |${nameClient}|is not displayed in column|1|
!3 Delete assessee '''Attention!''' It's not possible to delete Assessees at the moment: [[SSP-12][https://scopeinsight.atlassian.net/browse/SSP-12]]. |script | |click |Assessees | |click |All Assessees | |Wait until page header is|Assessees | |Search for |${nameAssessee} | |click |Delete | |Click and wait |Yes | |Check if value |${nameAssessee}|is not displayed in column|1|`
The project was working normally when I started it, only one day it started behaving strangely and running much slower. I went through everything in detail several times and I didn't come across any problem that I could notice. I would be grateful if you could help me solve my problem.
If I can help with some more information, I'm here.