云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云数据库_网站建设框架_怎么买

小七 141 0

我正借着一个相当不错的年终机会来写另一个技术博客系列,这次是关于使用SAP Process Orchestration的Process Integration Test(PIT)工具时的最佳实践。

简介

运行集成场景测试时,有时需要对消息体或消息头进行某种操作或更改,以获得正确的测试结果。在这里,您或多或少有两种可能性:使用豁免/替换规则和/或消息预处理。而豁免和替换规则是在消息处理之后应用的,即在运行验证时,预处理规则在消息处理之前更改数据。对于某些用例,这两种方法可能需要一起应用。

当您事先预期测试消息将与预期结果不同时,超级淘客,您使用豁免和替换规则。例如,消息正文包含自动生成的唯一标识符或时间戳。或者你可能会因为不同的景观而产生偏差。进一步的验证问题以及如何缓解这些问题的方法在这里进行了描述:理解验证错误。

对于有效负载或动态报头将影响消息处理过程的情况,您可以使用消息预处理,例如,对于基于内容的路由,或者在应用值映射时。另一个用例是扩展测试覆盖范围,例如,您喜欢测试任何潜在的路由路径。另请参阅消息预处理。

在下面的博客系列中,我想解释如何使用替换规则和预处理以及三个用例。在当前的博客中,让我们从一个执行值映射的集成场景开始。

在下面,我将重点介绍PIT中与替换和预处理规则相关的设置。有关如何从端到端设置测试用例的详细描述,请查看此博客。

值映射用例

在集成场景中,我在两个系统之间交换人员数据。下面是这样一个输入文件的例子:

集成流是两个系统之间的点对点连接,在两个系统之间有一个映射。在测试环境中,发送方的名称是SND\u A\u TST,接收方的系统名称是REC\u 1\u TST;在生产环境中,发送方的名称是SND\u A\u PRD,接收方的名称是REC\u 1\u PRD。

在消息映射中,用户居住的国家被映射到一个地区,因此实际上是一个n:1值映射,例如:

DE,PL,DK被映射到欧洲CA和US被映射到北美BR,MX,AR被映射到拉丁美洲等

因此,自助建站源码,这将是映射后的消息体:

基本测试用例

我们希望在PIT中测试这个场景,因此创建以下测试用例,其中生产系统A8Z是从中提取测试数据的源系统,N75作为测试运行的目标系统。

从不同国家的生产系统中读取示例消息。我们可以复制测试数据集并删除或合并测试消息。通过这种方式,我们为每个区域创建了一个测试数据集,以便我们可以单独进行测试。但是在下面,我只使用了包含所有上传消息的列表中的第一个数据集。

在测试运行期间,根据集成流配置自动设置头。如前所述,两个环境中的系统名称不同,因此源和目标中的消息头无法匹配,我们将遇到结构错误。另请参见了解验证错误。为了克服这个问题,我们为每个系统对定义一个替换规则。这是在测试用例的"验证"选项卡上完成的。我们选择StructureComparator验证步骤,并维护两个规则,一个用于发送方,一个用于接收方。E、 例如,我们定义系统A8Z上的SNDèu AèPRD对应于系统N75上的SNDèu AèTST。在验证过程中,相应的系统名称将被视为相同的。

正如您可能从上面的示例消息中猜到的,我们将当前日期和时间映射到LastChanged字段。因此,当我们在测试运行期间重新运行映射时,将生成不同的时间戳,大数据收集,因此验证将显示差异。由于时间戳通常是不同的,我们喜欢把它们排除在比较之外。因此,我们选择PayloadComparator验证步骤,并维护相应的xpath表达式。

为了直接运行或安排测试运行,我们定义了一个运行配置,在其中维护测试用例、测试数据集和目标系统。

在执行完测试运行和验证作业之后,让我们打开测试用例验证结果。对于传出消息,我们首先选择消息头。如您所见,虽然源消息交换和目标消息交换的系统名称不同,但不会引发验证错误。

如果选择传出消息的有效负载节点,云服务器哪里好,不同的时间戳会突出显示,但是测试验证问题选项卡中会显示一条信息,指示此字段存在豁免。因此,有效负载比较也没有显示任何差异,总体上我们没有任何回归。

带有消息预处理的测试用例

数据集包含总体可能国家的子集,因此测试覆盖率很低。为了扩展测试的范围,我们使用了消息预处理。

在测试用例中,在tab message preprocessing上,我们创建了一个新的规则集,其中包含一个用于更改负载的规则。规则的类型为常量值替换。在这里,我们维护指向Country字段的xpath,并用另外要测试的Country ID替换现有的Country ID。在这里,我们需要确保源国和目标国id在同一个区域内。