Welcome!

Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Java IoT, Weblogic, Machine Learning , Recurring Revenue, Log Management

Java IoT: Article

An Introduction to Abbot

A Friendly JUnit Extension for GUI Testing

  • The script editor will be used to create the test cases. Costello, the script editor, can be started by:

    java -jar lib/abbot.jar

    Once the GUI is running, the first step is to create a new script (File->New Script). Each script has a launch line that specifies the method (containing the GUI) to be tested. The launch line is edited with the information that can launch the GUI. The launch information requires the method name, arguments for the method, class information, and the classpath (see Figure 2).

    method="main"
    args="[]"
    class="CelsiusConverter"
    classpath="src/demo"

    Note that the XML test script example has the same information in the launch tag.

    With the launch information in place, the GUI can be launched (Test->Launch). This will prepare the framework to record user actions. To record user actions, press F2 (Capture->All Actions). With this step we can record the first case, which inputs a positive number, and then press convert.

    Once the user interactions have been captured, we can move the actions out of the sequence block for better readability. With the script looking the way we want, it's now time to add an assertion. To do this, we'll use the Hierarchy tab to navigate to the GUI component. Upon selection of the GUI component, the name-value pair to be validated can be selected and the Assert Property = Value button will add the assertion (see Figure 3).

    The other two test cases can be created similarly to form a test suite. The test cases can run within the JUnit test harness utilizing either the command line or the GUI test runner. The junit.extensions.abbot.ScriptFixture class is subclassed to create the CelsiusConverterTest.

    public class CelsiusConverterTest
    extends ScriptFixture

    The junit.extensions.abbot.ScriptTestSuite class is used to autogenerate a suite based on test scripts matching a certain criteria. In this case, all scripts residing in a particular directory will be used. The test ScriptTestSuite class is subclassed from the junit.Framework.TestSuite class.

    public static Test suite() {
    return new ScriptTestSuite
    (CelsiusConverterTest.class,
    "src\demo\scripts\CelsiusConverter");
    }

    The main method of the CelsiusConverterTest class invokes the JUnit test runners.

    public static void main(String[] args){
    args = Log.init(args);
    String[] names = {
    CelsiusConverterTest.class.getName()
    };
    if (args.length == 1 &&
    args[0].equals("--gui"))
    junit.swingui.TestRunner.main(names);
    else
    junit.textui.TestRunner.main(names);
    }

    This approach facilitates the creation of a variety of user interaction scenarios that can be easily integrated with JUnit. Another interesting and handy feature is the ability to insert existing scripts into another script. Some high-level GUI tasks can be broken down into smaller tasks. In these cases, I've created scripts for the most granular tasks and then created different interaction scenarios by inserting the scripts for different tasks in a different order or by adding additional user interactions in between the tasks. Since the scripts are XML-based, they're very easy to read and they help in rapidly generating different scenarios.

  • More Stories By Satadip Dutta

    Satadip Dutta is a software architect at Hewlett-Packard (http://devresource.hp.com) and has been programming in Java since 1997. His areas of interest include distributed software architecture, Web services, and user interface design. Satadip holds an MS in Computer Science from Virginia Tech.

    Comments (7) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    Ashwath 01/18/05 02:34:16 AM EST

    I tried to run the code that u haven for 'GUI already exista' scenario. But it doen't work.. give me some eg.s

    tlroche 08/22/03 10:05:14 PM EDT

    "Abbot for SWT" (project name=abbotforswt) is an Eclipse plugin
    which seeks to extend Abbot ... for SWT (but you guessed :-) It is
    currently available only from the IIOSB (a "walled garden" version of
    SourceForge inaccessible outside IBM) @

    https://w3.opensource.ibm.com/projects/abbotforswt/

    (IIOSB residence is intended to be temporary. We are currently in IBM
    Open Source Steering Committee pre-review, and therefore hope to
    contribute our extensions back to Abbot sometime this millenium :-)
    For more detail, including

    * how abbotforswt extends j.a.Robot and Abbot

    * abbotforswt vs blackbox tools (e.g. RobotJ/XDE Tester)

    * related Eclipse 3.0 plan items

    see the (currently rather crude) abbotforswt homepage

    To demonstrate abbotforswt's feasibility, we have taken scenario 2
    from the JDJ article above, recoded its SUT (a dialog) in SWT, and
    designed and implemented an API targeting SWT equivalent to Abbot's
    existing API targeting AWT/Swing. For more details, see our release
    notes.

    Sound interesting? Try it out! However, first:

    <required type="legalese">

    If you are an IBMer and have NOT already completed your "OSPG
    training," please read the Open Source Participation Guidelines
    before you check out any code.

    </required>

    You have 2 installation options. Instructions are for Eclipse/
    WebSphere Studio users:

    0 Install the release zip. Goto our release page

    read the "IMPORTANT NOTICE", then follow the instructions in the
    release notes

    Note that you need not register for IIOSB to get the release, but we
    hope you will, because you're a fine human being. (Apologies for
    speciesism to all the fine non-human programmers out there :-)

    1 Install from CVS. This is a good first step toward becoming an
    abbotforswt contributor!

    - Run your development workbench (devbench) with either Target
    Platform pointing to a WSAD build (which is how I tested), or just
    import org.apache.xerces (should work, but not tested).

    - Create a new CVS repository location with

    host=cvs.opensource.ibm.com
    repository path=/cvs/abbotforswt
    user=anonymous
    no password
    connection type=pserver

    and check out HEAD/abbotforswt.

    - Browse to our release notes

    search or scroll to "run the demo"

    - Skip to step 4

    The demo can then be run in each of 3 ways, all of which are
    documented in the release notes:

    * using Test Collector in a launched WebSphere Studio build

    * using pde.junit to launch an Eclipse or WS build

    * using Eclipse's JUnit to launch just the UI

    tlroche 08/22/03 09:55:08 PM EDT

    "Abbot for SWT" (project name=abbotforswt) is an Eclipse plugin which seeks to extend Abbot ... for SWT (but you guessed :-) It is currently available only from the IIOSB (a "walled garden" version of SourceForge inaccessible outside IBM) @

    https://w3.opensource.ibm.com/projects/abbotforswt/

    (IIOSB residence is intended to be temporary. We are currently in IBM Open Source Steering Committee pre-review, and therefore hope to contribute our extensions back to Abbot sometime this millenium :-) For more detail, including

    * how abbotforswt extends j.a.Robot and Abbot

    * abbotforswt vs blackbox tools (e.g. RobotJ/XDE Tester)

    * related Eclipse 3.0 plan items

    see the (currently rather crude) abbotforswt homepage

    http://w3.opensource.ibm.com/~abbotforswt/

    To demonstrate abbotforswt's feasibility, we have taken scenario 2 from the JDJ article above, recoded its SUT (a dialog) in SWT, and designed and implemented an API targeting SWT equivalent to Abbot's existing API targeting AWT/Swing. For more details, see our release notes @

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    Sound interesting? Try it out! However, first:

    If you are an IBMer and have NOT already completed your "OSPG training," please read the Open Source Participation Guidelines

    http://ltc.linux.ibm.com/open_source/ospg.html

    before you check out any code.

    You have 2 installation options. Instructions are for Eclipse/ WebSphere Studio users:

    0 Install the release zip. Goto our release page

    http://w3.opensource.ibm.com/project/showfiles.php?group_id=1023

    read the "IMPORTANT NOTICE", then follow the instructions in the release notes

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    Note that you need not register for IIOSB to get the release, but we hope you will, because you're a fine human being. (Apologies for speciesism to all the fine non-human programmers

    http://www.newtechusa.com/PPI/pressroom.asp#higher

    out there :-)

    1 Install from CVS. This is a good first step toward becoming an abbotforswt contributor!

    - Run your development workbench (devbench) with either Target Platform pointing to a WSAD build (which is how I tested), or just import org.apache.xerces (should work, but not tested).

    - Create a new CVS repository location with

    host=cvs.opensource.ibm.com
    repository path=/cvs/abbotforswt
    user=anonymous
    no password
    connection type=pserver

    and check out HEAD/abbotforswt.

    - Browse to our release notes

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    search or scroll to "run the demo"

    - Skip to step 4

    The demo can then be run in each of 3 ways, all of which are documented in the release notes:

    * using Test Collector in a launched WebSphere Studio build

    * using pde.junit to launch an Eclipse or WS build

    * using Eclipse's JUnit to launch just the UI

    tlroche 08/22/03 09:51:39 PM EDT

    "Abbot for SWT" (project name=abbotforswt) is an Eclipse plugin which seeks to extend Abbot ... for SWT (but you guessed :-) It is currently available only from the IIOSB (a "walled garden" version of SourceForge inaccessible outside IBM) @

    https://w3.opensource.ibm.com/projects/abbotforswt/

    (IIOSB residence is intended to be temporary. We are currently in IBM Open Source Steering Committee pre-review, and therefore hope to contribute our extensions back to Abbot sometime this millenium :-) For more detail, including

    * how abbotforswt extends j.a.Robot and Abbot

    * abbotforswt vs blackbox tools (e.g. RobotJ/XDE Tester)

    * related Eclipse 3.0 plan items

    see the (currently rather crude) abbotforswt homepage

    http://w3.opensource.ibm.com/~abbotforswt/

    To demonstrate abbotforswt's feasibility, we have taken scenario 2 from the JDJ article above, recoded its SUT (a dialog) in SWT, and designed and implemented an API targeting SWT equivalent to Abbot's existing API targeting AWT/Swing. For more details, see our release notes @

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    Sound interesting? Try it out! However, first:

    If you are an IBMer and have NOT already completed your "OSPG training," please read the Open Source Participation Guidelines

    http://ltc.linux.ibm.com/open_source/ospg.html

    before you check out any code.

    You have 2 installation options. Instructions are for Eclipse/ WebSphere Studio users:

    0 Install the release zip. Goto our release page

    http://w3.opensource.ibm.com/project/showfiles.php?group_id=1023

    read the "IMPORTANT NOTICE", then follow the instructions in the release notes

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    Note that you need not register for IIOSB to get the release, but we hope you will, because you're a fine human being. (Apologies for speciesism to all the fine non-human programmers

    http://www.newtechusa.com/PPI/pressroom.asp#higher

    out there :-)

    1 Install from CVS. This is a good first step toward becoming an abbotforswt contributor!

    - Run your development workbench (devbench) with either Target Platform pointing to a WSAD build (which is how I tested), or just import org.apache.xerces (should work, but not tested).

    - Create a new CVS repository location with

    host=cvs.opensource.ibm.com
    repository path=/cvs/abbotforswt
    user=anonymous
    no password
    connection type=pserver

    and check out HEAD/abbotforswt.

    - Browse to our release notes

    http://w3.opensource.ibm.com/project/shownotes.php?release_id=597

    search or scroll to "run the demo"

    - Skip to step 4

    The demo can then be run in each of 3 ways, all of which are documented in the release notes:

    * using Test Collector in a launched WebSphere Studio build

    * using pde.junit to launch an Eclipse or WS build

    * using Eclipse's JUnit to launch just the UI

    Jeff 04/29/03 08:26:00 PM EDT

    I believe this is a forum in which comments need to be made about the article and its vaildity.

    The above messages should be in English and any concerns/comments should be made available for the benefit for all in the community

    Bhojohori Manna 04/29/03 06:00:00 AM EDT

    Chee chee, Ei rokom gala gali dile hobe.Dada koto bhalo article likheche.

    Utgandu 04/29/03 05:54:00 AM EDT

    Dada,ei jinis poisa diye keu porbe bhebechen apni?USa te theke apnio sobar moto boka patha hoye gechen .Apni ei jinista kotha theke chotha korechen?Ar apni ki GUI Master ke chenen???jobab chai,jobab dao.

    @ThingsExpo Stories
    When shopping for a new data processing platform for IoT solutions, many development teams want to be able to test-drive options before making a choice. Yet when evaluating an IoT solution, it’s simply not feasible to do so at scale with physical devices. Building a sensor simulator is the next best choice; however, generating a realistic simulation at very high TPS with ease of configurability is a formidable challenge. When dealing with multiple application or transport protocols, you would be...
    SYS-CON Events announced today that App2Cloud will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. App2Cloud is an online Platform, specializing in migrating legacy applications to any Cloud Providers (AWS, Azure, Google Cloud).
    IoT is at the core or many Digital Transformation initiatives with the goal of re-inventing a company's business model. We all agree that collecting relevant IoT data will result in massive amounts of data needing to be stored. However, with the rapid development of IoT devices and ongoing business model transformation, we are not able to predict the volume and growth of IoT data. And with the lack of IoT history, traditional methods of IT and infrastructure planning based on the past do not app...
    Internet-of-Things discussions can end up either going down the consumer gadget rabbit hole or focused on the sort of data logging that industrial manufacturers have been doing forever. However, in fact, companies today are already using IoT data both to optimize their operational technology and to improve the experience of customer interactions in novel ways. In his session at @ThingsExpo, Gordon Haff, Red Hat Technology Evangelist, shared examples from a wide range of industries – including en...
    To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. Jack Norris reviews best practices to show how companies develop, deploy, and dynamically update these applications and how this data-first...
    Intelligent Automation is now one of the key business imperatives for CIOs and CISOs impacting all areas of business today. In his session at 21st Cloud Expo, Brian Boeggeman, VP Alliances & Partnerships at Ayehu, will talk about how business value is created and delivered through intelligent automation to today’s enterprises. The open ecosystem platform approach toward Intelligent Automation that Ayehu delivers to the market is core to enabling the creation of the self-driving enterprise.
    Consumers increasingly expect their electronic "things" to be connected to smart phones, tablets and the Internet. When that thing happens to be a medical device, the risks and benefits of connectivity must be carefully weighed. Once the decision is made that connecting the device is beneficial, medical device manufacturers must design their products to maintain patient safety and prevent compromised personal health information in the face of cybersecurity threats. In his session at @ThingsExpo...
    "We're a cybersecurity firm that specializes in engineering security solutions both at the software and hardware level. Security cannot be an after-the-fact afterthought, which is what it's become," stated Richard Blech, Chief Executive Officer at Secure Channels, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
    SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
    Detecting internal user threats in the Big Data eco-system is challenging and cumbersome. Many organizations monitor internal usage of the Big Data eco-system using a set of alerts. This is not a scalable process given the increase in the number of alerts with the accelerating growth in data volume and user base. Organizations are increasingly leveraging machine learning to monitor only those data elements that are sensitive and critical, autonomously establish monitoring policies, and to detect...
    SYS-CON Events announced today that Massive Networks will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
    Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
    Because IoT devices are deployed in mission-critical environments more than ever before, it’s increasingly imperative they be truly smart. IoT sensors simply stockpiling data isn’t useful. IoT must be artificially and naturally intelligent in order to provide more value In his session at @ThingsExpo, John Crupi, Vice President and Engineering System Architect at Greenwave Systems, will discuss how IoT artificial intelligence (AI) can be carried out via edge analytics and machine learning techn...
    With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, will examine the regulations and provide insight on how it affects technology, challenges the established rules and will usher in new levels of diligence a...
    In the enterprise today, connected IoT devices are everywhere – both inside and outside corporate environments. The need to identify, manage, control and secure a quickly growing web of connections and outside devices is making the already challenging task of security even more important, and onerous. In his session at @ThingsExpo, Rich Boyer, CISO and Chief Architect for Security at NTT i3, discussed new ways of thinking and the approaches needed to address the emerging challenges of security i...
    SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
    An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics ...
    SYS-CON Events announced today that Datera will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera offers a radically new approach to data management, where innovative software makes data infrastructure invisible, elastic and able to perform at the highest level. It eliminates hardware lock-in and gives IT organizations the choice to source x86 server nodes, with business model option...
    With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, Cloud Expo and @ThingsExpo are two of the most important technology events of the year. Since its launch over eight years ago, Cloud Expo and @ThingsExpo have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, I provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading the...
    SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...