This topic provides an overview of SOAtest’s web functional (cross-browser) testing capabilities. In this section:
Web Testing Introduction
Organizations often abandon automated web testing in favor of manual testing due to the false positives and maintenance issues associated with automated tests. SOAtest removes the barriers to automated web testing by isolating and testing individual application components for correct functionality across multiple browsers without requiring scripts. Dynamic data can be stubbed out with constant data to reduce test case noise. Validations can be performed at the page object level as well as the HTTP message level. SOAtest also verifies the client-side JavaScript engine under expected and unexpected conditions through asynchronous HTTP message stubbing.
Browser Recording and Cross-Browser Execution
The first step in web testing is browser recording, which is described in Browser Recording and Playback.
Once created, tests can be executed as described in Executing Functional Tests.
Extending and Reusing Web Scenarios
You can rapidly extend your recorded web scenarios to meet your goals. The following examples are common practices for extending and reusing web scenarios:
- Configuring cross-browser testing; see Configuring Browser Playback Options
- Configuring user actions; see Modifying User Actions Simulated by a Web Scenario
- Configuring validations; see Validating or Storing Values
- Configuring wait conditions; see Configuring Wait Conditions
- Configuring actions that occur before and after test execution; see Adding Set-Up and Tear-Down Tests.
- Configuring execution options, such as test sequence, test relationship, and test flow logic; see Configuring Test Suite Properties - Test Flow Logic, Variables, etc..
- End-to-end testing of scenarios that extend through web interfaces, backend services, ESBs, databases, and everything in between; see End-to-end Test Scenarios
- Load testing; see Load Test
- Penetration testing; see Penetration Testing
- Data-driven testing; see Parameterizing Tests with Data Sources, Variables, or Values from Other Tests.
- Using stubs and environments to configure a predictable and accessible test bed; see Configuring Testing in Different Environments.
Browser Support
The following browsers are supported for playback: Before using Internet Explorer, see Configuring Internet Explorer Settings. With Internet Explorer 9 or 10, we recommend using addEventListener() when registering event listeners. However, if you are using attachEvent(), which is an IE-specific event model, you will need to manually update HTMLUtil.js file located in the <INSTALL>\plugins\com.parasoft.ptest.libs.web_<VERSION>\root\browsers\ie\ directory as follows to force Virtualize to emulate JavaScript events using the IE-specific model: SOAtest Virtualize The first time that Internet Explorer 9 is launched, it will open a warning dialog that states "The Recorder Registrar is now ready to use." You need to click Enable to ensure that your web scenarios record and play back correctly. For best results, you should close and re-open the browser after clicking Enable. You must have the correct MicrosoftWebDriver executable for your version of Edge. If you receive an "Unable to launch Microsoft Edge" error message, you may need to download the driver. Visit https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver for additional information. The msedgedriver.exe WebDriver necessary for playback on the Chromium-based Edge browser is not shipped with SOAtest and Virtualize. You can download the driver from the following website: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ Save the driver to the <INSTALL>\plugins\com.parasoft.ptest.libs.web_<VERSION>\root\browsers\webdriver\edge\x86\ directory to enable support for the Chromium-based Edge browser. SOAtest/Virtualize cannot launch Edge when the SOAtest/Virtualize process is running with privileged access. Take the following actions to resolve this issue: Non-Windows Home edition: Windows Home edition:Firefox Notes
Internet Explorer Notes
"ext.HTMLUtil.preferLegacyEventModel = false;"
to"ext.HTMLUtil.preferLegacyEventModel = true;"
"_wk_HTMLUtil.preferLegacyEventModel = false;"
to"_wk_HTMLUtil.preferLegacyEventModel = true;"
Chrome Notes
google-chrome
(e.g. /opt/google/chrome/google-chrome
)—not chrome
. On Windows, the path is typically C:\Users\usernane\AppData\Local\Google\Chrome\Application\chrome.exe
. On Mac, it’s typically /Applications/Google Chrome.app
.XMLHttpRequest
object. It does not detect asynchronous requests from hidden IFrame
calls. If needed, you can add such asynchronous request tests manually.Microsoft Edge Notes
Enabling Support for the Chromium-based Microsoft Edge Browser
Troubleshooting Playback in Microsoft Edge