[SoapUI] Compare JSON Response(比较jsonobject)

http://jsonassert.skyscreamer.org/

从这个网站下载jsonassert-1.5.0.jar ,也可以下载到源代码

JSONObject data = getRESTData("/friends/367.json");
String expected = "{friends:[{id:123,name:\"Corby Page\"},{id:456,name:\"Carter Page\"}]}";
JSONAssert.assertEquals(expected, data, false);

SoapUI里面没有这个jar,把它放在lib目录下,在SoapUI里面调用如下:

import org.skyscreamer.jsonassert.*
import org.json.JSONObject

def currentStepIndex = context.currentStepIndex
def previousStepName = testRunner.testCase.getTestStepAt(currentStepIndex-1).name
def prePreStepName = testRunner.testCase.getTestStepAt(currentStepIndex-2).name
try{
	def expectedJson = new JSONObject(context.expand( ‘${‘+prePreStepName+‘#Response}‘ ))
	def actualJson = new JSONObject(context.expand( ‘${‘+previousStepName+‘#Response}‘ ))

	//When strict is set to false (recommended), it forgives reordering data and extending results (as long as all the expected elements are there), making tests less brittle.
	JSONAssert.assertEquals(expectedJson, actualJson, false)
}catch(Exception e){
	log.info e
}

  

时间: 2024-08-03 16:25:26

[SoapUI] Compare JSON Response(比较jsonobject)的相关文章

使用Groovy处理SoapUI中Json response

最近工作中,处理最多的就是xml和json类型response,在SoapUI中request里面直接添加assertion处理json response的话,可以采用以下方式: import groovy.json.JsonSlurper def response= testRunner.testCase.testSteps["requestName"].testRequest.response.contentAsString def slurper = new JsonSlurpe

[SoapUI] 比较JSON Response

比较两个JSON, ID是数字时,处理成统一的格式:只保留小数点后5位 package direct; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.skyscreamer.jsonassert.JSONCompareMode; import org.skyscreamer.jsonassert.JSONCompareResult; import o

使用Django和Python创建Json response

使用jquery的.post提交,并期望得到多个数据,Python后台要使用json格式. 不指定datatype为json,让jquery自行判断数据类型.(注:跨域名请求数据,则使用 jsonp字符串) 若post指定数据类型json,则python取post数据,我觉着麻烦.让jquery智能判断,python返回字典最方便. 一般使用字典,而不是列表来返回 JSON内容. import json from django.http import HttpResponse response_

org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]

参考: http://bbs.csdn.net/topics/390851535 内容: 多一个字符原因:用文本编辑器(notepad++)打开test.txt文本文件第一次选择的是红框的编码,这样读出来的字符串长度总是为28(莫名的多了一个字符),会报异常,因为第一个字符不是'{'第二次选择的是蓝框的编码,这样读出来的字符串长度就是27,和我们认为的长度一样,也不会报异常 我的代码处理: 1 ASOTest.handleDownTotal(downtotalCollection,line.su

关于json解析时异常org.json.JSONException: A JSONObject text must begin with '{' at character 1 of ?{的解决方法

出现这个异常的原因是json串格式不正常,没有"{"开始或没有"}"结尾,仔细检查下json文件的格式一般就可以解决这个问题.但是有时候json文件是正常的,仍然有这个异常信息,怎么办呢,这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常,一般会出现这样的情况是读取的json串是来自于服务器或本地的文件,文件头里自带编码,就我碰到情况来看在Android2.1的手机会报异常,高于2.1的手机是正常的. 解决

SoapUI对于Json数据进行属性值获取与传递

SoapUI的Property Transfer功能可以很好地对接口请求返回的数据进行参数属性获取与传递,但对于Json数据,SoapUI会把数据格式先转换成XML格式,但实际情况却是,转换后的XML格式往往根本没法用Xpath形式获取到指定的数据了.因此只能用Script脚本形式了. {"addUsersToDirectoryResponse":{"addUserToDirectoryResponse":[{"ack":"Succes

Java生成json串、JSONObject与JSONArray的使用

1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 2.JSONObject对象使用 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转

json字符串转换为JSONObject和JSONArray

一.下载json 具体到http://www.json.org/上找java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 二.具体转化过程 //JSONObject String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}";   String value1 = null;

JSON简介及JSONObject生成json

一.JSON简介 JSON:JavaScript对象表示法(JavaScript Object Notation) 类似xml  :存储和交换信息的语法 比xml更快.更易解析 JSON语法规则: 1.数据在名称/值对中 2.数据有逗号分隔 3.花括号保存对象 4.方括号保存数组 JSON值: 1.数字:整数或浮点数 2.字符串:在双引号中 3.逻辑值:true false 4.数组:在方括号中 5.对象:在花括号中 6.null 二.在JAVA中使用JSONObject生成json 所需要的包