Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # # # # # # # #
- #
- # Reszletes infok a http://wiki/w/GSAutoTester/Data_driven_teszt_%C3%ADr%C3%A1sa wiki oldalon talalhatoak
- #
- # Ide kerul egy leiras, hogy mit csinal a teszt. Workflow teszt eseten nehany mondattal leirjuk a teszt lefutasat. Adatvezerelt
- # teszt eseten leirjuk az ismetlodest, es az adatvezerles modjat is. Bonyolultabb teszt eseten leirhatjuk a megertest segito
- # hatterinformaciokat is, de a tesztek aktuals problemait nem itt reszletezzuk.
- # Ha felsorolunk valamit, azt az alabbi formatumban tehetjuk meg:
- #
- # - Elso pont
- # - Masodik pont
- #
- # Felsorolas utan folytatodhat a teszt leirasa. Ekezetes karaktereket ne hasznaljunk!
- #
- # # # # # # # #
- use File::Spec::Functions;
- use Getopt::Long;
- BEGIN { @filePath = File::Spec::Functions::splitdir (__FILE__); }
- use lib catfile (@filePath[0..$#filePath - 1], '../../../../framework/lib');
- use strict;
- use warnings;
- use GS::TestDefaults;
- use GS::TestManager;
- use GS::SUT 'CurrentAC';
- use GS::SUT 'BIMcloud';
- use GS::v2019::Controls;
- use GS::Misc;
- use GS::v2019::GUI;
- use GS::v2019::AC::Main;
- use GS::v2019::ACCore;
- use GS::v2019::AC::TeamWork;
- use GS::Web::Page;
- use GS::BIMcloud::Server;
- use GS::BIMcloud::Web::PortalServer;
- use Test::BIMcloudWebUI;
- testInit ();
- eval{frontmost; goto start};
- initTestFiles ();
- step 1;
- command 'deletePrefsAndRegs';
- useGlobalBIMServerFolder ();
- deletePrefsAndRegs ();
- initTW();
- step 2;
- command 'Install BIMcloud Basic Manager and Server';
- setBIMServerMode ('free');
- installBIMCloudManager ();
- installBIMCloudServer (InstanceID=>"2");
- step 3;
- command 'Set up Environment';
- setupEnvironment();
- step 4;
- command "Process data file";
- runDataDrivenTest (); # read data file and call forEachData function for all of its elements
- step 5;
- command 'Close browser';
- WebClose ();
- step 6;
- command 'RemoveTeamwork Server';
- removeBIMCloudServer ();
- removeBIMCloudManager ();
- testEnd;
- #
- # This function is called for each element of data tile
- #
- sub setupEnvironment {
- subStep 1;
- command 'Stop BIMcloud Basic Manager and Server';
- stopBIMCloudManager ();
- stopBIMcloudServerService ();
- subStep 2;
- command 'Change db (db content: 15 pieces of user with differen permission)';
- changeBIMcloudManagerDB ();
- changeBIMcloudServerDB ();
- subStep 3;
- command 'Start BIMcloud Basic Manager and Server';
- startBIMCloudManager ();
- startBIMcloudServerService ();
- waitForPortalToRespond();
- subStep 4;
- command 'Open browser';
- WebOpen ("http://$hostname:$defaultPortalServerPort");
- subEnd;
- }
- sub forEachTestCase
- {
- my %params = @_;
- subStep 1;
- command 'Login with User';
- UIlogin ($params{username}, $params{password});
- subStep 2;
- command 'Select Projects Root';
- if (!UIselectProjectsRoot ()) {
- UIlogout ();
- return;
- } #csak akkor lepunk be az if agba, ha nem sikerult kiszelektalnunk az elemet, egyeb esetben lep tovabb a teszt a kovetkezo substepre
- #ROOT
- #NAVIGATOR
- subStep 3;
- command 'Create Project Folder';
- UIcreateProjectFolderFromNavigator ('.test--navigator-root', $params{username} . ' f1');
- UIcreateProjectFolderFromSummary ('.test--navigator-root');
- subStep 4;
- command 'Import Project';
- UIimportProjectFromNavigator ('.test--navigator-root', 'houston.BIMProject23', $params{username} . ' p1');
- subStep 5;
- command 'Import Library';
- UIimportLibraryFromNavigator ('.test--navigator-root', 'vanegykisgond.BIMLibrary', $params{username} . ' l1');
- ##SUMMARY
- #
- #subStep 6;
- #command 'Create Project Folder';
- # UIcreateProjectFolderFromSummary ('.test--navigator-root', $params{username} . ' f2');
- #
- #
- #subStep 7;
- #command 'Import Project';
- # UIimportProjectFromSummary ('.test--navigator-root', 'houston.BIMProject23', $params{username} . ' p2');
- #
- #
- #subStep 8;
- #command 'Import Library';
- # UIimportLibraryFromSummary ('.test--navigator-root', 'vanegykisgond.BIMLibrary', $params{username} . ' l2');
- ##PANELS
- #subStep 11;
- #command 'Lock Project';
- # UIlockProject ('.test--list-item-houston');
- #
- #subStep 12;
- #command 'Create Library Snapshot';
- # UImanualLibrarySnapshot ('.test--list-item-legacy_libraries_folder-archicad-library-23', 'Snapshot1');
- subStep 9;
- command 'Activities Search';
- UIactivitiesSearch ('.test--navigator-root', 'server');
- subStep 10;
- command 'Activities Filter';
- UIactivitiesFilter ('.test--navigator-root', '.test--filter-type .test--dropdown-item:nth-child(4)');
- #subStep 11;
- #command 'Export Activities';
- # UIexportActivities ();
- subStep 12;
- command 'Logout';
- UIlogout ();
- ####################
- #### FUGGVENYEK ####
- ####################
- sub UIlogout {
- WebClick('.test--section-header .test--dropdown-btn');
- WebClick('.test--item-logout');
- }
- sub UIlogin {
- my ($username, $password) = @_;
- WebClick('.test--input-username');
- WebSetValue('.test--input-username', $username);
- WebClick('.test--input-password');
- WebSetValue('.test--input-password', $password);
- WebBitmapCheck ('Login_window', '.login-content');
- WebClick('.test--btn-action');
- }
- sub UIselectProjectsRoot {
- WebWaitForVisible('.modules');
- if (WebIsVisible('.test--btn-project-manager')) {
- writeLog('Projects Root tile is visible for user');
- WebBitmapCheck ('Projects Root tile visible', '.modules');
- WebClick('.test--btn-project-manager');
- WebBitmapCheckNavigator ('Projects_Root_checked');
- return 1;
- } else {
- writeLog('Projects Root tile is not visible for user');
- WebBitmapCheck ('Projects Root tile not visible', '.modules');
- return 0; #ha egy teszteset erre futna, fgv hivasnal le kell kezelni, hogy ne probalkozzon tovabb az adott user erre epulo lepesekben
- }
- }
- sub UIselectUsersRoot {
- WebWaitForVisible('.modules');
- if (WebIsVisible('.test--btn-user-manager')) {
- writeLog('Users Root tile is visible for user');
- WebBitmapCheck ('Users Root tile visible', '.modules');
- WebClick('.test--btn-user-manager');
- WebBitmapCheckNavigator ('Users_Root_checked');
- return 1;
- } else {
- writeLog('Users Root tile is not visible for user');
- WebBitmapCheck ('Users Root tile not visible', '.modules');
- return 0; #ha egy teszteset erre futna, fgv hivasnal le kell kezelni, hogy ne probalkozzon tovabb az adott user erre epulo lepesekben
- }
- }
- sub UIselectServersRoot {
- WebWaitForVisible('.modules');
- if (WebIsVisible('.test--btn-server-manager')) {
- writeLog('Servers Root tile is visible for user');
- WebBitmapCheck ('Servers Root tile visible', '.modules');
- WebClick('.test--btn-server-manager');
- WebBitmapCheckNavigator ('Servers_Root_checked');
- return 1;
- } else {
- writeLog('Servers Root tile is not visible for user');
- WebBitmapCheck ('Servers Root tile not visible', '.modules');
- return 0; #ha egy teszteset erre futna, fgv hivasnal le kell kezelni, hogy ne probalkozzon tovabb az adott user erre epulo lepesekben
- }
- }
- sub UIcreateProjectFolderFromNavigator {
- my ($parent, $folderName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-add-asset')) {
- writeLog('Plus button is visible for user');
- WebBitmapCheckNavigator ('Plus button visible on Navigator');
- WebClick('.test--btn-add-asset'); # Click + sign
- WebFocus('.test--add-asset-wrap');
- if (WebIsVisible('.test--item-create-folder')) {
- writeLog('Create Project folder is visible for user');
- WebBitmapCheck ('Create Project folder visible in dropdown', '.add-asset--wrap .dropdown-base--content'); # +-ra megjeleno dropdown
- WebClick('.test--item-create-folder');
- if (defined $folderName) {
- UIhandleCreateProjectFolderDialog ($folderName); #ha folderName-mel hivjuk meg, letrehozza azt
- } else {
- UIcloseCreateProjectFolderDialog (); #ha folderName nelkul hivjuk meg, bezarja a dialogot
- }
- } else {
- writeLog('Create Project folder is not visible for user');
- WebBitmapCheck ('Create Project folder not visible in dropdown', '.add-asset--wrap .dropdown-base--content');
- }
- } else {
- writeLog('Plus button is not visible for user');
- WebBitmapCheckNavigator ('Plus button not visible on Navigator');
- }
- sub UIcreateProjectFolderFromSummary {
- my ($parent, $folderName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-create-folder')) {
- writeLog('Create Project folder is visible for user');
- WebBitmapCheckSummary ('Create Project folder visible on Summary');
- WebClick('.test--btn-create-folder'); # Create folder gombra kattint a Summary-n
- if (defined $folderName) {
- UIhandleCreateProjectFolderDialog ($folderName);
- } else {
- UIcloseCreateProjectFolderDialog ();
- }
- } else {
- writeLog('Create Project folder is not visible for user');
- WebBitmapCheckSummmary ('Create Project folder not visible on Summary');
- }
- }
- sub UIhandleCreateProjectFolderDialog {
- my ($folderName) = @_;
- WebWaitForVisible('.test--dialog-wrap');
- WebFocus('.test--input');
- WebBitmapCheckDialog ('Create Project Folder');
- WebSetValue('.test--input', $folderName);
- WebBitmapCheckDialog ($folderName . ' is written');
- WebClick('.test--btn-action');
- WebCheckToast ($folderName . ' has been created');
- WebBitmapCheckNavigator ($folderName . ' exists');
- WebClick('.test--navigator-root');
- }
- sub UIcloseCreateProjectFolderDialog {
- WebWaitForVisible('.test--dialog-wrap');
- WebBitmapCheckDialog ('Create Project Folder');
- WebClick('.test--btn-close-dialog');
- }
- sub UIimportProjectFromNavigator {
- my ($parent, $fileName, $importAsName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-add-asset')) {
- writeLog('Plus button is visible for user');
- WebBitmapCheckNavigator ('Plus button visible on Navigator');
- WebClick('.test--btn-add-asset'); # Click + sign
- WebFocus('.test--add-asset-wrap');
- if (WebIsVisible('.test--item-import')) {
- writeLog('Import is visible for user');
- WebBitmapCheck ('Import visible in dropdown', '.add-asset--wrap .dropdown-base--content'); # +-ra megjeleno dropdown
- WebClick('.test--item-import');
- UIhandleImportProjectDialog ($fileName, $importAsName);
- } else {
- writeLog('Import is not visible for user');
- WebBitmapCheck ('Import not visible in dropdown', '.add-asset--wrap .dropdown-base--content');
- }
- } else {
- writeLog('Plus button is not visible for user');
- WebBitmapCheckNavigator ('Plus button not visible on Navigator');
- }
- sub UIimportProjectFromSummary {
- my ($parent, $fileName, $importAsName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-import')) {
- writeLog('Import is visible for user');
- WebBitmapCheckSummary ('Import visible on Summary');
- WebClick('.test--btn-import'); # Import gombra kattint a Summary-n
- UIhandleImportProjectDialog ($fileName, $importAsName);
- } else {
- writeLog('Import is not visible for user');
- WebBitmapCheckSummmary ('Import not visible on Summary');
- }
- }
- sub UIhandleImportProjectDialog {
- my ($fileName, $importAsName) = @_;
- WebWaitForVisible('.test--dialog-wrap');
- WebSelectResourceImportFile (catfile("$workfolder", $fileName));
- WebClick('.test--input-resource-name');
- WebSetValue('.test--input-resource-name', $importAsName);
- WebClick('.test--btn-action');
- WebWaitForToastToDisappear (); #Importing fajlnev... sarga toast nem erdekes kulonosebben
- WebCheckToast ($fileName . ' imported'); # zold toast
- WebBitmapCheckNavigator ($fileName . ' exists');
- }
- sub UIimportLibraryFromNavigator {
- my ($parent, $fileName, $importAsName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-add-asset')) {
- writeLog('Plus button is visible for user');
- WebBitmapCheckNavigator ('Plus button visible on Navigator');
- WebClick('.test--btn-add-asset'); # Click + sign
- WebFocus('.test--add-asset-wrap');
- if (WebIsVisible('.test--item-import')) {
- writeLog('Import is visible for user');
- WebBitmapCheck ('Import visible in dropdown', '.add-asset--wrap .dropdown-base--content'); # +-ra megjeleno dropdown
- WebClick('.test--item-import');
- UIhandleImportLibraryDialog ($fileName, $importAsName);
- } else {
- writeLog('Import is not visible for user');
- WebBitmapCheck ('Import not visible in dropdown', '.add-asset--wrap .dropdown-base--content');
- }
- } else {
- writeLog('Plus button is not visible for user');
- WebBitmapCheckNavigator ('Plus button not visible on Navigator');
- }
- sub UIimportLibraryFromSummary {
- my ($parent, $fileName, $importAsName) = @_;
- WebClick($parent);
- if (WebIsVisible('.test--btn-import')) {
- writeLog('Import is visible for user');
- WebBitmapCheckSummary ('Import visible on Summary');
- WebClick('.test--btn-import'); # Import gombra kattint a Summary-n
- UIhandleImportLibraryDialog ($fileName, $importAsName);
- } else {
- writeLog('Import is not visible for user');
- WebBitmapCheckSummmary ('Import not visible on Summary');
- }
- }
- sub UIhandleImportLibraryDialog {
- my ($fileName, $importAsName) = @_;
- WebWaitForVisible('.test--dialog-wrap');
- WebSelectResourceImportFile (catfile("$workfolder", $fileName));
- WebClick('.test--input-resource-name');
- WebSetValue('.test--input-resource-name', $importAsName);
- WebClick('.test--btn-action');
- WebWaitForToast ();
- if (my $BIMServerMode == 'Free') {
- WebCheckToast ('In BIMcloud Basic, libraries can be uploaded to the Libraries folder only.');
- WebClick('.test--btn-close-dialog');
- WebBitmapCheckNavigator ($fileName . ' does not exist');
- } else {
- WebCheckToast ($fileName . ' imported');
- WebBitmapCheckNavigator ($fileName . ' exists');
- }
- }
- sub UIlockProject {
- my ($parent) = @_;
- WebClick($parent);
- WebBitmapCheckNavigator ($parent . ' is selected');
- WebClick('.test--btn-lock-unlock > .test--dropdown-btn');
- WebClick('.test--item-lock');
- WebWaitForToast ();
- WebCheckToast ('Saved');
- WebWaitForToastToDisappear ();
- WebBitmapCheckSummary ($parent . ' is locked');
- }
- sub UImanualLibrarySnapshot {
- my ($parent, $snapshotName) = @_;
- WebClick('.test--list-item-legacy_libraries_folder .test--btn-toggle-row');
- WebClick($parent);
- WebClick('.test--btn-tab-snapshots');
- WebClick('.test--btn-create');
- WebWaitForVisible('.test--dialog-wrap');
- WebFocus('.test--input-snapshot-name');
- WebSetValue('.test--input-snapshot-name', $snapshotName);
- WebClick('.test--btn-action');
- }
- sub UIactivitiesSearch {
- my ($parent, $searchItem) = @_;
- WebClick($parent);
- WebClick('.test--btn-tab-activities');
- WebWaitForVisible('.test--quicksearch-open');
- WebClick('.test--panel-activities-panel .test--quicksearch-open');
- WebWaitForVisible('.test--quicksearch-input');
- WebFocus('.test--panel-activities-panel .test--quicksearch-input');
- WebClick('.test--panel-activities-panel .test--quicksearch-input');
- WebSetValue('.test--panel-activities-panel .test--quicksearch-input', $searchItem);
- delay (3);
- WebBitmapCheckDetailes ($searchItem . ' is searched');
- WebClick('.test--panel-activities-panel .test--quicksearch-close');
- delay (3);
- }
- sub UIactivitiesSorting {
- my ($parent, $sortBy) = @_;
- WebClick($parent);
- WebClick ('.test--btn-tab-activities');
- WebClick('.test--panel-activities-panel');
- WebClick($sortBy); #type szerint sorbarendezzuk
- delay (3);
- WebBitmapCheckDetailes ('Sorted by type');
- }
- sub UIactivitiesFilter {
- my ($parent, $filter) = @_;
- WebClick($parent);
- WebClick('.test--filter-type .test--dropdown-btn'); #type szerint szurunk
- WebClick($filter); #Get Content-re
- WebBitmapCheckDetailes ('Filtered by Get Content');
- # delay (3);
- WebWaitWhileVisible('.test--panel-activities-panel');
- WebClick('.test--filter-type .test--dropdown-btn');
- WebClick('.test--filter-type .test--dropdown-item:nth-child(1)'); #kilepunk a filterezesbol
- }
- subEnd;
- }
- sub onTestCaseError {
- my %params = @_;
- UIlogout ();
- }
- #sub onTestCaseSuccess {
- # my %params = @_;
- #}
- #
- # Helper function to set up the test environment required by all testcases
- #
- ######### INTERNAL SUBS #########
- # Implement own subroutins this place
- #selectWebUIElement ('Projects Root\Segg\Segg');
- #
- #sub selectWebUIElement {
- # my ($path) = @_;
- #
- # my @elements = split /\\/, $path;
- #
- # for (my $i=0; $i < @elements; $i++) {
- # my $element;
- # $element = $elements[$i];
- #
- # if ($i = 0) {
- #
- # } elsif (0 < $i < @elements) {
- #
- # } else {
- #
- # }
- # }
- #}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement