章节目录:
前言
Selenium Executor 工具能够结合使用 SOAtest 运行的各种其他类型的测试来执行 Selenium 测试。它通过向 JUnit 提供必要的 WebDriver 库,自动 Set-Up 测试所需的依赖。这使您能够设计和执行单一的测试场景,将 Selenium 测试编排为更广泛的事件序列的一部分,如 Set-Up 测试环境或测试数据,通过该工具运行单元测试,然后执行移动测试。
要求
- 支持 Selenium 2.44
- JUnit 3.8.x 或 JUnit 4
- 该工具需要 SOAtest 9.8.1 或更高版本
安装
可以通过 UI 或命令行安装该工具。
UI 安装
- 从主菜单中选择 Parasoft> 首选项。
- 选择 系统属性选项卡并点击添加 JARs。
- 找到 seleniumexecutor.jar 文件,然后点击应用。
- 重启 SOAtest。
命令行安装
将 seleniumexecutor.jar 文件添加到 settings.properties 文件中的 system.properties.classpath
属性。例如:
system.properties.classpath=<path to jar>/seleniumexecutor.jar
使用说明
Selenium Executor 工具可通过添加测试向导作为独立工具添加。测试的类文件夹或 .jar 文件必须包含您希望执行的 JUnit。其他依赖项可以包含在 jar/folder 中,添加到系统属性中,或者两者都包含。该工具首先查看 jar/folder,然后查看系统属性(如果需要的话)。
配置
该工具使用一个系统属性来提供 SOAtest 附带的 IEDriverServer.exe 和 chromedriver.exe 的路径。默认情况下,Selenium 会自动读取并使用该系统属性。另外,JUnit 测试也可以使用以下系统属性手动覆盖这些设置:
- webdriver.ie.driver - path to IEDriverServer.exe
- webdriver.chrome.driver - path to chromedriver.exe
您可以配置以下工具字段:
字段 | 说明 | 必须 |
---|---|---|
Jar or Class Folder | 指定测试的类文件夹或 jar 文件。 | 必须 |
Class | 指定要运行给定 jar 或类文件夹中的哪个 Selenium 类。 | 可选 |
方法 | 指定要运行的 Selenium 方法。如果要运行指定类中的所有测试方法,请将此项留空。 | 可选 |
Data | 指定要在 JUnit 中动态更改的数据值。该字段支持以分号分隔的键/值对,例如:
例如,可在 JUnit 源代码中使用 Java 的系统属性对象访问这些变量:
| 可选 |
示例
以下示例演示了如何配置工具以运行类中的所有测试方法:
查看结果
执行细节和结果将在控制台视图中报告。此外,任何检测到的测试失败都将在质量任务视图中报告:
从 JUnit 测试向控制台报告消息
在项目中导入 com.parasoft.api 包以访问 Application Context,这样 SOAtest 就能向控制台报告 Selenium 测试执行的信息:
Application.showMessage("this displays in the console");
在 Java 项目的 classpath 中添加 <SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<version>/root/com.parasoft.api.jar 以导入资源。
从 JUnit 测试中检索数据
您可以将 SOAtest 输出与 Selenium Executor 关联,这样就能从 Selenium JUnit 测试输出中获取数据,以便在其他测试中使用。您需要配置 Selenium 以指示希望存储哪些值,并将合适的工具与该执行器工具的 Selenium Output 关联。数据将以 XML 格式传递到附加的工具。例如,可以将数据发送给比较工具、XML 断言器或 XML 数据库工具。
配置 Junit Output
您的 JUnit 必须访问应用程序上下文,并将所需值存储在 custom_tool_junit_output
键下的标准 Java Map 中。Selenium Executor 工具将检查应用程序上下文中存储的映射,将其转换为传递给该工具“Selenium Output”输出的 XML。映射的键和值必须是字符串。
根据从 Selenium 测试向控制台报告消息的说明将 com.parasoft.api 包导入 Selenium 以访问 Application Context。
将数据发送到另一个工具
将 JUnit 测试的输出数据发送给处理 XML 数据的工具:
- 右键点击 Selenium Executor,然后选择添加输出。
- 选择接收输出的工具,然后点击完成。
示例
在本例中,我们将在 XML 数据库中存储账户余额,以便在后续测试中使用这些值。将执行以下程序:
- JUnit 测试构建了一个包含这些值的映射
- 将映射放入应用程序上下文中。
- 映射中的值将被转换成 XML 文档,传递给任何与 Selenium Output 关联的工具
public void testParabank() throws Exception { driver = new FirefoxDriver(); // Navigate and log in to page driver.get("http://parabank.parasoft.com"); driver.findElements(By.className("input")).get(0).sendKeys("john"); driver.findElements(By.className("input")).get(1).sendKeys("demo"); driver.findElements(By.className("login")).get(2).submit(); // Extract desired value String accountBalance = driver.findElementByXPath("//*[@id=\"accountTable\"]/tbody/tr[1]/td[2]").getText(); // Create map representing name-value pairs for XML Map<String, String> map = new HashMap<String, String>(); // Place extracted value into map map.put("accountBalance", accountBalance); // Get the Parasoft Scripting Context ScriptingContext context = Application.getContext(); // Place the map in the context with the custom_tool_junit_output context.put("custom_tool_junit_output", map); }
添加一个配置为用于运行此测试的 Selenium Executor 工具,并在 Selenium Output 中添加一个 XML 数据库工具。
指定提取并在其他工具中使用的值。映射的内容显示在 XML 文档中 <root>
元素下,该文档会传递给 Selenium Output 关联的工具。在本例中添加了一个值断言工具。
第三方内容
此插件包括来自第三方的资源项,如下所示。
- JUnit (Eclipse Public License 1.0)
更多许可证详情可在该插件的 licenses 文件夹中获得。