When using the RQM/RFT integration, you may run into a problem running RFT scripts from RQM when using Shared Location, which results in this error:
The script cannot be executed
You have this problem even though the RQM/RFT integration is set up correctly and the RFT script itself works fine.
RFT scripts run from RQM fail with the "The script cannot be executed" error, but the same scripts run from RFT itself work fine.
If you reconfigure the problem script to use Local instead of Shared Location, the script runs fine from RQM.
In the RQM adapter console, the RFT command used by RQM has a UNC or network path in the -datastore switch instead of a local path to a local temporary location.
This problem happens on machines that are missing a Microsoft VC++ Redistributable required by RFT's RQM adapter, which prevents a DLL file (rftrqmcomm.dll) from loading. The RQM adapter relies on rftrqmcomm.dll to get the temporary location where RQM copied the RFT scripts that were in the shared location. The -datastore switch of the RFT command used by RQM should never have a network path as its value -- if it does, that indicates a problem with the integration or the system hosting the RQM adapter.
How to determine whether you are having this problem
Enable debug logging for the RQM adapter. Then start the RQM adapter, reproduce the problem, and check the RFT command used by RQM -- if the -datastore switch has a network path, you might be having this problem. Proceed to the next step.
With the RQM adapter still running, start Process Explorer and use its Find command to search for rftrqmcomm.dll. If nothing is found, that indicates this DLL was not loaded by the RQM adapter, and that you are having this problem.
(If you cannot run Process Explorer but the test from #1 indicates you may be having this problem, go ahead and follow the steps to resolve the problem.)
Resolving this problem
The RQM adapter requires a new enough version of the 32-bit Microsoft Visual C++ 2005 Redistributable. This can be obtained here. Installing the missing redistributable will resolve this problem.
IBM Rational Functional Tester (RFT) is all about object recognition. If the graphical user interface (GUI) contains objects that Rational Functional Tester recognizes, you can record a sequence of actions. You can replay this sequence afterward.
This post wants to introduce you to object recognition in Rational Functional Tester.
The heart of object recognition in Rational Functional Tester is the object map. The object map is a graphical representation of the objects in your application under test that Rational Functional Tester encounters.
Through Windows hooks, Rational Functional Tester memorizes what actions you played in the GUI. Here, a hook means a mechanism that works between the keyboard or mouse and the GUI object.
Let’s say, when you click an object, information about that object flows from your video chip to the memory of Rational Functional Tester. During recording, Rational Functional Tester stores the information that the hook gathered.
For more information about hooks, see the following document on Microsoft.com.
When you finished recording, Rational Functional Tester puts the information about the objects into a kind of table. This table shows the objects of your application in a parent-child view. We call this table the object map.
With this object map, you can manipulate the way Rational Functional Tester recognizes the objects in your application under test. In this way, you can fine-tune your script to play back more easily, for example.
Roughly, the object map contains the following information about the objects that you touched during recording: administrative properties, recognition properties.
The object map displays the name that the developer gave to the object.
The name that you in the application’s graphical interface.
If you look at the picture, the domain is the first information that the object map reports about an object. In this example, we’re talking about a Java application. Therefore, the domain is Java. If the application runs in a browser, the object map would say HTML. The domain must match with the type of application under test.
These values are the properties that the recorder collects. These properties make the object unique. Therefore, when you run the script, Rational Functional Tester recognizes the object without ambiguity.
The recorder also assigns a weight. The weight says how important a property is for recognition. If you want, you can change the weight of any recognition property. In this way, you decide yourself what property is important for recognition.
In the sample application Classics Java, you can see the following properties of the Place Order button.
Unique ID: 1.3kaXiXo9H95:AQpC:Pyg70l9:8WW.
You can also see that the most important properties for recognition are the class name, accessible name, and name.
What to do with the object map
In the Rational Functional Tester Script Explorer, you see two kinds of test objects. You see an icon with caption Private Test Object Map. As the name “private” says, these objects belong only to that script that you recorded.
You can also make an object map that you can share with other scripts. With such a shared object map, you can change the object properties in a single place instead of all the private object maps. To create a test object map:
Right-click your project > Add Test Object Map.
When you right-click an object in the object map, you see a set of action that you can apply to the object. The most important are the following items.
Highlight test object
Insert test object
Highlight recognized objects
If Rational Functional Tester recognizes an object properly, you can highlight that object through the object map. Watch the video to see how that looks like.
Insert test object
If your application has an object that you didn’t record, you can still add these objects to the object map. Now, Rational Functional Tester can recognize the object when you run a script where the object does play a role.
Is there a better way? find() method
Sometimes, the object map is not an option. Sometimes manipulations on the object map are too tedious. Sometimes, the object map doesn’t contain an object that you want to play back. Then, the find() method is the way to go.
You can start with the class of RootTestObject. This class gives you access to your application. So to say, RootTestObject opens the objects of your application under test.
Let’s look at the syntax first. I show an example later.
public TestObject find(Subitem properties, boolean mappableOnly
For Subitem, you can use the following items.
A name or value pair that represents a TestObject property.
Contains properties that match with the direct child of the parent TestObject.
Contains properties that match with children or objects under the children of the parent TestObject.
Specifies a sequential properties list that match with atList.
public TestObject find(Subitem properties, boolean mappableOnly)
//Define window and find Place Order button RootTestObject root = RootTestObject.getRootTestObject(); TestObject matchingObj = root.find(atProperty("name", "placeOrder"));
The video shows how you can click the button Place Order in the sample application through the find() method. The find method is a different way to a click from a click through recording. In the video, you can watch the following steps.
Open the application under test.
Create an empty script.
Open the empty object map.
Click Insert Objects … to populate the object map.
Drag the object finder, the hand, to the caption bar of the application. This action casts a red rectangle around the entire screen of the application.
Select Include all available objects on this window. Then, click Finish.
Locate the Place Order button in the object map. Then, click Save.
Insert the following code into the script. This code makes the objects available in the application window.
Rational Functional Tester does not support custom objects.
When something is wrong with the object recognition, you see that the object map either doesn’t list the object and the Test Object Inspector doesn’t see the object. Also, when you see Win.GenericProxy or HTML.Generic.Proxy in the object map, you are dealing with a custom object. When you play back the script, you notice. For example, you get an ObjectNotFoundException.
From my experience, I would first check whether Rational Functional Tester recognizes the objects in the right kind of application. In other words, what domain the object map assigns to the objects. For example, the object map must say HTML for objects in a web browser.
If the domain is the right domain, you can see whether you can highlight the object through the object map. See the video in this post.
What to do with objects not in the object map
With the find method, you can also try to discover an object that Rational Functional Tester recognizes but doesn’t put in the object map. You can see these objects through the Test Object Inspector.
If you set the Test Object Inspector in the Options menu to not hiding objects that are not mapped. If you want to find objects that are absent in the object map, use the mappableOnly parameter. Now, you say that the Boolean value is false.
Object recognition is an important condition for Rational Functional Tester to work. A central role in the object recognition is the object map. You can manipulate the object map or use the find method.
I hope that I explained how the object map works and what you can do to improve object recognition.
If you’d like to share your experiences with object recognition in Rational Functional Tester, leave a comment here or follow me on Twitter.
I'm excited to share a couple more changes with you regarding the Rational Twitter handle and YouTube channel, respectively. These changes will provide you with powerful support content for IBM Cloud Technical Support.
Starting on Monday, November, 14, 2016 our Twitter account/handle @rationalsupport will begin tweeting content from @IBM_CTS. We will leave @rationalsupport up with a pointer to @IBM_CTS for a bit so that you can follow the new handle.
The second change we'll make on November 14th is to begin posting new support videos on the IBMSupportTV channel (https://www.youtube.com/user/WebSphereEducation). Currently, we have 131 videos out on the Rational YouTube channel and those will continue to be available on that channel until they are all migrated to the IBM SupportTV channel. For this change, you will need to subscribe to the IBMSupportTV YouTube channel to continue to receive updates.
@IBM_CTS (Cloud Technical Support) is who we are and our support social channels will reflect that, in the robust content we will continue to provide. We're excited for these changes! Please let us know if you have questions by commenting on this blog or reaching out to us on any of our channels. We look forward to continue serving you up the most relevant technical content to make you successful.
useful particularly it's split string function. It's easy to use, just paste the text to be split, the character to split on, and press the Split button
The above tools are the ones I just happened to find a while back and used them. They work so I continue to use them. For each of these tools you can find other sites that do the same functions.
By using these online tools almost any POST content or response data can be decoded and formatted to make it easy to read which means easy to work with when doing data correlation in RPT.
Sometimes a combination of these tools needed to be used in order to format the text, example it has to be URL decoded first then formatted. With the three basic tools above I found that almost any text I come across when working the RPT can be formatted into a human readable format.
I find them valuable and a great time saver when doing manual data correlation.
If you haven't seen the 60 minutes segment where Watson is highlighted, you should really check it out. I have posted the link below. Do you remember when IBM Watson competed on Jeopardy back in 2011? Watson proved that it was able to process large amounts of data to find the correct answer. Today, Watson is partnering with Universities and Hospitals to try to make a positive impact on the medical field.
Why is artificial intelligence such a hot topic? Well, some would argue that it has the potential to change the narrative for many industries. For example, it has the potential to be essential in helping to diagnose diseases and help doctors make more informed decisions. To be more specific, Watson can read million books per second. This is extremely powerful and can deliver important information faster than a human can.
InterConnect 2017 will be March 19-23 at the MGM Grand & Mandalay Bay, Las Vegas NV. Don't miss the opportunity to experience hands-on learning and industry leaders discuss Bluemix & Softlayer, Hybrid, Internet of Things, Cloud for Industries, and Watson.
If you have best practices or experienced implementation insights, you have the opportunity to share your industry story. Click the link below to submit your abstract proposal to be a speaker. If your abstract is selected, you will be eligible to receive a full conference pass (value $2,295). In today's world, this type of crowdsourcing can be beneficial to organizations to learn how peers are succeeding in these ever-changing times.
Rational Test Workbench 9.0.1 is available! Find the related download links below.
Here are a few capabilities in this new version:
1. Integration with IBM z/OS Connect
2. Support for Channels and Containers in CICS Distributed Program Link
3. Improvements in message schema handling to improve project portability
Good news! The ClearCase and ClearQuest patches have been posted to Fix Central and are now available for download. The associated Installation Manager update sites are also "live".
The 22.214.171.124, 126.96.36.199, and 188.8.131.52 download pages are available from http://www-01.ibm.com/software/rational/support/ and their URLs are listed below.
For IBM Rational Functional Tester, you need to be an admin user under Windows or sudo user under Linux. The reason is simple: Rational Functional Tester is a tool that is designed for usage under an admin account. Also, the verification and validation of Rational Functional Tester at IBM happens under an administrative account.
However, in the real world, situations arise where you suspect security breaches when you grant users administrative rights. Think of banks or other financial institutions where names with corresponding amounts of money are stored in the same table. This highly confidential information must not come into wrong hands. The fewer people have access, the more secure this information.
Nothing to write home about Broadly speaking, you do the following things with Rational Functional Tester.
Except for the latter action, Rational Functional Tester writes data into files outside your user folder. For installation, it's quite obvious that you need to have admin rights. After installation, you prepare the testing environment first before you test your applications under test.
To configure your applications for testing, you need to write into files. For example, to prepare Internet Explorer for testing, you need to enable Internet Explorer and the Java runtime environment (JRE). To perform these tasks, you write into files that are outside your user folders. Then, an administrative account is necessary.
One of the files you need to write is the following configuration file in Windows.
To run tests, Rational Functional Tester needs to run various processes and writes in folders outside the user folder. In one case, the Rational Functional Tester team got an error message that cmd.exe was necessary to run a script. After the system administrator granted permission, the script suddenly ran and completed.
You also need permission to the SDP\configuration\org.eclispe.osgi folder, a subfolder under the Program Files folder. During script run, Rational Functional Tester writes into this folder.
A few years ago an organization that executes social laws in a major European country contacted me to ask how to run Rational Functional Tester under a normal-user account. The reason was obvious: privacy laws prescribe secrecy about a person' s benefit. For example, it is nobody's business that person x got so much unemployment benefit for this period.
The Rational Functional Tester development gave directions of what Rational Functional Tester expects in terms of write privileges in Windows. Then, I tried to implement their directions in the organization's desktop computer. We got Rational Functional Tester working under a user with fewer privileges than an administrator after trial and error. Luckily the organization's team had a network administrator who was willing and able to grant the permissions directly without tedious procedures.
The following document describes the technical details.
If your company or institution stores confidential information, you want to restrict access to this information. In any case, you store this secret information in highly secured file servers or database servers rather than in desktop computers. Rational Functional Tester as a desktop application runs on a desktop. As long a desktop user doesn't have access to your servers, the users cannot access the data that is entrusted to you. Suppose that you have a Windows domain. What would happen when you create a group of Rational Functional Tester users and put that group into the local administrators group? The latter group is only in the domain users group. Is this configuration secure?
In short, you can run Rational Functional Tester without full admin rights. You must make certain folders accessible for read and write and maybe other arrangements as well. However, it might work better if you work under admin right. KISS it, keep it simple & straightforward.
If you'd like to share your experiences with running Rational Functional Tester under a normal user, leave a comment here or follow me on Twitter @gunangwaney
If you have acquired software entitlements under IBM’s International Passport Advantage or Passport Advantage Express Agreements (collectively PA or PA Program), you may have the ability to run IBM software programs on Amazon EC2 and you will simply pay the normal Amazon EC2 hourly prices for On-demand or Reserved Instances You can get started via the following steps:
2. Install the desired IBM software with the appropriate number of licenses on your Amazon EC2 instance.
3. Run and manage your instance like any other Amazon EC2 instance.
4. If you need AWS support please reference AWS Support for your support options. If you need support on your IBM products installed on the Amazon EC2 platform IBM will continue to deliver support directly just as it does when those licenses are deployed on customers’ premises. To request support in this BYOSL scenario, contact IBM Technical Support or refer to the IBM Support Handbook. Make sure you are running versions of IBM software that are currently supported within IBM Support Portal. Refer to the documentation on the IBM Product support Lifecycle website or contact IBM.
You may be interested in finding the RFT version from many different machines -- for example, as part of an upgrade plan in an environment with a large number of users. You can automate this by having your script check Installation Manager's installed.xml file on the RFT workstation.
The installed.xml file will have this string if the workstation has RFT installed:
IBM® Rational® Functional Tester
The next line after the "IBM® Rational® Functional Tester" line will have the RFT version. Here are some sample lines for version 8.6.0.x of RFT:
Version 184.108.40.206 (8.6.7.RFTO8607-I20160302_1156)
Version 220.127.116.11 (8.6.3.RFTO8603-I20150303-1742)
Version 18.104.22.168 (8.6.6.RFTO8606-I20151126-1840)
Depending on how you want to do your check, you can pick a subset of the version string common to all 8.6 versions, for example:
We recommend verifying that installed.xml includes "IBM® Rational® Functional Tester" before doing the actual version check.
Other RFT versions have similar naming conventions as 8.6. For example:
IBM® Rational® Functional Tester
Version 22.214.171.124 (8.5.1003.RFTO8513-I20140506-1125)
IBM® Rational® Functional Tester
Version 126.96.36.199 (8.3.2.RFTO8302-I20130323-1322)
We recommend that you verify the string formatting in your local installed.xml files to verify your version of Installation Manager is displaying these strings as you expect them.
The location of the installed.xml file depends on your Installation Manager configuration. If you do not know its location, you can determine it from Installation Manager as follows:
Start Installation Manager.
Do Help > About Installation Manager.
Click the Installation Details button.
The value of cic.appDataLocation is the path where installed.xml is located.