rational rosa
功能概述
本文涵盖以下主题:
- IBM®Rational®Service Tester的SOA质量简介
- Rational Service Tester的关键特性
- 创建一个自动测试脚本
- 创建时间表
- 创建数据池
- 为IBM®WebSphere®MQ创建配置协议
- 添加自定义代码
- 验证点类型
- 可选元素
- 执行脚本
- 分析日志
Rational Service Tester简介
Rational Service Tester是一个自动化的Web服务测试和SOA测试工具。 它是一种功能和回归测试工具,可以对非GUI Web服务进行相对无代码的测试。 它还提供了一个客户端,可以与任何面向服务的体系结构(SOA)服务类型进行交互。 它同时支持Linux®和Microsoft®Windows®操作系统。
Rational Service Tester的关键特性
Rational Service Tester:
- 支持Web服务标准,包括SOAP(简单对象访问协议),HTTP和HTTPS(安全超文本传输协议),JMS(Java™消息服务),WS-Security(Web服务安全性)和UDDI(通用描述,发现和集成)
- 简化您创建,理解,修改和执行Web服务测试的方式
- 支持通过WebSphere MQ使用XML调用和SOAP
- 支持自定义安全API以确保消息完整性
- 生成定制报告
- 为测试人员提供自动化的无脚本测试功能,以进行非GUI Web服务的功能测试,回归测试和性能测试。
- 提供许多用于验证Web服务响应的选项
- 提供可视化测试编辑器,可提供高级和详细测试视图
创建一个自动测试脚本
要创建新的自动化脚本,首先需要创建一个Web Service项目。
- 选择File> New> Others> Test> Service Test Project ,如图1所示。单击Next 。
图1.创建一个服务测试项目
- 创建Web服务项目后,选择File> New> Others> Test> Web Service Test 。 以下一系列屏幕截图说明了创建完整测试的步骤。
- 选择要在其中创建测试套件的项目文件夹,在下图中选择了All_IMG ,然后提供测试文件名。 默认情况下,该名称显示为
New Service Test.testsuite
,在这里我们将其提供为New Serive Test.testsuite
,如图2所示。单击Next 。
图2.提供测试名称
- 接下来,选择您要创建的调用类型(在本示例中为XML call ),如图3所示。单击Next 。
图3.选择服务呼叫的类型
- 选择WebSphere MQ协议单选按钮。 从Protocol configuration下拉列表中选择Default MQ Protocol ,如图4所示。单击Next 。
图4.协议选择
在创建Web Service测试时,您需要为测试脚本配置协议。 您也可以使用现有的协议设置。 在MQ中,您有一个专用的WebSphere MQ侦听器进程,该进程监视请求队列中是否有传入消息,然后将它们路由到目标Web服务。 要配置MQ,您需要提供诸如队列管理器名称,队列名称和IP地址之类的信息(在这种情况下,IP地址为localhost,因为您正在使用端口转发)。
- 单击Finish,然后在Message选项卡下的源中添加XML消息,如图5所示。
- 更新节点名称会自动自动更新响应消息的名称,如果要为请求和响应XML消息提供用户特定的名称,请取消选中它。
图5.添加XML消息
- 单击更新返回按钮时,它将XML请求发送到协议配置中提到的队列。 收到响应后,系统会提示您选择显示内容格式。 您可以选择XML内容或文本内容 。 选择任何一种格式,然后单击OK ,如图6所示。
图6.更新返回并选择视图格式
- 图7显示了XML格式的响应消息。 这是服务返回的实际内容。 有3种不同的视图:
- 形成
- 树
- 资源
图7.在测试中添加响应消息
- 要将响应添加到Web服务测试中,请单击更新测试 。 将响应添加到测试中后,您可以向其中添加验证点。
创建时间表
计划表指定要运行的测试以及运行的顺序。 在此示例中,您将使用数据池中的前五个值创建一个计划,该计划将测试循环五次。
请按照以下步骤创建您的时间表:
- 选择文件>新建>性能计划 。
- 在“性能计划”对话框中,单击“ Web Service测试”项目以将其选择为父文件夹。
- 在“性能计划”对话框的“ 名称”字段中,输入名称:
Web Service Test Schedule
。 - 单击完成以创建计划。 您将看到计划的开始,如图8所示。
- 在“ 计划内容”部分的计划中 ,右键单击<User Group 1>(100%)分支(在本例中为Abhishek ),然后选择Add> Loop或Add> Test 。
- 在“ 计划元素详细信息”部分中,输入“迭代次数”。
- 如果要在循环下添加Test,请按照您的时间表,按照上述步骤创建一个循环,然后右键单击Loop( n个迭代)分支,然后选择Add> Test 。
图8.时间表
创建一个数据池
Rational Service Tester自动对生成的测试进行参数化,以便可以使用多组测试数据来验证同一Web服务调用。 其他数据存储在电子表格样式表中。 这样可以确保最大的代码覆盖范围,而无需修改任何测试代码。 像图9所示的数据池不过是一个表,该表包含您需要在XML消息中替换的数据。 数据池在运行期间为测试提供可变数据。
图9.数据池概述
这些是创建数据池所遵循的步骤:
- 选择测试套件。
- 单击“ 新建” ,然后选择“ 数据池” 。
- 定义数据池的名称和位置。
- 定义数据池的描述(即记录数和变量数)。
- 引用用于将信息从字段传递到变量。
引用用于将数据从XML消息传递到自定义代码中使用的变量。 替换用于在每次迭代中替换XML不同元素的值。 您可以从自定义代码(成功时将其突出显示为浅黄色)或从数据池(成功时,其将显示为深绿色,如图10所示)中替换值。
图10.从数据池和代码替换
为IBM WebSphere MQ创建配置协议
- 选择协议,并设置相应的配置选项。
- 选择要使用的协议类型(HTTP,JMS或WebSphere MQ)。
- 在这种情况下,使用的协议是WebSphere MQ,如图11所示。
- 对于“协议配置”,单击“ 新建”并提供必要的信息,例如队列管理器名称,队列名称,队列管理器地址,端口和客户端通道
- 单击确定 ,然后按下一步 。
- 可从IBM WebSphere MQ获得用于创建此协议的信息。
图11.协议配置设置
添加自定义代码
定制代码实现用于创建定制代码的ICustomCode2
接口和ITestExecutionServices
接口,以在测试日志中添加定制消息和定制验证点。 验证点将反映在总体进度判断中。 ICustomCode2
接口需要exec
方法的实现。 这是执行用户Java类的方法。 ITestExecutionServices
接口提供了一种机制,用户Java测试代码可通过该机制来访问支持服务(例如验证点,自定义消息,判决等)。
自定义代码的属性
- 定制代码将测试中的引用用作输入,然后将修改后的值返回给测试。
- 定制代码输入值位于引用或字段引用中。 这些参考必须包含在测试中。
- 在测试中,引用必须在它们影响的代码之前。 验证测试是否包含代码的自定义输入所需的参考。
代码清单
清单1的自定义代码显示了如何将参数传递给您的代码,例如。 在示例代码2命令行参数中,传递了MessageVRM和ListId 。 它还显示了DB2连接性和SQL查询的执行 。
字符串变量包含需要执行的完整SQL查询。 CustomDB2Connection类包含连接到数据库和执行SQL查询所需的所有方法。
在示例代码中,我们创建一个CustomDB2Connection类(db2c)的对象,并使用connect()连接到数据库,然后使用query(QUERY)执行SQL查询,该查询作为String参数传递给该方法。 query是方法名称,QUERY是传递给它的字符串参数。
SQL查询的结果存储在字符串变量numberOfRecords中。
清单1. DB2连接的示例代码
package test;
import java.sql.ResultSet;
import org.eclipse.hyades.test.common.event.VerdictEvent;
import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
public class VEH003_010_preEvidence implements
com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
public VEH003_010_preEvidence() {
}
/**
* For javadoc of ICustomCode2 and ITestExecutionServices interfaces,
select 'Help Contents' in the
* Help menu and select 'Extending Rational Performance Tester
functionality' -> 'Extending test execution with custom code'
BY Abhishek*/
public String exec(ITestExecutionServices tes, String[] args) {
String MessageVRM = args[0];
String ListId=args[1];
String numberOfRecords=null;
String QUERY = "SELECT COUNT(*) FROM LRUCCORE.vehiclelistentry
WHERE VRM='"+MessageVRM+"' and vehiclelistid="+ListId+" and
Effectivetodatetime='2999-12-31 00:00:00.00000'";
tes.getTestLogManager().reportMessage(QUERY);
CustomDB2Connection db2c = new CustomDB2Connection
("IPAddress", "port no", "database", "userID", "Password");
ResultSet results;
try
{
db2c.connect();
results = db2c.query(QUERY);
// goto the last row (if more than one)
results.last();
numberOfRecords = results.getString(1);
可选元素
您可以在测试中使用一组可选元素来增强其功能:
- 您可以在测试中使用服务调用元素将请求发送到服务,这是XML消息。
- 在测试编辑器中,返回消息元素位于服务调用之后。 它显示服务返回的内容。
- 您可以通过单击call元素中的Update Return自动生成或更新消息返回的内容。
- 条件块根据参考值发布测试的各个部分。 该引用必须存在于测试中并且在条件块之前。
- 您可以将测试或计划的一部分定义为运行指定次数的循环。 循环可以是基于时间的,基于计数的或无限的。
- 您尚未在TFL项目中实现事务 ,因为事务基本上用于测试一组特定测试元素的性能。 查看测试结果时,可以查看有关已添加的任何事务的性能数据。
验证点类型
- 相等的验证点使您可以检查服务返回的内容是否与验证点中指定的内容完全匹配
- 包含验证点检查服务返回的部分内容是否与验证点中指定的内容匹配。 即使实际值是期望值的子字符串,它也会通过。
- 附件验证点使您可以验证是否随邮件返回一起传递了预期的附件。 当您希望响应消息中有任何附件时,此验证点很有用。 它使您能够检查Web服务消息返回的附件是否符合指定的条件。 当附件的所有标准都与验证点测试元素中指定的预期条件匹配时,此验证点将返回
Pass
状态。 如果任何条件不匹配,则验证点将返回Fail
状态。 - 使用查询验证点,可以检查XML Path语言查询返回的节点数是否与验证点中指定的预期节点数匹配。
要添加验证点,请右键单击并选择所需的类型,如图12所示。
图12.添加一个验证点
执行脚本
至此,您已经创建了测试,并已计划将其执行。 在大多数情况下,您的工作已经完成。 从这里开始,Rational Service Tester将启动并执行测试,并向您提供测试结果。
执行测试
执行测试非常简单。 只需按照以下步骤启动测试:
- 在“测试导航器”视图中,右键单击Web Service测试计划,然后选择运行方式>性能计划 。
- 在Rational Tester准备运行测试时,将显示“启动时间表”对话框。 接下来,您将开始在Web服务测试计划-Web服务性能报告视图中看到测试的实时结果。
- 在视图的“ 总体”选项卡中看到状态变为绿色时,测试完成,如图13所示。
图13.执行完成
分析测试结果:功能
您可以从功能测试或性能测试的角度分析测试结果。 从功能测试的角度来看,目标是确保Web服务针对给定的一组输入返回正确的结果。 测试日志是确保您收到正确结果的主要方法。 测试日志为您提供了有关Rational Service Tester和Web服务之间发送和接收的每条消息的详细信息。 分析结果:
- 在“性能测试运行”视图中,右键单击Web服务测试计划[时间戳信息],然后选择显示测试日志 。
- 测试日志包括两个选项卡: Overview和Events 。 日志将打开到“ 概述”页面,您将在此处查看通过或失败判定以及测试的计时信息。 您的日志应该类似于图14所示。
图14.日志
- 单击事件选项卡以查看更多详细信息。
- 展开Events树,使其看起来如图15所示。
图15.扩展的测试日志事件
你学到了什么
在本文中,您了解了IBM®Rational®ServiceTester的关键功能。 然后,我们了解了如何使用Rational Service Tester for SOA Quality使用IBM®WebSphere®MQ(消息队列)作为通信和数据池的协议来创建自动化测试脚本,该协议可用于测试各种数据的功能而无需更改自动化测试脚本。 本文还包括在自动脚本中使用自定义代码,并通过解释来演示其中的一部分。 它还包括各种验证点和可选元素,可用于扩大自动脚本的范围以及执行单个脚本或时间表。 在本文的后半部分,我们将学习如何分析日志。
rational rosa