IBM Maximo Test Automation Framework

 View Only

IBM Maximo Test Automation Framework 

Thu March 23, 2023 03:12 PM

The IBM Maximo Test Automation Framework now Available!

IBM Maximo Test Automation Framework 

As part of the IBM Maximo Application Suite, the IBM Maximo Test Automation Framework can be utilized to validate or re-validate Maximo Manage processes and capabilities for a given release based on approved and certified configurations from IBM. 

The IBM Maximo Test Automation Framework consists of a series of validation test scripts that encompass asset and work management business processes. These test scripts contain information that can be built upon to develop and document a manufacturer's policies and procedures according to the implementation and use of Maximo Manage application software.

These scripts can be used as quality assurance test cases to validate information systems. They will be updated for every Maximo Application Suite long term supported release.


The IBM Maximo Test Automation Framework is a Java framework based on the Selenium API. The IBM Maximo Test Automation Framework can be used to automate the testing of Manage applications in non-production environments.  The scripts have been developed to validate out of the box processes, but can be modified in order to align with any customer specific configurations of business processes.


Selenium is a free tool, widely used in the software development community, which can be easily downloaded and installed in an existing Eclipse environment. There are tutorials about how to install and configure your Eclipse/Selenium environment. 

The IBM Maximo Test Automation Framework is offered “AS IS", WITH NO WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTY OF TITLE, NON-INFRINGEMENT OR NON-INTERFERENCE AND THE IMPLIED WARRANTIES AND CONDITIONS OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


Any issues or questions about the IBM Maximo Test Automation Framework should be reported through this Community.

Find the IBM Maximo Test Automation Framework download on the early programs site here.

Statistics

0 Favorited
516 Views
0 Files
0 Shares
0 Downloads

Comments

22 hours ago

@Benny Larsen

Ha! Now I'm confused too! I was using the information you provided in both communities together, thinking you just moved the question over and it was the same problem.

So let's start from the beginning with a couple of questions to get started. 

  1. What is the version of Chrome you are using?
  2. What is the version of the Chromedriver you are using?
  3. What is the error that is thrown when trying to start Chrome?

With some of that information I can try to replicate the same thing if we can't figure out the problem without trying to run the same code.

22 hours ago

hmmm now i am confused...where do you see that i am using edge and not chrome? we use chrome because it works somtimes, and with sometimes i mean when i am able to download a webdriver version corresponding to our installed webbrowser. But now and then our organisation update the browser to a newer version, and if i then can't find a webdriver version suitable for the updated webbrowser - then my tests fail.

So then i tried to run with edge (but thoose questions was on the other community, för 7.6.1.3), and answer was that i am running wrong edge. So my question below is regarding Chrome.

23 hours ago

@Benny Larsen

It looks like you're using Edge, not Chrome because there was no Chrome version with the number below.

You need to get the driver for Edge for that version from here: https://msedgewebdriverstorage.z22.web.core.windows.net/?prefix=121.0.2277.128/ and then you'd need to set the paths for Edge the same way as the instructions for Chrome so it finds the browser and the driver.

yesterday

@Kristin Fernandes

Yes i know, but when we download manually from https://googlechromelabs.github.io/chrome-for-testing/

We sometimes doesn't find same version for webdriver that we have on our webbrowser, and then we have a missmatch, and we can't run our tests.

It's strange that we seems to be the only one that have this issue, or where is the framework downloading the webdriver? maybe from another place where it always find the correct one?

yesterday

@Benny Larsen

If there's a mismatch it's because the webdriver version and browser version are different. You need to make sure you get the driver version that matches the version of the browser being tested.

yesterday

@Fredrik Thörnblad @Kristin Fernandes

We asked same question in wrong community...so i think i am in right place now. ;-)

So the problem is: our organisation doesn't allow the framework to go online to find new files in that manner. So it will have to be a static solution with preinstalled browser/driver.

Response we received:

You would just need to add a couple of lines to framework/AutomationBaseTest to use a Chrome for Testing browser.

At line 309, after Logger.details("Starting chrome driver"); add the following two lines:

String chromeBin = AutomationUtility.getProperty("uitest.chrome.capabilitiesLocation","C:/Program Files (x86)/Google/Chrome/Application");

options.setBinary(chromeBin);

It still doesn't work...and i don't understand how? because you still have a missmatch between webdriver and installed webbrowser. Our organization controll the version we run on, we can't change that

Br

Benny

9 days ago

@MERCEDES KILLINGSWORTH

Unfortunately there is a known problem with downloading files from the Early Programs website at this time. I can post an update when I see that the problem has been resolved.

Thanks.

I'm unable to download the files from the early programs site. When I click on a link, it says "Checking File / Agreement" while spinning. Have the links been disabled or updated?

23 days ago

@John Hunt

What version of the framework are you using? I'm confused here as this forum is for MAS 8.10 but you're talking about being on 7.6.1.x. 

The framework for 7.6.1.x as well as the documentation that lists the versions of each of the files used at that time can be found here: https://community.ibm.com/community/user/asset-facilities/viewdocument/maximo-selenium-automation-framewor?CommunityKey=3d7261ae-48f7-481d-b675-a40eb407e0fd

There are newer versions of eclipse as well as jar files since the framework was released (it was released in 2018) but the documentation lists the ones it was using when it was released. I don't know if any of the framework files have been customized at all but you should be able to set up the V3 framework and then add any scripts you created to that project.

24 days ago

@Kristin Fernandes,


I am no longer able to run tests via eclipse.  All was working fine until I had to update the edgedriver and chromedriver (I have used both browsers in the past) and have not been able to get to work since.  Encounter multiple java errors.  I was finally able to get the errors cleared in the individual java files however now getting this latest one when trying to run a test using TestNG.  

org.testng.TestNGException: 
The factory method class framework.AutomationBaseTest.framework.AutomationBaseTest() threw an exception
    at org.testng.internal.FactoryMethod.invoke(FactoryMethod.java:103)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:150)
    at org.testng.TestRunner.initMethods(TestRunner.java:424)
    at org.testng.TestRunner.init(TestRunner.java:247)
    at org.testng.TestRunner.init(TestRunner.java:217)
    at org.testng.TestRunner.<init>(TestRunner.java:169)
    at org.testng.remote.support.RemoteTestNG6_9_10$1.newTestRunner(RemoteTestNG6_9_10.java:29)
    at org.testng.remote.support.RemoteTestNG6_9_10$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_9_10.java:65)
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:594)
    at org.testng.SuiteRunner.init(SuiteRunner.java:168)
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:117)
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1319)
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1306)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1160)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)
Caused by: java.lang.IllegalArgumentException: wrong number of arguments
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.testng.internal.FactoryMethod.invoke(FactoryMethod.java:95)
    ... 17 more
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="OracleJava7Fix"

I have tried updating the framework to version V.3  (as we are on Maximo v7.6.1.1 going to 7.6.1.3) then I have tried multiple versions of Selenium (2.47.1, 3.0 , 3.141.59. and 4.18.1) and different versions of TestNG (6.8, 6.8.5, 6.9.10, 6.11, 6.14.3).  I am not a programmer, I am on the business side and perform Development and Acceptance testing.   I really do not know what versions to use together to make it work.   Eclipse is Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500.  Any help , guidance or direct contact support would be greatly appreciated.

29 days ago

A note to anyone who is interested in downloading the automation project: I want to reiterate that the project is for MAS 8.10/Manage 8.6 only. 

Note: The error below is due to trying to use the framework on an unsupported MAS version.

Thank you.

29 days ago

Tested it for MAS 8.7 in TechZone, I am getting the following error: Failed to load Maximo Login Page for primary and backup server

Here are the Eclipse Logs:

TEST 1: Go run the bin file: /Users/..../eclipse-workspace/Automation/tests/testcases/work_order_tracking/CreateAndVerifyCorrectiveWorkOrder.bin

JavaScript warning: https://auth.inst1.apps.270006jx7k-59iu.cloud.techzone.ibm.com/login/static/js/npm.sdp.faf78995.chunk.js, line 0: Successfully compiled asm.js code (total compilation time 0ms)

console.warn: LoginRecipes: "Falling back to a synchronous message for: https://auth.inst1.apps.270006jx7k-59iu.cloud.techzone.ibm.com."

console.warn: LoginRecipes: "Falling back to a synchronous message for: https://auth.inst1.apps.270006jx7k-59iu.cloud.techzone.ibm.com."

1709145272370 Marionette WARN Ignoring event 'DOMContentLoaded' because document has an invalid readyState of 'complete'.

JavaScript warning: https://masdev-all.manage.inst1.apps.270006jx7k-59iu.cloud.techzone.ibm.com/maximo/oslc/graphite/manage-shell/static/js/npm.quagga-graphite.aecf2d68.chunk.js, line 0: Successfully compiled asm.js code (total compilation time 1ms)

1709145279703 Marionette WARN Ignoring event 'DOMContentLoaded' because document has an invalid readyState of 'complete'.

JavaScript warning: https://masdev-all.manage.inst1.apps.270006jx7k-59iu.cloud.techzone.ibm.com/maximo/oslc/graphite/manage-shell/static/js/npm.quagga-graphite.aecf2d68.chunk.js, line 0: Successfully compiled asm.js code (total compilation time 1ms)

java.lang.Exception: Failed to load Maximo Login Page for primary and backup server.

at framework.selenium.Browser.testFail(Browser.java:157)

at framework.selenium.TpaeBrowser.logInAs(TpaeBrowser.java:817)

at framework.selenium.TpaeBrowser.logInAs(TpaeBrowser.java:741)

at framework.selenium.Browser.logIn(Browser.java:487)

at tests.testdriver.TestDriver.processEvent(TestDriver.java:1644)

at tests.testdriver.TestDriver.processTestFileLineByLine(TestDriver.java:1385)

at tests.testdriver.TestDriver.CALLOUT(TestDriver.java:3147)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at tests.testdriver.TestDriver.processEvent(TestDriver.java:1660)

at tests.testdriver.TestDriver.processTestFileLineByLine(TestDriver.java:1385)

at tests.testdriver.TestDriver.Driver(TestDriver.java:515)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)

at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)

at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)

at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)

at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)

at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)

at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)

at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

at org.testng.TestRunner.privateRun(TestRunner.java:829)

at org.testng.TestRunner.run(TestRunner.java:602)

at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)

at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)

at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)

at org.testng.SuiteRunner.run(SuiteRunner.java:330)

at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)

at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)

at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)

at org.testng.TestNG.runSuites(TestNG.java:1099)

at org.testng.TestNG.run(TestNG.java:1067)

at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

1709145280825 RemoteAgent INFO Perform WebSocket upgrade for incoming connection from 127.0.0.1:55204

1709145280826 CDP WARN Invalid browser preferences for CDP. Set "fission.webContentIsolationStrategy"to 0 and "fission.bfcacheInParent" to false before Firefox starts.

1709145280840 Marionette INFO Stopped listening on port 55135

FAILED: tests.testdriver.TestDriver.Driver

java.lang.AssertionError: TestDriver.Driver(): Driver Failed

at org.testng.Assert.fail(Assert.java:110)

at framework.selenium.Browser.driverFail(Browser.java:200)

at tests.testdriver.TestDriver.Driver(TestDriver.java:805)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)

at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)

at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)

at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)

at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)

at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)

at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)

at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

at org.testng.TestRunner.privateRun(TestRunner.java:829)

at org.testng.TestRunner.run(TestRunner.java:602)

at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)

at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)

at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)

at org.testng.SuiteRunner.run(SuiteRunner.java:330)

at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)

at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)

at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)

at org.testng.TestNG.runSuites(TestNG.java:1099)

at org.testng.TestNG.run(TestNG.java:1067)

at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================

Default test

Tests run: 1, Failures: 1, Skips: 0

===============================================

Wed February 07, 2024 05:12 AM

@Kristin Fernandes,

Thanks for your help. Now the scripts are running successfully.

Mon January 29, 2024 04:14 PM

@Vijay Krishna Avvaru

The code you added below is not a script but is rather a callout and should be used inside of a script. The format for the code is in the callout (the line with {"event":"callout"....)

Looking at the contents of the callout, you need to already be in the Crews application with either a new crew record created, or another one on the screen. This callout adds an assigned labor record to a crew, and you need a crew record to be able to do that.

Fri January 26, 2024 04:38 AM

@Kristin Fernandes,

Actually we are able to Login into the application then the script is search for the mentioned element "mcb5164af_bg_button_addrow-pb" at the home page but as it is unable to find it so we are getting the provided error.

 

We are using the below script.

/* Add an Assigned Labor to crew.

1. Go to the Labor Assignments tab, if applicable.

2. Insert a new row in the Assigned Labor.

3. Select the position using Select Value.

4. Specify the required labor.

5. Save, if specified.

 

params:

ARGS1: Open tab?

ARGS2: Position

ARGS3: Labor

ARGS4: Save record? (boolean)

 

{"event":"callout","binfile":"./applications/crews/AddAssignedLaborToCrew.bin","params":"$ARGS1, $ARGS2, $ARGS3"}

*/

 

/* IBM Interaction Recorder output file */

 

{

  "interactions":    [

        {"event":"startTestStep","name":"Add assigned labor {$ARGS3} to crew"},

        {"event":"if","condition":"{$ARGS1} == true"},

          {"index":0,"event":"click","id":"m55a3ec52-tab_anchor","comment":"Click the Labor Assignments tab","eventType":"click"},

      {"index":1,"comment":"maintabchange : Labor Assignments"},

        {"event":"endif"},

        {"index":2,"event":"click","id":"mcb5164af_bg_button_addrow-pb","comment":"Click the New Row button in the Assigned Labor table","eventType":"click"},

        {"index":3,"event":"click","id":"m731ce203-img","comment":"Click the Select Value image for the Position field","eventType":"click"},

    {"index":4,"comment":"showdialog : Select Value"},

        {"index":5,"event":"typeover","id":"lookup_page1_tfrow_[C:0]_txt-tb","params":["$ARGS2"],"comment":"Type {$ARGS2} in the Position filter field","eventType":"change"},

        {"index":6,"event":"keystroke","id":"lookup_page1_tfrow_[C:0]_txt-tb","params":[13,"\r",false,false,false],"comment":"Press the ENTER key in the Position filter field","eventType":"keydown"},

        {"index":7,"event":"click","id":"lookup_page1_tdrow_[C:0]_ttxt-lb[R:0]","comment":"Click the link for record {$ARGS2}","eventType":"click"},

    {"index":8,"comment":"hidedialog : Select Value"},

        {"index":9,"event":"typeover","id":"mea15b3b9-tb","params":["{$ARGS3}"],"comment":"Type {$ARGS3} in the Labor field","eventType":"change"},

        {"event":"if","condition":"{$ARGS4} == true"},

          {"index":10,"event":"click","id":"toolactions_SAVE-tbb_image","comment":"Click the Save Crew toolbar button","eventType":"click"},

        {"event":"endif"}

  ]

}

Thanks.

Fri January 12, 2024 07:29 AM

@Vijay Krishna Avvaru

What script are you trying to run? Every script that was provided should be able to be run successfully. Once I know what script you are trying to run I should be able to better help. 

Thanks.

Fri January 12, 2024 06:10 AM

Hello @Kristin Fernandes,

When we trying to execute a test script from the Automation Testing Framework we are facing the below issue.

1.We have provided the necessary details in the TpaeTestFramework.properties and GraphiteTestFramework.properties.

2.We are trying to execute the script using TpaeTestDriver/GraphiteTestDriver.

3.We are able to login to the Maximo Application.

4.Then the script is searching for the "mcb5164af_bg_button_addrow-pb" and unable to get the element so we are getting the above error.

NOTE:

It is a provided framework along with the scripts which are recorded by the IBM Interaction recorder which is generating scripts in the JSON format which are being utilized by this framework.

We are trying to rerun the provided scripts to know the complete flow of the provided framework and how exactly the framework works.

The script is trying to create a new Crew Record but unable to create it as the above element is not found in the MAS 8.

We have not created any crew record before.

As information provided in the provided script the script begins with "Clicking on the New Crew icon" of the Crew Application. As we are trying to rerun the script the script is failing at the "Start Center" page or the Home page, it is not even navigating upto the Crew Application present in MAS8.

As this is a provided script we are not sure about this script running successfully before but as we are trying to run it we are not able to run the script.

As per the test case/test script the script begins with "Clicking on the New Crew icon" but as the execution is failing at the "Start Center" page only the test case is not getting started thus no report generated.

ERROR:

java.lang.Exception: No such element: mcb5164af_bg_button_addrow-pb
 
at framework.selenium.Browser.findElement(Browser.java:316)
 
at framework.selenium.TpaeBrowser.click(TpaeBrowser.java:213)
 
at tests.testdriver.TpaeTestDriver.CLICK(TpaeTestDriver.java:425)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
 
at tests.testdriver.TestDriver.processEvent(TestDriver.java:1660)
 
at tests.testdriver.TestDriver.processTestFileLineByLine(TestDriver.java:1385)
 
at tests.testdriver.TestDriver.Driver(TestDriver.java:515)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
 
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
 
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
 
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
 
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
 
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
 
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
 
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
 
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
 
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
 
at org.testng.TestRunner.privateRun(TestRunner.java:829)
 
at org.testng.TestRunner.run(TestRunner.java:602)
 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
 
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
 
at org.testng.TestNG.runSuites(TestNG.java:1099)
 
at org.testng.TestNG.run(TestNG.java:1067)
 
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
 
Dec 21, 2023 6:10:17 PM org.asynchttpclient.netty.handler.WebSocketHandler handleException
 
WARNING: onError
 
java.net.SocketException: Connection reset


Wed January 10, 2024 02:22 PM

you've provided information about the IBM Maximo Test Automation Framework, emphasizing its use in validating or re-validating Maximo Manage processes and capabilities. Below is a summary and breakdown of the key points:

Overview:

  1. Framework Purpose:

    • The IBM Maximo Test Automation Framework is part of the IBM Maximo Application Suite.
    • It is designed for validating or re-validating Maximo Manage processes and capabilities in a given release.
    • The validation is based on approved and certified configurations from IBM.
  2. Contents and Use:

    • The framework comprises validation test scripts focusing on asset and work management business processes.
    • These scripts provide a foundation for developing and documenting manufacturer policies and procedures related to Maximo Manage software implementation and use.
    • Quality assurance test cases are provided to validate information systems.
  3. Updates:

    • The test scripts are updated for every Maximo Application Suite long-term supported release.
  4. Technical Details:

    • The framework is a Java-based system built on the Selenium API, a widely used free tool in the software development community.
    • It facilitates the automation of testing for Maximo Manage applications in non-production environments.
    • Scripts are initially developed to validate out-of-the-box processes but can be customized to align with specific customer configurations.
  5. Availability:

    • Selenium, the underlying tool, can be easily downloaded and installed in an existing Eclipse environment.
    • Tutorials on installing and configuring the Eclipse/Selenium environment are available.
  6. Disclaimer:

    • The framework is offered "AS IS" with no warranty, including no warranty of title, non-infringement, or non-interference. It also disclaims implied warranties and conditions of merchantability and fitness for a particular purpose.
  7. Support and Reporting:

    • Issues or questions about the IBM Maximo Test Automation Framework are directed to the community for reporting.
  8. Download:

    • The framework can be found on the early programs site for download.

Note:

  • Selenium: Emphasized as a free tool, it's highlighted that Selenium is widely used in the software development community, and users can refer to tutorials for installation and configuration.

Wed January 03, 2024 09:53 AM

@Vijay Krishna Avvaru

If there's a failure such as no such element it's because it isn't available on the screen you're currently on, which you already know. I only see that button click further on in scripts after a crew record is created. Is the crew record created first? Is the entire script before this being run successfully? And lastly, do you have the report generated when the test is run? That would help to see if there is some other problem there.

Thank you!

Wed January 03, 2024 09:28 AM

Hello @Kristin Fernandes,

Actually we are able to Login into the application then the script is search for the mentioned element "mcb5164af_bg_button_addrow-pb" at the home page but as it is unable to find it so we are getting the below error.
 
We are working on a provided script.
 
 
ERROR:
 
java.lang.Exception: No such element: mcb5164af_bg_button_addrow-pb
 
at framework.selenium.Browser.findElement(Browser.java:316)
 
at framework.selenium.TpaeBrowser.click(TpaeBrowser.java:213)
 
at tests.testdriver.TpaeTestDriver.CLICK(TpaeTestDriver.java:425)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
 
at tests.testdriver.TestDriver.processEvent(TestDriver.java:1660)
 
at tests.testdriver.TestDriver.processTestFileLineByLine(TestDriver.java:1385)
 
at tests.testdriver.TestDriver.Driver(TestDriver.java:515)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
 
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
 
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
 
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
 
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
 
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)
 
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
 
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
 
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
 
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
 
at org.testng.TestRunner.privateRun(TestRunner.java:829)
 
at org.testng.TestRunner.run(TestRunner.java:602)
 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)
 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)
 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)
 
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
 
at org.testng.TestNG.runSuites(TestNG.java:1099)
 
at org.testng.TestNG.run(TestNG.java:1067)
 
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
 
Dec 21, 2023 6:10:17 PM org.asynchttpclient.netty.handler.WebSocketHandler handleException
 
WARNING: onError
 
java.net.SocketException: Connection reset

Tue January 02, 2024 01:15 PM

Vijay Krishna Avvaru:

Regarding being unable to login, can you provide any information as far as error received when logging in, an html report - anything will provide any debug information.

And the error below will happen if an error that it's trying to be found is not found. I'm confused how it's getting here if it's unable to login? Are you running a provided script or a new one that was created?

Tue January 02, 2024 01:09 PM

@Samvid Shivram  Based on the files provided, it looks like it's unable to log in? I saw that the system information shows that the framework is being used for Manage 8.7, but it's not supported on that version, it was released for 8.6. The login screens for the two releases are different and the framework will not work on 8.7 unless you modify the framework to support the different screen (there are other differences inside MAS between the two releases as well).

Thu December 21, 2023 08:03 AM

Hello All,

When we trying to execute a test script from the Automation Testing Framework we are facing the above issue.

1.We have provided the necessary details in the TpaeTestFramework.properties and GraphiteTestFramework.properties.

2.We are trying to execute the script using TpaeTestDriver/GraphiteTestDriver.

3.We are able to login to the Maximo Application.

4.Then the script is searching for the "mcb5164af_bg_button_addrow-pb" and unable to get the element so we are getting the above error.

Kindly help someone to resolve this issue (IBM Maximo Automation testing framework 8.10 version) or Any inputs?


ERROR:

java.lang.Exception: No such element: mcb5164af_bg_button_addrow-pb

  at framework.selenium.Browser.findElement(Browser.java:316)

  at framework.selenium.TpaeBrowser.click(TpaeBrowser.java:213)

  at tests.testdriver.TpaeTestDriver.CLICK(TpaeTestDriver.java:425)

  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.base/java.lang.reflect.Method.invoke(Method.java:568)

  at tests.testdriver.TestDriver.processEvent(TestDriver.java:1660)

  at tests.testdriver.TestDriver.processTestFileLineByLine(TestDriver.java:1385)

  at tests.testdriver.TestDriver.Driver(TestDriver.java:515)

  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.base/java.lang.reflect.Method.invoke(Method.java:568)

  at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)

  at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)

  at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)

  at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)

  at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:969)

  at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)

  at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)

  at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)

  at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

  at org.testng.TestRunner.privateRun(TestRunner.java:829)

  at org.testng.TestRunner.run(TestRunner.java:602)

  at org.testng.SuiteRunner.runTest(SuiteRunner.java:437)

  at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:431)

  at org.testng.SuiteRunner.privateRun(SuiteRunner.java:391)

  at org.testng.SuiteRunner.run(SuiteRunner.java:330)

  at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

  at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)

  at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)

  at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)

  at org.testng.TestNG.runSuites(TestNG.java:1099)

  at org.testng.TestNG.run(TestNG.java:1067)

  at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

  at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

  at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

Dec 21, 2023 6:10:17 PM org.asynchttpclient.netty.handler.WebSocketHandler handleException

WARNING: onError

java.net.SocketException: Connection reset


Tue December 19, 2023 01:55 AM

Hello,

Facing issues and unable to run a simple test using Maximo Test Automation Framework Setup. Details in the attached link. Any inputs would be appreciated. Click here for more details

Wed October 04, 2023 01:28 PM

@Morten Moeller There was an update made to the framework to fix this problem that was published on 9/25. Do you have that version of the framework? 

Fri September 29, 2023 09:58 AM

@Kirstin
Trying to get the GraphiteInspector working in the latest release of MTAF.
When executing your proposed script from a Graphite app, in MAS loaded in Chrome, I get 'inspector is not a constructor':

javascript: void (function() { 
  window.inspectorBaseUrl = window.inspectorBaseUrl || 'http://localhost/'; 
  var dojoUrl = 'https://ajax.googleapis.com/ajax/libs/dojo/1.10.2/dojo/dojo.js'; 
  var inspectorUrl = window.inspectorBaseUrl + '/GraphiteInspector.js'; 
	console.log("dojo: " + window.dojo);
	console.log("window.require: " + window.require);
  
  if (!window.dojo || !window.require) { 
    var xhttp = new XMLHttpRequest(); 
	var dojoSrc = dojoUrl; 
	console.log(xhttp.readyState.toString());
	console.log(xhttp.status.toString());
	
	xhttp.onreadystatechange = function() { 
	  if (xhttp.readyState === 4 && xhttp.status === 200) { 
	    var scr = document.createElement('script'); 
		scr.type = 'text/javascript'; 
		scr.src = dojoSrc; 
		window.djConfig = {afterOnLoad: true, require: ['dojo.behavior']}; 
		document.getElementsByTagName('head')[0].appendChild(scr); 
		window.setTimeout(function() { 
           window.require([inspectorUrl], function (inspector) { new inspector().startup( false, inspectorUrl); }); 
		}, 500); 
      } 
	}; 
	xhttp.open('GET', dojoSrc, true); 
    xhttp.send(); 
  } else { 
	
    window.require([inspectorUrl], function (inspector) { 
	  new inspector().startup(/*headless*/ false, inspector); }); 
  }  
})();


VM1067:5 dojo: [object Object]
VM1067:6 window.require: function(a,c,b){return La(a,c,b,0,q)}
VM1067:31 Uncaught TypeError: inspector is not a constructor
    at <anonymous>:31:4
    at ha (dojo.js.uncompressed.js:1134:35)
    at dojo.js.uncompressed.js:829:7
    at ia (dojo.js.uncompressed.js:1277:5)
    at La (dojo.js.uncompressed.js:828:6)
    at q (dojo.js.uncompressed.js:124:11)
    at <anonymous>:30:12
    at <anonymous>:33:3



A similar technique works for the ManageInspector but in your ManageInspector script, 'function (inspector)...' is invoked in the context of a window, and in the GraphiteInspector script it is not.

I have run out of ideas.... do you have any
Thanks in advance 

Tue July 04, 2023 05:18 AM

@Kim Woodbury in the documentation to set up the eclipse project there is a line that states: 

Add your database jar files to

Can you assist in where these are located based on a MAS installation in IBM Cloud?

Many Thanks

Steve

Mon July 03, 2023 01:33 PM

Hello I have a couple of question if I may -  I have a potential opp at a client who is looking to automate their regression testing going forward on Maximo Mas 8.10 and I am interested in MAS 8.10 Validation for Regulated Industries and the IBM Maximo Test Automation Framework v8.10

  1. Do you team support consultancy engagements to help run Proof of concepts on Test Automation Frameworks?
  2. The Tool as is - covers MAS CORE and MANAGE ? 
  3. Is it possible to talk to the Dev / user team for the tool ?

Thu June 22, 2023 03:27 PM

Hi Galina.

This framework is for Manage 8.6 only, it is not backwards compatible to other versions of Maximo. We do have a framework available for 7.6.1.x that was released a few years ago (has not been updated since then) that is available at this location: https://community.ibm.com/community/user/asset-facilities/viewdocument/maximo-selenium-automation-framewor?CommunityKey=7f1637b5-e23d-4694-a843-ab9c5b205d49&tab=librarydocuments

Fri June 16, 2023 10:06 AM

Hi Kim. 

Is it possible to test Maximo MAS instances which are configured to use SAML SSO? 

For example, by using the SAML Enhanced Client or Proxy(ECP) profile? 

I would prefer to avoid relying on LDAPS or java crypto/cryptox based authentication.

Thu June 15, 2023 01:38 PM

Thank you very much, Kristin, for your recommendation! Using the Developer's Tool console worked for us, and I was able to start the Recorder and create a test.

However, I can't  play it back. We are still on Maximo 7.6.1.3 and won't be moving to Maximo 8 for another year ( waiting for the funding). When I try to run my test back, it opens a new Chrome window, goes to the  Maximo URL , provided in the TpaeTestFramework.properties file, but doesn't fill the username and password fields.

TEST 1: Go run the bin file: C:/Loc/MXSeleniumWS/Automation/tests\./testcases/GLDemoTests\GLtest2delete.bin
org.openqa.selenium.JavascriptException: javascript error: Cannot read properties of null (reading 'scrollIntoView')
  (Session info: chrome=113.0.5672.127)
Build info: version: '4.9.1', revision: 'eb2032df7f'
System info: os.name: 'Windows Server 2019', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.2'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [2fa8d329cfd731dc118da541c1d8b15e, executeScript {script=arguments[0].scrollIntoView();, args=[null]}]

Is it because it's looking for the MAS/Maximo 8 login screens, but it finds Maximo 7.6 login screen instead? Is it possible to use the IBM Selenium framework with Maximo 7.6? Can you advise on which Java classes we need to modify to make it work ? 

Thank you!

Fri June 09, 2023 09:48 AM

Hi Galina.

The only other way to run the recorder without creating a bookmark would be to use the same code that would be used when creating a bookmark and executing it in the Console of Developer Tools in the browser. If you open Developer Tools and go to the Console tab, you should be able to enter it there and see the recorder window open. 

As for the Selenium Chrome plugin, that is not compatible with our framework, it is only compatible with Selenium's own framework. The framework we use is custom to Manage/Maximo, which is why we also developed our own recorder so the actions a user performs can be captured while automating scenarios.

Thank you.

Tue June 06, 2023 11:29 AM

Greetings!

Is there other  way to run the Recorder? All settings for the browsers are controlled by our organization and it doesn't allow to run Javascript  as a bookmark's URL. 

However, our organization  allows us  to install Selenium Chrome plugin. May this plugin be used to runs IBM test scripts or made to work IBM Selenium framework?

Please advise. 

Fri April 14, 2023 09:25 AM

Ken - 
You received a message letting you know that IBM export was performing an export search. Once the search is complete and you are cleared thru export, you will receive an email from DO_NOT_REPLY (IBM Export) letting you know you can now access the website.

Our system is hooked into the corporate Export Verification System (EVS).  What happens when a person enters in their IBMid, control is given to EVS.  EVS performs an automatic search on the EROid# and then checks the Denied Parties List (DPL).  If the auto search fails, then Export puts it in a manual search to try to clear them thru export.  The failures typically occurs when there is a very close hit on the DPL.  Exports says the search will take about 2 business days for them to complete the search.  However, we have been seeing them complete the search in 1 business day or less. ‘

Hope that helps. - 

Mon April 03, 2023 04:43 PM

Kim, Tried to follow the link you provided and got the attached error message. Is this content 'controlled' in some manner

image
Thought it was perhaps due to my being in Canada, however one of my US based colleagues got a similar error.

Thanks