Forum Discussion

dczerniawski's avatar
dczerniawski
Occasional Contributor
9 years ago

Can I test a JNLP app that does not run in a browser?

Does SmartBear have a way for me to test a JNLP app that launches on my desktop not in my browser?

  • AlexKaras's avatar
    AlexKaras
    9 years ago

    Hi,

     

    > I have never created tests [...]

    Just as a quick reference:) :

    -- TestComplete is a tool that makes it possible to do functional testing of the Windows/Android/iOS applications. Functional testing means that the tool supports tests that have some complex internal logic and may branch execution flow depending on the tested application state, used test data, OS or browser version, etc. TestComplete supports both Web and Java applications and can drive more than one application within the same test (which is not possible with selenium for example). So it is not a problem for TestComplete to do something on the web page, start execution of the standalone JNLP application, switch to this application and continue with it. TestComplete licenses three modules (Web, Desktop and Mobile) and you must have a license for the proper module to unleash the whole power of TestComplete for the application of the given type. In your case you will need a Web module to conveniently drive your Web application and Desktop module to drive Java application. TestComplete emulates how human end-user works (via mouse and keyboard control) and thus, like the read human, cannot drive more than one application at the moment. If you need to do concurrent testing of your (usually) backend application, for example, emulate as if more than one user tries to edit the same data at the same moment of time, TestComplete has a Network Suite functionality for this.

     

    -- LoadComplete is a load testing tool for the applications that exchange data via the http(s). The tool records traffic between client and server and than replays the recorded traffic as if it was generated by a big number of clients. Because the main goal for this type of testing is to check how the server application handles big traffic, the tool does not support complex test logic and customization. This must be done via the functional tests in TestComplete. For example, it is not the goal of load test to check that if you are trying to order more items than have left on the stock, then the server must respond with some message that no more items are available. Instead, the load test checks that the server responds to the request and does not fail. (Whether the data in the response are correct or not is usually irrelevant for the load test.)

     

    -- SoapUI/SoapUI NG is a tool that can query web service and process (check, validate) the returned response. TestComplete supports testing of not complex Soap web services likewise LoadComplete do. But SoapUI supports much wider range of web service technologies. SoapUI, like TestComplete, is primarily a functional testing tool and if you need to load test your web service, then you must combine your SoapUI tests with LoadUI / LoadUI NG.

     

    -- LoadUI / LoadUI NG is a tool that can generate load for the web service using SoapUI/SoapUI NG functional tests.

     

    Summarizing: if the only thing that you need is to drive your web application, start standalone JNLP application and continue with this application, the only thing that you will need is TestComplete with Web and Desktop modules.

  • Have you tried and it doesn't work?

     

    JNLP is part if JRE as I understand it. And TC supports Java JRE's. Which would imply that it should work?

     

    But it's not something I've ever tried ...

     

    Also this: https://support.smartbear.com/viewarticle/70797/

     

    Says: "If you are testing a Java Web Start application embedded into a web page"

     

    With the "If" implying to me that they can also be tested outwith the browser?

    • dczerniawski's avatar
      dczerniawski
      Occasional Contributor

      I have never created tests - and neither has my employer. SmartBear seems like what I want because we could integrate our tests with LoadComplete and that is the eventual goal. They have no load testing capability either.

       

      I just didn't want to start and find out I had chosen the wrong product. I figured it would be a little more difficult than testing a web page.

       

      So do I need to download anything in addition to TestComplete to get started? Do I need TestNG too?

      • AlexKaras's avatar
        AlexKaras
        Champion Level 3

        Hi,

         

        > I have never created tests [...]

        Just as a quick reference:) :

        -- TestComplete is a tool that makes it possible to do functional testing of the Windows/Android/iOS applications. Functional testing means that the tool supports tests that have some complex internal logic and may branch execution flow depending on the tested application state, used test data, OS or browser version, etc. TestComplete supports both Web and Java applications and can drive more than one application within the same test (which is not possible with selenium for example). So it is not a problem for TestComplete to do something on the web page, start execution of the standalone JNLP application, switch to this application and continue with it. TestComplete licenses three modules (Web, Desktop and Mobile) and you must have a license for the proper module to unleash the whole power of TestComplete for the application of the given type. In your case you will need a Web module to conveniently drive your Web application and Desktop module to drive Java application. TestComplete emulates how human end-user works (via mouse and keyboard control) and thus, like the read human, cannot drive more than one application at the moment. If you need to do concurrent testing of your (usually) backend application, for example, emulate as if more than one user tries to edit the same data at the same moment of time, TestComplete has a Network Suite functionality for this.

         

        -- LoadComplete is a load testing tool for the applications that exchange data via the http(s). The tool records traffic between client and server and than replays the recorded traffic as if it was generated by a big number of clients. Because the main goal for this type of testing is to check how the server application handles big traffic, the tool does not support complex test logic and customization. This must be done via the functional tests in TestComplete. For example, it is not the goal of load test to check that if you are trying to order more items than have left on the stock, then the server must respond with some message that no more items are available. Instead, the load test checks that the server responds to the request and does not fail. (Whether the data in the response are correct or not is usually irrelevant for the load test.)

         

        -- SoapUI/SoapUI NG is a tool that can query web service and process (check, validate) the returned response. TestComplete supports testing of not complex Soap web services likewise LoadComplete do. But SoapUI supports much wider range of web service technologies. SoapUI, like TestComplete, is primarily a functional testing tool and if you need to load test your web service, then you must combine your SoapUI tests with LoadUI / LoadUI NG.

         

        -- LoadUI / LoadUI NG is a tool that can generate load for the web service using SoapUI/SoapUI NG functional tests.

         

        Summarizing: if the only thing that you need is to drive your web application, start standalone JNLP application and continue with this application, the only thing that you will need is TestComplete with Web and Desktop modules.

  • AlexKaras's avatar
    AlexKaras
    Champion Level 3

    Hi,

     

    Yes, no showstopper for this scenario. Started JNLP is visible in TestComplete as one of the java processes and can be controlled like any other desktop application. You just need Web module in TestComplete to (conveniently) launch JNLP application from web page and Desktop module to deal with the java application.

    • dczerniawski's avatar
      dczerniawski
      Occasional Contributor

      Alex,

       

      I can launch the jnlp application via the browser but my objects are mapped to the browser process, not jp2launcher. jp2launcher isn't shown under Sys as a process. When I re-run a test it fails because it can't find the object, probably because it is trying to map it as a child of browser. I attached some screenshots if that helps.

       

      Any thoughts? I have the web and desktop module installed, but maybe I am not using the web module correctly?

      • dczerniawski's avatar
        dczerniawski
        Occasional Contributor

        If I launch it from the command line it still maps the objects to the browser. My SE has opened a case with support.