章节目录:

前言

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 安装

  1. 从主菜单中选择 Parasoft> 首选项
  2. 选择 系统属性选项卡并点击添加 JARs
  3. 找到 seleniumexecutor.jar 文件,然后点击应用
  4. 重启 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 中动态更改的数据值。该字段支持以分号分隔的键/值对,例如:

firstName=John;lastName=Doe 

例如,可在 JUnit 源代码中使用 Java 的系统属性对象访问这些变量:

string lastName = System.getProperty("lastName") 

可选

示例

以下示例演示了如何配置工具以运行类中的所有测试方法:

查看结果

执行细节和结果将在控制台视图中报告。此外,任何检测到的测试失败都将在质量任务视图中报告:

从 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 数据的工具:

  1. 右键点击 Selenium Executor,然后选择添加输出
  2. 选择接收输出的工具,然后点击完成

示例

在本例中,我们将在 XML 数据库中存储账户余额,以便在后续测试中使用这些值。将执行以下程序:

  1. JUnit 测试构建了一个包含这些值的映射
  2. 将映射放入应用程序上下文中。
  3. 映射中的值将被转换成 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 关联的工具。在本例中添加了一个值断言工具。

第三方内容

此插件包括来自第三方的资源项,如下所示。

更多许可证详情可在该插件的 licenses 文件夹中获得。


  • No labels