本主题介绍了 SOAtest 的 web 功能(跨浏览器)测试能力。章节目录:

Web 测试前言

由于自动测试存在误报和维护问题,企业往往会放弃自动 web 测试,选择手动测试。SOAtest 无需脚本即可隔离和测试各个应用程序组件,确保其在多个浏览器上的功能正常,从而消除自动 web 测试的障碍。动态数据可以用常数数据来剔除,以降低测试用例噪音。验证可以在页面对象级别上执行,也可在 HTTP 消息级别上执行。SOAtest 还通过异步 HTTP 消息桩在预期和意外情况下验证客户端 JavaScript 引擎。

浏览器录制和跨浏览器执行

Web 测试的第一步是浏览器录制,其在浏览器录制和回放中进行了描述。

一旦创建完成,测试将按照执行功能测试中的描述执行。

扩展和重用 Web 场景

可以快速扩展录制的 web 场景来实现目标。以下示例是扩展和重用 web 场景的常见实践:

浏览器支持

支持使用以下浏览器进行回放:

  • Firefox
  • Google Chrome
  • Safari(仅限 MacOS)
  • 基于 Chromium 的 Edge 浏览器(更多信息,请参阅 Microsoft Edge Notes

Firefox 注意事项

  • Firefox 3 或更高版本中不支持回放允许浏览文件并上传的输入。
  • 如果 Firefox 浏览器正在进行自动更新(例如,更新已下载但尚未安装),则可能无法正确回放 web 场景。Virtualize 会启动 Firefox,Firefox 将打开一个对话框检查附加组件的兼容性,从而导致回放失败。如果发生这种情况,请在 Virtualize 之外启动 Firefox,以完成更新安装。一旦更新完成,就可以像往常一样回放 web 场景。
  • 仅限于 Linux:SOAtest 在 ~/snap/firefox/common/.parasoft/SOAtest/firefox-profile-root 为基于 Snap 的 Firefox 浏览器创建临时配置文件。如果 SOAtest 和/或 Firefox 没有正常关闭,您可能需要定期清理这些临时配置文件。

Chrome 注意事项

  • 当在 Linux 上指定 Chrome 可执行文件的路径时,请选择 google-chrome(例如,/opt/google/chrome/google-chrome)—not chrome。在 Windows 上,路径通常是 C:\Users\usernane\AppData\Local\Google\Chrome\Application\chrome.exe。在 Mac 上,路径通常是 /Applications/Google Chrome.app
  • 如果您刚刚录制了一个 web 场景,而最后一步的浏览器内容没有被捕获,那么您可以播放该场景来捕获该内容。注意,当关闭浏览器窗口停止录制时,就会发生这种情况。推荐的最佳实践是通过点击停止录制按钮(而不是关闭浏览器窗口)来停止录制。

  • 在 Chrome 上,自动生成异步请求测试只捕获来自 XMLHttpRequest 对象的请求。它不检测来自隐藏 IFrame 调用的异步请求。如有需要,您可以手动添加这样的异步请求测试。

  • 当用户对一个元素进行操作时,Chrome(与 Firefox 不同)不会检查其他帧,以确保定位器在帧之间是唯一的。因此,一个已录制的动作可能会在与录制时不同的帧中回放。如果遇到这种意外行为,请确定一个唯一的定位器并更改浏览器回放工具中使用的定位器。

  • 在某些情况下,在异步请求发生之前需要登录。Firefox 和 IE 将检测到这一点,测试套件将自动创建执行此登录的安装测试。然后,异步测试将使用通过登录创建的 cookie。Chrome 不支持这一点。对于 Chrome, SOAtest 可以生成异步请求测试,但是登录步骤需要手动设置。要么作为 Set-Up 测试,要么作为异步测试之前运行的测试套件工具。

  • Chrome 不支持对文件输入(允许浏览文件并上传文件的输入)进行录制和回放。
  • 当使用 Parasoft 本机引擎在 Mac 上录制或回放 Chrome 时,关闭 Chrome 会打开一个对话框,上面写着“Google Chrome wants to use your confidential information stored in ’Chrome Safe Storage’ in your keychain。Do you want to allow access to this item?”即使您选择“Always Allow”,这个对话框也会在每次 Chrome 启动和关闭时打开。若要防止每次打开此对话框:
    • 请打开 Applications> Utilities> Keychain Access
    • 控件,点击 Chrome Safe Storage,然后从快捷菜单中选择 Get Info
    • 切换到 Access Control,选择 Allowall applications to access this item,然后点击 Save Changes。您将需要输入管理员密码才能继续。

Microsoft Edge 注意事项

必须有您 Edge 版本可执行正确的 MicrosoftWebDriver。如果您收到“无法启动 Microsoft Edge”的错误消息,您可能需要下载驱动程序。更多信息,请访问 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

启用对基于 Chromium 的 Microsoft Edge 浏览器的支持

对在未附带以下工具的基于 Chromium Edge 浏览器上的回放,msedgedriver.exe WebDriver 很有必要 SOAtest 和 Virtualize。 可以通过以下网址下载驱动程序:

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

要启用对基于 Chromium 的 Edge 浏览器的支持,请将驱动程序保存到相应操作系统的目录中:

  • Windows:<SOATEST_INSTALL>\plugins\com.parasoft.ptest.libs.web_<version>\root\browsers\webdriver\edge\windows\x86
  • Linux:<SOATEST_INSTALL>\plugins\com.parasoft.ptest.libs.web_<version>\root\browsers\webdriver\edge\linux\x86_64
  • MacOS:<SOATEST_INSTALL>\plugins\com.parasoft.ptest.libs.web_<version>\root\browsers\webdriver\edge\mac\x86_64

在 Microsoft Edge 中对回放进行故障排除

当 SOAtest/Virtualize 进程以特权访问方式运行时,无法启动 Edge。采取以下行动来解决这个问题:

  1. 使用非管理员帐户或打开用户帐户控制通知的管理员帐户,以非特权进程的形式运行 SOAtest/Virtualize。
  2. 启用管理员用户的用户帐户控制通知:

    非 Windows 家庭版:

    1. 打开本地安全策略(secpol.msc),并在本地策略/安全选项下启用 User Account Control Admin Approval Mode for the Built-in Administrator account

    Windows 家庭版:

    1. 使用 regedit.exe 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    2. 如果不存在,则创建 DWORD 值“FilterAdministratorToken”
    3. 将“FilterAdministratorToken”的值设置为 1
     
  3. 如果在启动期间从计划的任务启动 SOAtest/Virtualize,请确保启用了 Run only when user is logged on 选项。


  • No labels