CN109376285B - 基于json格式的数据排序验证方法、电子设备及介质 - Google Patents
基于json格式的数据排序验证方法、电子设备及介质 Download PDFInfo
- Publication number
- CN109376285B CN109376285B CN201811272781.4A CN201811272781A CN109376285B CN 109376285 B CN109376285 B CN 109376285B CN 201811272781 A CN201811272781 A CN 201811272781A CN 109376285 B CN109376285 B CN 109376285B
- Authority
- CN
- China
- Prior art keywords
- data
- sorting
- verification
- information
- strategy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种基于json文件的数据排序验证方法、电子设备及介质,该方法包括:根据预设的获取策略从待测数据的json文件中获取次序信息,json文件为根据预设的排序策略对待测数据进行排序后生成的json文件,次序信息为所述json文件中待测数据的次序信息;判断次序信息与排序策略是否匹配,若匹配则通过验证。这样的数据排序测试方法解决了人工比进行测试出错率高,测试成本大,费时费力的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及基于json格式的数据排序验证方法、电子设备及介质。
背景技术
现在市场上大多数网站和应用都涉及到数据排序的问题,例如贴吧中帖子的排序,电商网站的产品的排序,金融类应用中产品的排序等。这些网站和应用为了突出自身业务的独特性,吸引用户的目光,增加用户的流量,会按照一定的算法和逻辑对数据进行排序,从而为用户提供各种不同类型的数据列表, 以满足用户的使用需求。
为了保证提供给用户的数据列表中的数据具有正确的排列顺序,需要对网站和应用生成的数据列表进行验证,确定生成的数据列表的中数据是否排列正确。过去通常采用前端测试人员人工肉眼对比的方式进行确认,比如列表中的数据需要按照某个字段升序或者降序排序时,依次对列表中该字段对应值的大小进行比较验证,但这样人工比对的验证方式往往出错率高,并且测试成本高,费时费力。
发明内容
本申请提供了一种基于json格式的数据排序验证方法、电子设备及介质,用以避免采用人工对比验证数据排序容易出错,测试成本高,费时费力的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种基于json文件的数据排序验证方法,其特征在于,包括:
根据预设的获取策略从待测数据的json文件中获取次序信息,
json文件为根据预设的排序策略对待测数据进行排序后生成的json文件,
次序信息为json文件中待测数据的次序信息;
判断次序信息与排序策略是否匹配,若匹配则通过验证。
优选地,获取策略包括关键字,
次序信息为待测数据按排序策略排序后生成的键值对,键值对中的键信息用于存放关键字,
根据预设的获取策略从待测数据的json文件中获取次序信息包括:
根据关键字从json文件中解析出键值对;
获取解析得到的键值对中的值信息。
优选地,获取解析得到的键值对中的值信息包括:
判断解析出的键值对与待测数据的原始数据相比是否相同;
若相同则获取解析得到的键值对中的值信息。
优选地,原始数据预存在redis库中。
优选地,json文件中还包含验证端数据数量,
验证端数据数量为验证端需验证的数据的数量,
获取解析得到的键值对中的值信息还包括:
对获取到的值信息的数量进行统计,
判断次序信息与排序策略是否匹配包括:
判断值信息的数量与验证端数据数量是否相同,验证端数据数量为从json 文件中获取的验证端数据数量;
若相同则判断次序信息与排序策略是否匹配。
优选地,排序策略中还包含待验端数据数量,
待验端数据数量为待验证端需要排序的数据的数量,
获取解析得到的键值对中的值信息还包括:
对获取到的值信息的数量进行统计,
判断次序信息与排序策略是否匹配包括:
判断值信息的数量与待验端数据数量是否相同;
若相同则判断次序信息与排序策略是否匹配。
优选地,判断次序信息与排序策略是否匹配包括:
判断获取的值信息的排列次序与排序策略是否匹配。
优选地,判断次序信息与排序策略是否匹配包括:
比较值信息的大小;
根据排序策略对比较结果进行断言处理;
根据断言结果判定是否匹配。
优选地,所述方法还包括:
将来自待验证端的排序结果文件转换为待验证的json文件,
排序结果文件为待验证端根据排序策略对数据进行排序后生成的排序结果文件。
本申请实施例提供一种基于json文件的数据排序自动化验证方法,其特征在于,包括:
持续集成工具根据预设的构建策略自动构建验证任务,向待验证端发送包含排序策略的排序请求;
持续集成工具调用验证执行工具执行预设的验证脚本,对接收到的排序结果文件进行验证,
排序结果文件为待验证端响应排序请求返回的排序结果文件,
验证脚本为用于执行上述权利要求1-9中任意一项的基于json格式的数据排序验证方法的验证脚本。
优选地,验证脚本存储在版本管理工具中。
优选地,持续集成工具为Jenkins工具,
验证执行工具为robotframework测试框架,
版本管理工具为SVN服务器。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令可被处理器执行以实现上述任一项的方法。
本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一项的方法。
在本申请实施例所提供的技术方案中由于采用了如下方式进行验证:根据预设的获取策略从待测数据的json文件中获取次序信息,json文件为根据预设的排序策略对待测数据进行排序后生成的json文件,次序信息为所述json文件中待测数据的次序信息;判断次序信息与排序策略是否匹配,若匹配则通过验证。因此,能够解决了人工的比对出错率高,测试成本高,费时费力的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的基于json文件的数据排序验证方法的流程图。
图2为本申请实施例1中从json文件中获取次序信息的流程图。
图3为本申请实施例2提供的基于json文件的数据排序自动化验证方法的流程图。
图4为本申请实施例3提供的基于json文件的数据排序验证系统的结构示意图。
图5为本申请实施例4提供的基于json文件的数据排序自动化验证系统的结构示意图。
具体实施方式
本申请提供了一种基于json格式的数据排序验证方法、电子设备及介质,用以避免采用人工对比验证数据排序出错率高,测试成本高,费时费力的问题。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下,参照附图对本申请的基于json文件的数据排序验证方法、电子设备及介质进行详细阐述。
<实施例1>
本申请实施例1的执行主体为验证端,即能够实现本申请实施例1中所记载的技术方案的终端设备,例如计算机、平板电脑、手机等。
图1为本申请实施例1提供的基于json文件的数据排序验证方法的流程图。
如图1所示,本实施例1中基于json文件的数据排序验证方法包括以下步骤:
步骤S1-1,根据预设的获取策略从待测数据的json文件中获取次序信息。
本实施例中,待测数据的json文件为来自待验证端的根据预设的排序策略对待测数据进行排序后生成的json文件。次序信息为json文件中待测数据的次序信息。预设的获取策略为根据排序策略设定的获取策略。待验证端为具有验证需求的一端,用于提供根据排序策略筛选排序后的待测数据,可以是终端设备,例如用于搭载网页或应用的终端设备,可也可以是服务器。
图2为本申请实施例1中从json文件中获取次序信息的流程图。
如图2所示,本实施例1中步骤S1-1包含以下子步骤:
步骤S1-1-1,将包含预设的排序策略的请求信息发送至待验证端。
预设的排序策略为根据待验证端的验证需求设定的排序策略,用于让待验证端对数据进行筛选和排序。本实施例中排序策略可以是包括排序参数、排序范围、待验证数据数量以及排序方式中的一种或多种,其中,排序参数为用于进行排序的参数,排序范围为待测数据的范围,即需要进行排序的数据的范围,待验端数据数量为待验证端需要进行排序的数据的数量。
例如,以金融类应用中的股票排序为例,排序参数可以为主力买入量、主力卖出量或主力挂单量,如按主力买入量的多少进行排序;排序范围可以是一段时间内的数据,如24小时内的股票数据,也可以是按类别划分的数据,如能源类的股票;待验端数据数量可以根据具体测试的需要进行设定,如将排序范围内的100条数据进行排序;排序方式可以为升序或降序。
排序策略也可以根据具体应用场景的需要进行预设,此处不做具体限定。
需要说明的是,本实施例中的请求信息还包含验证端识别信息,验证标识信息、需返回信息等中的一个或多个。其中,验证端识别信息用于识别本次验证的验证端,例如,可以是验证端的域名或验证端的IP地址;验证标识信息用于对本次验证进行标识,例如,验证编号;需返回信息为需要待验证端返回的信息内容,该信息内容中包括待验证端识别信息、验证编号、验证端数据数量、待测试数据等,
上述待验证端识别信息用于识别本次测试的待测试端,例如,待验证端的域名或待验证端的IP地址;验证端数据数量为本次测试中返回验证端的数据的数量,即验证端需验证的数据的数量。
步骤S1-1-2,将来自待验端的排序结果文件转换为待验证的json文件。
本实施例中,排序结果文件为待验证端根据排序策略对数据进行筛选和排序后生成的排序结果文件,该排序结果文件为根据需返回信息返回的排序结果文件。
以金融类应用中的股票排序为例,排序策略为将24小时内有进行主力操作的股票按主力买入量的多少进行升序排列,根据筛选和排序,其结果如下表 1所示。
表1股票排序结果
股票名称 | 主力买入量 | |
1 | A股 | 80万 |
2 | B股 | 500万 |
3 | C股 | 850万 |
… | … | … |
95 | H股 | 1000万 |
表1为待验证端根据排序策略筛选排序后获得的股票排序结果。从表1中可以看出,本次验证在排序范围内的股票有95支,按主力买入量的多少进行了降序排列。本次验证生成的排序结果文件包含表1中的股票排序结果,其中返回验证端的验证端数据数量为95条数据。
具体地,发送请求信息后,断言请求是否成功,若成功则接收到的来自待验证端的排序结果文件。由于验证端提供的验证接口不同,使得接收到的排序结果文件的具有不同的格式,例如json格式、xml格式等,因此,为保证验证的顺利进行需要将排序结果文件换为待验证的json文件,获取包含次序信息的嵌套json字符串。
本实施例中,可以采用下述方式实现步骤S1-1-1至步骤S1-1-2
${header}Creat dictionary Content-Type=application/json
${url}set variable/bigOrder/getRankingList
Creat Session api${ip}
${data}set variable{“dealType”:“1”,“rankType”:“11”,“sortType”:“1”,“stockCode”:””}
${response}post request api${url}data=${data}headers=${header}
Should be equal as strings${response.status_code}200
log${response.content}
${responsedata}to json${response.comtent}
步骤S1-1-3,根据关键字从json文件中解析出键值对。
由于json文件是以键值对的形式进行数据存储的,解析时json文件被当作一个整体,即{key-value{key1-value1{key2-value2{…}}的形式,由外向内的进行解析,根据key优先解析外层大括弧中的内容,逐步向内解析每个大括弧中的内容,得到与key对应的value,最终获取的value按解析的顺序依次排列,即最外层解析出的value排在最前,故从json文件中获取的value值是按解析的顺序排列的。又因为json文件是待验证端根据排序策略对待测数据进行排序后生成的,因此,解析出的value的排列顺序为待验证端中数据根据排序策略排序后的顺序。
本实施例中,获取策略为关键字;次序信息为待测数据按排序策略排序后生成的键值对,键值对中的键信息用于存放关键字。因此,根据预设的获取策略从待测数据的json文件中获取次序信息为根据关键字从json文件中解析出键值对。此时,可以是每次解析通过一个关键字对json文件进行解析,也可以是每次解析通过多个关键字对json文件进行解析。当每次解析通过多个关键字对json文件进行解析时,可以是通过一个关键字对json文件解析后,再通过另外的关键字在解析出的结果中继续进行解析,也可以可是通过一个关键字对json文件解析后,通过另外的关键字对json文件重新进行解析。
步骤S1-1-4,获取解析得到的键值对中的值信息。
由于验证端获得的键值对是经过编译和解析后的,为保证验证的准确性,需要对验证端获得的键值对的内容的进行正确性验证。
对验证端获得的键值对的内容正确性进行测试时,判断解析出的键值对与待测数据的原始数据相比是否相同,若相同则为正确,验证继续进行,若不相同则为错误,验证终止,并进行报错。其中,所有数据均相同判断为相同,否则判断为不相同。
本实施例中,待测数据的原始数据预存在redis库中。该redis库可以设置在验证端也可以设置在服务器上。当redis库设置在服务器时,将获得的键值对与验证请求发送至redis库,根据验证请求将获得的键值对与预存在redis 库中的原始数据进行比较,判断两者是否相同。当redis库设置在测试端时,预先将待验证端的原始数据导入redis库中,使得redis库中预存有原始数据,在获取键值对后判断两者是否相同。
当确认解析出的键值对的内容为正确后,获取解析得到的键值对中的值信息。
为保证验证的准确性,还需要对获取的值信息的数量进行检测,具体地,统计获取的值信息的数量,判断获取的值信息的数量与返回验证端的json文件中的数据数量是否相同,若相同则通过检测。
当待验证端中的数据量较大时,排序策略中需要预设待验端数据数量,此时,需返回信息中可以不包括验证端数据数量,检测时判断统计出的值信息的数量与排序策略中的待验端数据数量是否相同,若相同则判断次序信息与排序策略是否匹配。其中,排序策略中预设的待验端数据数量为待验证端中需要排序的数据数量,此时,将排序后的数据全部返回至验证端,例如,排序策略中预设了100条数据进行排序,则待验证端将符合排序策略的100条数据进行排序后返回至验证端,待验端数据数量为100条;预设的待验端数据数量也可以是排序后需要返回至验证端的数据数量,此时,将待验端中所有符合排序策略的数据进行排序,排序后根据预设的待验端数据数量返回至验证端,例如,排序策略中预设了需要返回前100条数据,则待验证端将符合排序策略的所有数据进行排序后,将前100条数据返回至验证端。
当待验证端中的数据量较小时,排序策略中可以不预设待验端数据数量,此时,需返回信息中包含验证端数据数量,即待测的json文件中包含本次验证返回验证端的需验证数据的数量。例如,本次验证中待验证端中符合排序策略并进行排序的数量有100条,这100条数据被排序后返回验证端,则返回验证端的排序结果文件中包含的验证端数据数量为100条。验证时判断统计出的值信息的数量与json文件中解析出的验证端数据数量是否相同,若相同则判断次序信息与排序策略是否匹配。
本实施例中,可以采用下述方式实现根据关键字从json文件中获取值信息,统计值信息的数量:
${responsedata}to json${response.content}
${value}set from dictionary${responsedata}data
log${value}
${value1json}format_fromjsonobj${value1}to json
log${value1json}
${value2}get from dictionary${value}all stock
log${value2}
convert to list${value2}
${num}get length${value2}
${number}convert to integer${num}
步骤S1-2,判断次序信息与排序策略是否匹配,若匹配则通过验证。
本实施例中,当json文件中解析出的键值对的内容为正确并且获取的值信息的数量通过检测时,判断次序信息与排序策略是否匹配,即,判断获取的值信息的排列次序与排序策略是否匹配。
具体地,采用依次按索引循环迭代的方式确认值信息排列次序,按索引依次比较相邻的两个值信息的大小,确定值信息的排列次序,判断值信息的排列次序与排序策略中的排序方式是否一致,若一致则匹配。
进一步地,本实施例中比较值信息的大小;根据排序策略对比较结果进行断言处理;根据断言结果判定是否匹配。即,按索引依次比较相邻的两个值信息的大小,根据排序策略中的排序方式对每一次比较的结果进行断言,根据获得的所有断言结果判断是否匹配,若所有的断言结果均为通过则匹配,若至少有一次断言的结果不通过则不匹配。
例如,排序策略中的排序方式为升序排列时,断言期望值为后一个值信息大于前一个值信息,比较相邻两个值信息的大小,若前一个值信息小于或等于后一个值信息,则断言通过。以上述表1的股票排序结果为例详细说明,关键字为股票名称,获取的值信息为80、500、850…1000,比较80与500的大小,500大于80则断言通过,继续比较500与850的大小,850大于500 则断言通过,依次类推直至比较完最后一个值信息,根据获得的所有断言结果判断是否匹配,若所有的断言结果均为通过则匹配。
由于在对比较结果采用了断言的方式进行判断,获得的验证报告中包含了完整的比较结果,方便查阅,当验证未通过时没能够迅速发现具体问题的位置,及时进行调整。
本实施例中,可以采用下述方式实现通过断言进行值信息大小的判断。
:FOR${index}IN RANGE 0${number}
\${a}get from dictionary${value2[${index}]}BuyVolume
\set global variable${a[${index}]}${a}
\should be ture${a[${index}]}>=1000
\run keyword if${index}>=1should be ture${a[${index-1}]}<=${a[${index}]}
在本申请实施例所提供的技术方案中由于采用了如下方式进行验证:根据预设的获取策略从待测数据的json文件中获取次序信息,json文件为待测数据根据预设的排序策略排序后生成的json文件,次序信息为所述json文件中待测数据的次序信息;判断次序信息与排序策略是否匹配,若匹配则通过验证。因此,能够解决采用人工比进行验证出错率高,测试成本高,费时费力的问题。
进一步地,在值信息获取前多次对数据进行确认,防止在传输和转换过程中的数据丢失或错误,保证了验证的准确性。
<实施例2>
本申请实施例2的执行主体为验证端,即能够实现本申请实施例2中所记载的技术方案的终端设备,例如计算机、平板电脑、手机等。
图3为本申请实施例2提供的基于json文件的数据排序自动化验证方法的流程图。
如图3所示,本实施例2中基于json文件的数据排序自动化验证方法包括以下步骤:
步骤S2-1,持续集成工具根据预设的构建策略自动构建验证任务,向待验证端发送包含排序策略的排序请求。
本实施例中,持续集成工具为Jenkins工具。
进行自动化验证时,Jenkins根据预设的构建策略新建验证任务,向待验证端发送排序请求。
其中,排序请求可以为上述实施例1中的排序请求。构建策略可以接收到来自待验证端新的测试请求,也可以是验证端添加了新的验证脚本,还可以是根据预定的时间检测自动进行验证,需要说明的是本实施例中的时间间隔可以相等也可以不相等。
需要说明的是本实施例中的持续集成工具也可以采用其他持续集成工具,例如TeamCity、Travis CI、GO CD、Bamboo、Gitlab CI、CircleCI等。
步骤S2-2,持续集成工具调用验证执行工具执行预设的验证脚本对接收到的排序结果文件进行验证。
本实施例中,验证执行工具为用于执行验证脚本的测试工具,例如robotframework自动化测试框架,可以以插件的形式安装在持续集成工具里。排序结果文件为待验证端响应排序请求返回的排序结果文件,验证脚本为用于执行上述任意一项所述的基于json格式的数据排序验证方法的验证脚本,该验证脚本为使用python编写的验证脚本,存储在版本管理工具中,例如存储在 SVN服务器中。
具体地,Jenkins调用robotframework自动化测试框架对接收到的排序结果文件进行测试,其中,robotframework根据来自Jenkins的验证需求从存储在 SVN服务器中获取对应的验证脚本,对排序结果文件进行验证。
需要说明的是本实施例中的测试执行工具也可以Tellurium自动化测试框架、wtd自动化测试框、QTP自动化测试框、PhoenixAutotest自动化测试框等;版本管理工具也可以是CVS、Git、Mercurial等。
在本申请实施例所提供的技术方案中由于采用了如下方式进行自动化验证:持续集成工具根据预设的构建策略自动构建验证任务,向待验证端发送包含排序策略的排序请求;持续集成工具调用验证执行工具执行预设的验证脚本对接收到的排序结果文件进行验证。这样自动化的验证方法使得能够持续地对待验证端进行测试,减少了人工测试的复杂度,提高了验证效率。
进一步地,当需求发生变动需要进行回归测试时,这样持续的自动化验证方法能够根据测试需求调用不同的验证脚本进行验证,缩短了验证时间,提高了验证效率。
<实施例3>
图4为本申请实施例3提供的基于json文件的数据排序验证系统的结构示意图。
如图4所示,本申请实施例提供的基于json文件的数据排验证试系统,包括获取模块11以及判断模块12。其中,获取模块11用于根据预设的获取策略从待测数据的json文件中获取次序信息;判断模块12用于判断获取的次序信息与排序策略是否匹配,若匹配则通过验证。
<实施例4>
图5为本申请实施例4提供的基于json文件的数据排序自动化验证系统的结构示意图。
如图5所示,本申请实施例提供的基于json文件的数据排序自动化验证系统,包括持续集成模块21、验证执行模块22以及版本管理模块23。其中,续集成模块21用于根据预设的构建策略自动构建验证任务,向待验证端发送包含排序策略的排序请求;验证执行模块22用于执行预设的验证脚本对接收到的所述排序结果文件进行验证;版本管理模块23用于存储和管理测试脚本。其中,验证脚本为用于执行上述实施例1中所述的基于json格式的数据排序验证方法的验证脚本。
基于同一个申请构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行前述实施例1~2 中任一实施例中所述的基于json文件的数据排序验证方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本申请实施例还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1~2中任一实施例所述的基于json文件的数据排序测试方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本申请的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
基于同一个申请构思,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1~2中任一实施例所述的基于json文件的数据排序测试方法中的步骤。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray, FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、 Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL (Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、 RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL (Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种基于json文件的数据排序的验证方法,其特征在于,包括:
根据预设的获取策略从待测数据的json文件中获取次序信息,
所述json文件为根据预设的排序策略对待测数据进行排序后生成的json文件,所述排序策略包括排序参数及排序方式,所述排序参数为用于进行排序的参数,所述排序方式为升序或者降序;
所述次序信息为所述json文件中所述待测数据的次序信息;
所述次序信息为对于所述待测数据按照所述排序参数采用所述排序方式排序后生成的键值对;所述键值对中的键信息用于存放所述获取策略中的关键字;所述键值对中的值信息用于存放所述排序参数;
判断所述次序信息与所述排序策略是否匹配,若匹配则通过验证;
所述判断所述次序信息与所述排序策略是否匹配,具体包括:
比较各个相邻的所述键值对中的值信息的大小,得到比较结果;
根据所述排序方式对所述比较结果进行断言处理,得到断言结果;
根据所述断言结果判定是否匹配。
2.根据权利要求1所述的方法,其中,所述获取策略包括关键字,
所述次序信息为所述待测数据按所述排序策略排序后生成的键值对,所述键值对中的键信息用于存放所述关键字,
所述根据预设的获取策略从待测数据的json文件中获取次序信息包括:
根据所述关键字从所述json文件中解析出所述键值对;
获取解析得到的所述键值对中的值信息。
3.根据权利要求2所述的方法,其中,所述获取解析得到的所述键值对中的值信息包括:
判断解析出的所述键值对与所述待测数据的原始数据相比是否相同;
若相同则获取解析得到的所述键值对中的所述值信息。
4.根据权利要求3所述的方法,其中,所述原始数据预存在redis库中。
5.根据权利要求2所述的方法,其中,所述json文件中还包含验证端数据数量,
所述验证端数据数量为验证端需验证的数据的数量,
所述获取解析得到的所述键值对中的值信息还包括:
对获取到的所述值信息的数量进行统计,
所述判断所述次序信息与所述排序策略是否匹配包括:
判断所述值信息的数量与所述验证端数据数量是否相同,所述验证端数据数量为从所述json文件中获取的所述验证端数据数量;
若相同则判断所述次序信息与所述排序策略是否匹配。
6.根据权利要求2所述的方法,其中,所述排序策略中还包含待验端数据数量,
所述待验端数据数量为待验证端需要排序的数据的数量,
所述获取解析得到的所述键值对中的值信息还包括:
对获取到的所述值信息的数量进行统计,
所述判断所述次序信息与所述排序策略是否匹配包括:
判断所述值信息的数量与所述待验端数据数量是否相同;
若相同则判断所述次序信息与所述排序策略是否匹配。
7.根据权利要求2所述的方法,其中,所述判断所述次序信息与所述排序策略是否匹配包括:
判断获取的所述值信息的排列次序与所述排序策略是否匹配。
8.根据权利要求1所述的方法,还包括:
将来自待验证端的排序结果文件转换为待测试的json文件,
所述排序结果文件为所述待验证端根据所述排序策略对所述数据进行排序后生成的排序结果文件。
9.一种基于json文件的数据排序自动化验证方法,其特征在于,包括:
持续集成工具根据预设的构建策略自动构建验证任务,向待验证端发送包含排序策略的排序请求;
所述持续集成工具调用验证执行工具执行预设的验证脚本,对接收到的所述排序结果文件进行验证,
所述排序结果文件为所述待验证端响应所述排序请求返回的排序结果文件,
所述验证脚本为用于执行上述权利要求1-8中任意一项所述的基于json格式的数据排序验证方法的验证脚本。
10.根据权利要求9所述的方法,其中,所述验证脚本存储在版本管理工具中。
11.根据权利要求10所述的方法,其中,
所述持续集成工具为Jenkins工具,
所述验证执行工具为robotframework测试框架,
所述版本管理工具为SVN服务器。
12.一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至11中任一项所述的方法。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811272781.4A CN109376285B (zh) | 2018-10-30 | 2018-10-30 | 基于json格式的数据排序验证方法、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811272781.4A CN109376285B (zh) | 2018-10-30 | 2018-10-30 | 基于json格式的数据排序验证方法、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376285A CN109376285A (zh) | 2019-02-22 |
CN109376285B true CN109376285B (zh) | 2021-03-02 |
Family
ID=65390333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811272781.4A Active CN109376285B (zh) | 2018-10-30 | 2018-10-30 | 基于json格式的数据排序验证方法、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376285B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737563B (zh) * | 2019-07-15 | 2024-09-20 | 北京京东尚科信息技术有限公司 | 数据显示、搜索及验证方法、装置、设备、服务器及介质 |
CN112507685B (zh) * | 2020-11-30 | 2022-10-14 | 锐捷网络股份有限公司 | 一种yang文件验证方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868050A (zh) * | 2015-12-29 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 基于json数据的验证方法及装置 |
CN106021119A (zh) * | 2016-08-03 | 2016-10-12 | 网易(杭州)网络有限公司 | 配置文件的校验方法和装置 |
CN106326776A (zh) * | 2015-07-02 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 基于规则的数据对象验证方法、装置、系统及电子设备 |
CN106990967A (zh) * | 2017-04-05 | 2017-07-28 | 百融(北京)金融信息服务股份有限公司 | 规则引擎的数据处理方法 |
CN107678942A (zh) * | 2017-08-30 | 2018-02-09 | 苏州朗动网络科技有限公司 | 一种api自动化测试方法 |
CN108345511A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种应用数据校验方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588742B2 (en) * | 2013-09-20 | 2017-03-07 | Oracle International Corporation | Rule-based automatic class generation from a JSON message |
-
2018
- 2018-10-30 CN CN201811272781.4A patent/CN109376285B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326776A (zh) * | 2015-07-02 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 基于规则的数据对象验证方法、装置、系统及电子设备 |
CN105868050A (zh) * | 2015-12-29 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 基于json数据的验证方法及装置 |
CN106021119A (zh) * | 2016-08-03 | 2016-10-12 | 网易(杭州)网络有限公司 | 配置文件的校验方法和装置 |
CN108345511A (zh) * | 2017-01-24 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种应用数据校验方法、装置及电子设备 |
CN106990967A (zh) * | 2017-04-05 | 2017-07-28 | 百融(北京)金融信息服务股份有限公司 | 规则引擎的数据处理方法 |
CN107678942A (zh) * | 2017-08-30 | 2018-02-09 | 苏州朗动网络科技有限公司 | 一种api自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109376285A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614324B (zh) | 一种测试用例生成方法和装置 | |
Martin-Lopez et al. | Test coverage criteria for RESTful web APIs | |
US9098634B2 (en) | Creating test templates based on steps in existing tests | |
CN111552632B (zh) | 一种接口测试方法及装置 | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN107451058B (zh) | 一种软件开发方法和装置 | |
CN109376285B (zh) | 基于json格式的数据排序验证方法、电子设备及介质 | |
US10509717B1 (en) | System, method, and computer program for automatically testing software applications including dynamic web pages | |
US20210011695A1 (en) | Techniques for automatically detecting programming deficiencies | |
CN109542785B (zh) | 一种无效bug确定方法和装置 | |
US20200319992A1 (en) | Predicting defects using metadata | |
CN117687920A (zh) | 接口的测试方法及装置、存储介质和电子设备 | |
US20120310849A1 (en) | System and method for validating design of an electronic product | |
WO2023207973A1 (zh) | 编译器测试方法、用例生成方法、装置及指令存储结构 | |
CN108829590B (zh) | 一种软件测试方法、装置及系统 | |
CN110428156B (zh) | 用于业务数据校验的方法、装置及电子设备 | |
US20200065233A1 (en) | Automatically establishing significance of static analysis results | |
Al-Sabbagh et al. | Selective regression testing based on big data: comparing feature extraction techniques | |
CN115981901A (zh) | 一种针对交换机自动化测试的故障定位方法、设备及介质 | |
CN112631852B (zh) | 宏检查方法、装置、电子设备和计算机可读存储介质 | |
CN110442370B (zh) | 一种测试用例查询方法及装置 | |
CN111143203B (zh) | 机器学习、隐私代码确定方法、装置及电子设备 | |
CN114491044A (zh) | 日志的处理方法及装置 | |
TWI819239B (zh) | 產品物質檢查系統及產品物質檢查方法 | |
CN116302908A (zh) | 一种系统测试方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |