[SoapUI] 比较API在两个测试环境下的XML response文件,找出不同的DataID和DataValue,并从另外一个保存着API DataID与UI DataName 映射关系的XML文件中读取DataName

import org.custommonkey.xmlunit.*
import javax.xml.xpath.*
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.parsers.*;

String UIDataName = ""

def responseTP=  new FileReader( new File(‘D:\\Study\\MA\\xml_TP.xml‘))
def responseLive= new FileReader(new File(‘D:\\Study\\MA\\xml_Live.xml‘))

def xmlDiff = new Diff(responseTP, responseLive)
boolean isSame = xmlDiff.similar();
log.info " Is TP and Live the same : "+isSame
String diff = xmlDiff.toString()
//log.info " Difference  : "+diff

String diffDataID = diff.split("@")[2].trim()
String TPDataValue = diff.split("‘")[1]
String LiveDataValue =diff.split("‘")[3]

//log.info "diffDataID =" + diffDataID

def xmlDataIdMapping= new XmlParser().parse(‘D:\\Study\\MA\\DataIdMapping\\DataIdMappingPA.xml‘)

for(it in xmlDataIdMapping.f){
	String mapDataID =  "${it.attribute("i")}"
     // log.info "mapDataID ="+mapDataID
      if(mapDataID == diffDataID){
      	 UIDataName =  "${it.attribute("udlbl")}"
      	 break
      }
} 

String diffDataValueXPath = diff.split("at ")[2]
//log.info "The XPath of the data value is : "+diffDataValueXPath
String diffDataNameXPath = diffDataValueXPath.split("@")[0]+"@OS385"
//log.info "The XPath of the data name is : "+diffDataNameXPath

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(new FileInputStream(new File("D:\\Study\\MA\\xml_TP.xml")));
XPathFactory factory = XPathFactory.newInstance();
xpath = factory.newXPath();
String OS385 =  xpath.evaluate(diffDataNameXPath,  doc, XPathConstants.NODE).getValue();

String holding = OS385.split(">")[2].split("<")[0]

String failMessage= " Fail : Holding = "+holding+", Data Point = "+UIDataName+" , TP = "+TPDataValue+" , "+ "Live = "+LiveDataValue+" , Data ID = "+diffDataID
log.info failMessage
assert isSame,failMessage

最终执行结果:

时间: 2025-01-13 15:58:25

[SoapUI] 比较API在两个测试环境下的XML response文件,找出不同的DataID和DataValue,并从另外一个保存着API DataID与UI DataName 映射关系的XML文件中读取DataName的相关文章

项目:一次测试环境下的高可用NFS文件服务器(DRBD+heartbeat+NFS)

什么是DRBD? 分布式复制块设备.当你将数据写入本地的DRBD设备上的文件系统时,数据同时会被发送到远程端的另一边的DRBD设备文件系统里,保障数据实时同步,当本地的DRBD设备突然故障,远程节点还保留一份一模一样的数据,根据这个特性,可以结合heatbeat的ha开源软件,实现高可用! 我们都把DRBD理解是网络raid1磁盘阵列. DRBD底层设备可以是 1)一块磁盘,或者一个分区. 2)raid设备. 3)逻辑卷lvm. 4)任何块设备. DRBD支持三种不同的复制协议.协议A,协议B,

两个JDK环境下,Tomcat启动时遇到java.lang.UnsatisfiedLinkError

由于最近自己安装了两个jdk环境,然后在启动Tomcat时遇到了启动失败的错误 具体错误: 解决方法: 删除C:\Windows\System32目录下的tcnative-1.dll,这个文件是Tomcat Native Java Library.

[SoapUI] 比较两个不同环境下的XML Response, 从外部文件读取允许的偏差值,输出结果到Excel

import static java.lang.Math.* import java.text.NumberFormat import com.eviware.soapui.support.GroovyUtils import com.eviware.soapui.support.XmlHolder import org.apache.poi.ss.usermodel.Cell import org.apache.poi.ss.usermodel.Row import org.apache.po

[SoapUI] 比较两个不同环境下的Response, 结果不同时设置Test Step的执行状态为失败

import org.custommonkey.xmlunit.* def responseTP=context.expand( '${Intraday Table_TP#Response}' ) def responseLive=context.expand( '${Intraday Table_Live#Response}' ) if (responseTP == responseLive) { log.info "Test case pass" assert true } els

测试环境下部署MHA

介绍: MHA架构至少需要3台服务器.两台Master.其中一台位主master,另外一台为备master,第三台位slave机器. MHA两部分构成.MHA manager和MHA data.管理节点和数据节点. MAH在自动故障切换的过程中,MHA试图从的宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失.但是数据肯定会丢失的.(主服务器硬件故障/无法通过ssh访问) MHA的切换过程 (1)从宕机崩溃的master保存二进制日志事件(binlog events); (2)识别含有最新

利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境

一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新版本war包位置 生产环境服务器:192.168.13.51 /home/app/api-tomcat/webapps/api.war为生产环境war包位置     /home/app/api-tomcat/webapps/api为生产环境项目位置 /home/app/tomcat.bak/api/

[笨木头Unity3D]杂记003&#183;Unity在Android中读取文件

这周被一个问题给折腾了几个晚上,那就是在Android中读取文件,这本是一件很简单的事情,可想象总是美好的. 笨木头花心贡献,啥?花心?不,是用心. 转载请注明,原文地址:http://www.benmutou.com/archives/2094 文章来源:笨木头与游戏开发 1.在电脑上读取文件 首先要解决的当然是在电脑上读取文件了,这个并不难,网上一堆资料. 比如: public static string LoadFile(string filePath) { string url = Ap

(30)ElasticSearch两个节点环境中创建index解析

两个节点环境下创建索引分析 将3个primary shard分配到一个node上去,另外3个replica shard分配到另外一个节点上 primary shard 和 replica shard保持同步 primary shard 和 replica shard都可以处理客户端的读请求 primary shard 处理写请求,然后将数据同步到replica shard节点上 原文地址:https://www.cnblogs.com/javasl/p/12640574.html

LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)

安装采用YUM一键安装: 1.环境Centos 6.6 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/svndata 4.建立版本库 创建一个新的Subversion项目svnadmin create /www/svndata/project 5.版本库配置 进入对应的版本库如nilrxx,里面有一些自动给生成的文件.在conf目录下就是我们需要配置的三个文件:authz